Premium full-page & multi-tab screenshot extension for Chrome
Capture entire pages, visible areas, or batch-export dozens of tabs into a ZIP β all locally, with zero data sent anywhere.
- What is ScreenScott?
- Features
- Browser Support
- Installation
- How to Use
- Keyboard Shortcuts
- Permissions Explained
- Privacy & Security
- Project Structure
- Contributing
- License
ScreenScott is a free, open-source Chrome browser extension that lets you capture high-quality screenshots of any web page β whether it's just the visible viewport, the entire scrollable page, or a batch of multiple tabs exported as a ZIP archive.
Unlike cloud-based screenshot tools, ScreenScott works 100% locally inside your browser. No account. No uploads. No third-party servers. Your captures stay on your machine.
It was built for:
- Developers archiving UI states, bug reports, or design references
- Designers capturing full-page mockups for review
- Researchers saving full articles, documentation, or web evidence
- Content creators batch-exporting tabs for mood boards or comparisons
- Anyone who wants a fast, beautiful, privacy-first screenshot tool
| Feature | Description |
|---|---|
| Full-Page Capture | Captures the entire scrollable page using Chrome DevTools Protocol β not just what's visible |
| Visible Area Capture | One-click snapshot of exactly what's on screen right now |
| Multi-Tab Batch Export | Select any number of open tabs and export all screenshots as a single .zip file |
| PNG & JPEG | Choose lossless PNG (best for UI/text) or compressed JPEG (best for photos) |
| Smart Fallback | If CDP capture fails, automatically falls back to a scroll-and-stitch engine |
| Zoom & Pan Viewer | Built-in image viewer with smooth zoom (5%β800%), drag-to-pan, and keyboard shortcuts |
| One-Click Copy | Copy any screenshot to clipboard as PNG instantly |
| No Cloud, No Tracking | Fully local β no network requests, no analytics, no ads |
| Rate-Limit Safe | Intelligent inter-tab and stitch delays prevent Chrome API quota errors |
| Notification Count Stripping | Automatically removes (143) style unread counts from tab titles and filenames |
| Browser | Support | Notes |
|---|---|---|
| Google Chrome | β Fully supported | Version 109+ required (Manifest V3) |
| Microsoft Edge | β Supported | Based on Chromium β load unpacked works |
| Brave | β Supported | Chromium-based β load unpacked works |
| Opera | Chromium-based but extension store not available; load unpacked | |
| Firefox | β Not supported | Manifest V3 differences; would need significant porting |
| Safari | β Not supported | Safari uses its own extension format |
Minimum Chrome version: 109 (required for Manifest V3 with module-type service workers)
Recommended: Chrome 116+ for best Offscreen API compatibility
-
Download or clone this repository:
git clone https://github.com/amolbangare08/ScreenScott.git
-
Open Chrome and navigate to:
chrome://extensions -
Enable Developer mode (toggle in the top-right corner).
-
Click Load unpacked and select the
ScreenScott/folder (the one containingmanifest.json). -
The ScreenScott icon appears in your toolbar. Pin it for one-click access.
Note: You'll need to click the reload button in
chrome://extensionsafter pulling any updates.
- Navigate to any web page
- Click the ScreenScott toolbar icon
- Click Full Page β a viewer tab opens with your screenshot
- Use Download (or press
D) to save, or Copy (or pressC) to copy to clipboard
- Click the ScreenScott toolbar icon
- Click Visible Area β captures only what's currently on screen
- Click the ScreenScott toolbar icon
- Click Multiple Tabs β the Batch Picker opens
- Select which tabs to capture (tabs in your current window are pre-selected)
- Choose Full Page or Visible Area mode
- Choose PNG or JPEG format
- Click Capture & Export ZIP
- Watch the real-time progress list β each tab is captured in order
- A
.zipfile is automatically saved to your Downloads folder when done
| Action | Keyboard | Mouse |
|---|---|---|
| Zoom In | + or = |
Ctrl + Scroll Up |
| Zoom Out | - |
Ctrl + Scroll Down |
| Fit to Screen | F |
Click Fit button |
| Actual Size (100%) | 0 |
Click 1:1 button |
| Pan | β | Drag image |
| Download | D |
Click Download |
| Copy to Clipboard | C |
Click Copy |
| Shortcut | Action |
|---|---|
Alt + Shift + S |
Capture full page (active tab) |
Alt + Shift + V |
Capture visible area (active tab) |
1 (in popup) |
Quick-trigger Full Page |
2 (in popup) |
Quick-trigger Visible Area |
3 (in popup) |
Open Batch Picker |
Shortcuts can be customized at
chrome://extensions/shortcuts
ScreenScott requests only the permissions it genuinely needs:
| Permission | Why it's needed |
|---|---|
activeTab |
Access the currently focused tab for single captures |
tabs |
List all open tabs in the Batch Picker and activate them for capture |
debugger |
Attach Chrome DevTools Protocol to capture full-page screenshots |
scripting |
Inject helpers to measure page dimensions and trigger lazy-load |
storage |
Remember your format preference (PNG/JPEG) across sessions |
downloads |
Save screenshots and ZIP archives to your Downloads folder |
unlimitedStorage |
Store large captures temporarily without hitting the default 5 MB quota |
<all_urls> |
Allow capture of any page you visit (no specific domains hardcoded) |
- Zero network requests β ScreenScott never sends any data outside your browser
- No analytics or telemetry β no tracking of any kind
- No third-party dependencies β the entire extension is vanilla JS with zero npm packages
- Local processing only β captures are stored temporarily in
chrome.storage.localand removed after 30 minutes - Open source β every line of code is auditable in this repository
ScreenScott/
βββ manifest.json # Extension manifest (MV3)
βββ assets/
β βββ icons/ # Extension icons (16, 32, 48, 128px)
βββ src/
βββ background/
β βββ service-worker.js # Message routing & capture orchestration
β βββ capture.js # CDP full-page & scroll-and-stitch engines
β βββ batch.js # Multi-tab batch capture orchestrator
β βββ zip.js # In-memory ZIP builder (STORE method, no deps)
β βββ util.js # Shared helpers (filename, sleep, etc.)
βββ popup/
β βββ popup.html # Toolbar popup UI
β βββ popup.js # Popup controller
β βββ popup.css # Popup styles
βββ picker/
β βββ picker.html # Batch tab picker UI
β βββ picker.js # Picker controller with real-time progress
β βββ picker.css # Picker styles
βββ viewer/
βββ viewer.html # Screenshot viewer tab UI
βββ viewer.js # Zoom, pan, copy, download logic
βββ viewer.css # Viewer styles
Contributions are welcome! Here's how to get started:
- Fork this repository
- Clone your fork:
git clone https://github.com/your-username/ScreenScott.git - Make your changes (load unpacked to test locally)
- Open a pull request with a clear description of what you changed and why
Please keep PRs focused β one feature or fix per PR. For larger changes, open an issue first to discuss the approach.
ScreenScott is released under the MIT License. See LICENSE for full details.
You are free to use, modify, and distribute this software for any purpose, including commercial use, as long as the original copyright notice is retained.
Made with β€οΈ by Amol Bangare