A powerful browser extension for capturing and editing screenshots with multiple capture modes, built with WXT and React.
- Visible Page - Capture the currently visible portion of the page
- Select Area - Draw a selection rectangle to capture a specific area
- Full Page - Capture the entire scrollable page (automatically handles lazy-loading content and sticky headers)
- βοΈ Crop - Trim your screenshot to focus on what matters
- βοΈ Pencil - Freehand drawing for annotations
- β Arrow - Point to important elements
- / Line - Draw straight lines
- β’ Rectangle - Highlight areas with boxes
- β Circle/Ellipse - Draw circles and ovals
- T Text - Add text annotations with customizable font size
- π΄ Blur - Blur sensitive information
- Undo/Redo - Full history support for all edits
- Zoom Controls - Unlimited zoom for detailed viewing
- Color Picker - Choose any color for your annotations
- Stroke Width - Adjustable line thickness
- Export Options - Save as PNG or JPEG, or copy to clipboard
-
Clone the repository:
git clone https://github.com/raakkan/screenshot-editor.git cd screenshot-editor -
Install dependencies:
npm install
-
Build for your browser:
# For Chrome/Edge npm run build # For Edge specifically npx wxt build -b edge # For Firefox npm run build:firefox
-
Load the extension:
- Chrome/Edge: Go to
chrome://extensionsoredge://extensions, enable Developer mode, click "Load unpacked", and select the.output/chrome-mv3or.output/edge-mv3folder - Firefox: Go to
about:debugging, click "This Firefox", click "Load Temporary Add-on", and select any file in the.output/firefox-mv2folder
- Chrome/Edge: Go to
Run the extension in development mode with hot reload:
npm run dev- Click the extension icon in your browser toolbar
- Select a capture mode:
- Visible Page: Instantly captures what's visible
- Select Area: Click and drag to select a region
- Full Page: Automatically scrolls and captures the entire page
- Edit your screenshot using the available tools
- Export via:
- Copy - Copy to clipboard
- PNG - Download as PNG
- JPEG - Download as JPEG
- WXT - Next-gen Web Extension Framework
- React 19 - UI Framework
- TypeScript - Type-safe development
- Vite - Fast build tooling
screenshot-editor/
βββ entrypoints/
β βββ background.ts # Service worker for capture logic
β βββ content.ts # Content script for area selection
β βββ popup/ # Extension popup UI
β βββ editor/ # Screenshot editor Pro UI
βββ public/
β βββ icon/ # Extension icons
βββ wxt.config.ts # WXT configuration
βββ package.json
- Full page capture may not work perfectly on sites with complex infinite scroll (like social media feeds)
- Some sites with strict Content Security Policies may block the content script
- MSN and similar sites: Full page capture shows duplicate sticky navigation bars. These sites use JavaScript-controlled positioning instead of CSS
position: fixed/sticky, making it difficult to detect and hide headers during capture.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Fix sticky navigation detection for MSN-like sites - Sites using JavaScript-controlled sticky headers need better detection (shadow DOM inspection, scroll event monitoring, or use image-based duplicate detection)
- Keyboard shortcuts for tools
- Shape fill options
- Multiple text styles (bold, italic)
- Image filters (brightness, contrast)
- Cloud storage integration
- Browser store publication (Chrome Web Store, Firefox Add-ons, Edge Add-ons)
Made with β€οΈ by Raakkan