| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
The whole page. One click. Yours to keep.
Full-page screenshots for Chrome and Firefox. Free editing. Local processing. No account.
Add to Chrome Chrome · Edge · Brave · Arc · Chromium |
Add to Firefox Firefox for desktop · 140+ |
|
MCP Local server · client setup required |
CLI Terminal · scripts · CI/CD |
Website · Docs · Roadmap · Report a bug
Chrome preview. Screenshot capture and editing are also available in Firefox.
Capture a scrolling page, mark up what matters, and share an image or PDF. Screenshots and edits stay on your device. No uploads, watermarks, or paid editing tools.
The full tour, every shortcut, and the settings reference live in the docs.
| Chrome & Chromium | Firefox | |
|---|---|---|
| Install | Chrome Web Store | Firefox Add-ons |
| Full-page, visible-area & region capture | ✓ | ✓ |
| Annotations, redaction & local history | ✓ | ✓ |
| Image, PDF & clipboard export | ✓ | ✓ |
| Screen recording | Chrome | Not available |
Firefox requires desktop version 140 or later. The Chrome extension also works in Edge, Brave, Arc, and other Chromium browsers. Screen-wide color picking and floating capture windows appear only when the browser supports them.
Prefer a capture menu on every click? Turn off Express mode in settings. For alternatives and a sourced feature comparison, see How it compares.
host_permissions is empty: activeTab grants access on your click, and the extension does not have standing access to every website. Captures, recordings, and edits stay in local browser storage until you export or delete them. Chrome can optionally request broader access for recording across sites; Firefox does not request recording permissions. Full policy: PRIVACY.md.
Every permission, line by line| Permission | Why |
|---|---|
| activeTab | Access the current tab — only when you click the extension, use a shortcut, or pick a capture from the right-click menu |
| scripting | Inject on-demand page functions for scroll-and-stitch, region selection, the quick-mode clipboard write, and the in-page recording control bar |
| storage (+ unlimitedStorage) | Settings, the last region rect, editing drafts, a parked Record click, and stashing large full-page PNGs and recording chunks for the editor |
| downloads | Save exports, quick-mode captures, and recording exports to your Downloads folder |
| contextMenus | Add one capture submenu to the page right-click menu |
| clipboardWrite | Copy a screenshot from the editor or from quick mode; it never reads the clipboard |
| offscreen (Chrome) | Run the recording engine in a hidden document — MediaRecorder and the IndexedDB writes need a page context a service worker doesn't have |
| tabCapture (Chrome, optional) | Requested once, at your first recording; every recording after that starts in one click |
| <all_urls> (Chrome, optional host) | Only if you turn on "Record across sites" — keeps the cursor overlay alive when a recording navigates to a new origin |
TypeScript (strict) + Preact, bundled by Vite + @crxjs/vite-plugin. One runtime dependency (Preact); unit tests with Vitest. Node.js 22.19+ and pnpm 10.33.0.
pnpm install --frozen-lockfile
pnpm run icons| Chrome | Firefox | |
|---|---|---|
| Develop | pnpm run dev | pnpm run dev:firefox |
| Build | pnpm run build | pnpm run build:firefox |
| Package | pnpm run package | pnpm run package:firefox |
| Load locally | chrome://extensions → Developer mode → Load unpacked → dist/ | about:debugging → This Firefox → Load Temporary Add-on → dist-firefox/manifest.json |
pnpm typecheck
pnpm lint
pnpm test
pnpm format:check
pnpm lint:firefox # validate dist-firefox/ after buildingThe Firefox release guide covers reviewer source archives, verification, and automated Mozilla submissions. Tagged releases have separate Chrome and Firefox workflows; store review determines when each update becomes available.
For the website, use pnpm site:dev or pnpm site:deploy. See CONTRIBUTING.md for the contribution workflow.
Project structureopenscreenshot/ ├── manifest.json # MV3 manifest (crxjs entry) ├── public/ # icons + i18n messages ├── src/ │ ├── background/ # service worker (capture + recording coordinator) │ ├── content/ # on-demand capture funcs (scroll, region, recording overlay) │ ├── editor/ # annotation editor + export (Preact, own tab) │ ├── offscreen/ # recording engine: MediaRecorder + IndexedDB chunks │ ├── popup/ # popup UI (Preact) │ ├── recorder/ # recording editor: timeline, zoom, trim, export (Preact, own tab) │ └── shared/ # design tokens, messaging, storage, types, utils ├── mcp/ # optional local CLI + MCP server ├── site/ # Astro website + localized content ├── docs/ # generated site build, served by site-worker.js ├── tests/unit/ # unit tests (Vitest) └── scripts/ # icon + screenshot pipelines
openscreenshot (npm) is a separate, optional tool that drives the Chrome already on your machine — also fully local:
pnpm dlx openscreenshot shot https://example.com --out shot.png --fullAdd this server entry to your MCP client’s configuration, then call capture_screenshot:
{
"command": "pnpm",
"args": ["dlx", "openscreenshot", "serve"]
}The server runs locally over stdio. Your client must support launching a local MCP process; clients that only accept remote MCP URLs need a compatible bridge. Setup and availability depend on the client.
Built for the terminal-heavy parts of the job:
Desktop and web apps are also in progress. Follow their development on the roadmap.
See CONTRIBUTING.md and the roadmap. If OpenScreenShot is useful to you, you can buy me a coffee.
MIT © OpenScreenShot @PGHQdev
| Back | FazBrowse Home | New Git URL |