Planned features for OpenScreenShot. Everything here stays true to the extension's core promise: 100% local, no servers, no accounts, no new data collection. The CLI and MCP server run locally by default and use OpenScreenShot Cloud only when you ask. Roadmap items are not commitments or dated promises — votes, feedback, and pull requests are all welcome (see CONTRIBUTING.md), and open an issue to champion an idea.
Status legend: 🧭 exploring · 📋 planned · 🚧 in progress · ✅ shipped
Explore local OCR and combining screenshots first. These are product hypotheses to validate with user feedback, not release commitments. For recording, prioritize removing sections from the middle of a take.
Keep Express mode simple. Surface additional choices where they are useful—in capture options, editor tools, or history—without adding steps to the default capture flow. New screenshot workflows should support Chrome and Firefox; recording capabilities remain browser-dependent.
| Feature | Status | Notes |
|---|---|---|
| Delayed capture (3s / 5s / 10s timer) | ✅ shipped | Landed in v0.6.1: persistent Off / 3s / 5s / 10s row in the popup; the badge counts down; region shows its overlay after the delay. |
| Capture straight to clipboard or download (skip editor) | ✅ shipped | Landed in v1.1.0: an "After capture" row in the popup picks Editor, Clipboard, or Download. The setting is read when the capture finishes, so one row covers the popup buttons, the keyboard commands, and the context menu. The clipboard write is injected into the page rather than using an offscreen document, because a service worker has no navigator.clipboard; the download runs in the worker. Quick save writes PNG, and the badge is the only feedback since no tab opens. |
| Right-click context menu capture | ✅ shipped | Landed in v0.6.1: full page / visible / region from the page context menu, via the warning-free contextMenus permission; clicks grant activeTab and honor the delay setting; errors flash ! on the badge. |
| Repeat last region | ✅ shipped | Landed in v0.6.1: re-capture the previous selection rect. The rect persists in local storage; entry points are a popup footer link and a context menu item, shown once a rect exists. |
| Region loupe + DOM element snapping | 🧭 exploring | Pixel-precise crosshair magnifier; snap selection edges to element boundaries. |
| Capture an element | ✅ shipped | Landed in v2.2.0: hover or use the keyboard to select visible cards, charts, tables, or images, adjust the bounds through parent/child elements, then capture to the editor, clipboard, or download. Clipped elements offer a full-page fallback. |
| Split very long pages into several images | ✅ shipped | Landed in v2.4.0: a full-page capture taller than one canvas (32,000 device pixels) saves as up to six equal images instead of failing. Download adds a _partNofM suffix; editor and clipboard open each part in its own editor tab. |
| Batch capture: list of URLs → one multi-page PDF | 🧭 exploring | Combines existing scroll-and-stitch with existing PDF export. |
| Feature | Status | Notes |
|---|---|---|
| Straight line tool | ✅ shipped | Landed in v0.5.0 as the L tool: the arrow shape without a head, sharing its two endpoint handles. |
| Solid and mosaic redaction | ✅ shipped | Landed in v0.6.0 as a mode on the blur annotation: soft blur, coarse mosaic, or an opaque fill that survives recompression. |
| Spotlight tool | ✅ shipped | Landed in v0.6.0 as the O tool: rect, rounded rect, or ellipse cut-outs that merge into one dim layer. |
| Shift constraints while drawing | ✅ shipped | Landed in v0.5.0: square rectangles and blur regions, and lines and arrows snapped to 45°. |
| Resize every annotation type | ✅ shipped | Landed in v0.6.0: pen and highlighter scale freely on their bbox; text and step badges scale uniformly from corner handles. |
Number keys 1–8 set the color |
✅ shipped | Landed in v0.5.0 across the whole palette, matching the letter keys on the toolbar. |
| Double-click a text layer to re-edit it | ✅ shipped | Landed in v0.5.0 on the select tool. Reopens the existing text overlay on a committed annotation. |
| Beautify mode: padding, rounded corners, shadow, gradient | ✅ shipped | Landed in v0.7.0: a topbar panel with padding, corner, and shadow sliders plus six gradient presets, transparent, and a custom solid. The frame previews live and travels into every export, the clipboard, and PDF. The screenshot's top-left stays image (0,0), so every tool and the crop path were left untouched. |
| Eyedropper color picker | ✅ shipped | Landed in v1.1.0 as the I tool. It samples the rendered canvas, so a colour inside a spotlight's dim or on the beautify gradient picks as it looks, and it hands the previous tool back after one pick. A swatch-sized button on the colour row opens Chrome's screen-wide picker for everything outside the capture. |
| Resize / scale at export (50%, fixed width, …) | ✅ shipped | Landed in v0.7.0: 25/50/100/200% or an exact pixel width, hidden for PDF. Resamples the composed canvas through repeated halvings, and refuses sizes past Chrome's canvas limits instead of writing an empty file. |
| Drag & drop / paste any image into the editor | ✅ shipped | Landed in v1.1.0: drop an image on the stage or paste one anywhere outside a text field. An import takes the same seat a capture takes, so every tool, export path, and the beautify frame keep working, and the topbar reads Imported. It replaces the canvas, so it asks first whenever there are annotations to lose. |
| Cut tool: remove horizontal bands from a long capture | ✅ shipped | Landed in v1.5.0: mark one or more horizontal bands on a full-page capture and remove them with a live preview. Bands are stored as a list and applied at compose time, so cuts stay non-destructive and undo like every other edit. |
| Named Beautify presets | ✅ shipped | Landed in v1.5.0: one-click looks that set padding, corner radius, shadow, and background together, over the existing Beautify sliders. Picking a look and then adjusting a slider marks the look as adjusted rather than silently reverting it. |
| Adjustable crop handles, with undo | ✅ shipped | Landed in v1.5.0: eight resize handles on the crop rectangle, and applying a crop no longer clears the undo/redo stack. |
| Multi-select, duplicate, and arrow-key nudge | ✅ shipped | Landed in v1.5.0: shift-click to select more than one annotation, Alt+D to duplicate the selection, and arrow keys to nudge it (1px, 10px with a modifier). A multi-selection resizes from one shared bounding box. |
| Per-layer blur strength control | ✅ shipped | Landed in v1.5.0: a slider on the blur tool's style bar instead of a fixed strength, so soft blur can go lighter or heavier per layer. |
| Full keyboard operation and screen reader support | ✅ shipped | Landed in v1.5.0: a focusable canvas with keyboard layer cycling, placement, move, resize, and crop; live-region announcements for every mutation; roving tabindex on both toolbars; visible focus rings and 24×24 minimum target sizes; forced-colors and prefers-contrast support; and the editor's UI strings moved behind chrome.i18n. |
| Redesigned editor chrome | ✅ shipped | Landed in v1.5.0: a style bar that no longer reflows the canvas on every tool swap, a coral-themed range slider and canvas stage that adapt to light and dark, a consistent pressed state across every control, a grouped tool rail, and real loading and error states on export. |
| Rounded, oval, and triangle shapes, with a solid fill | ✅ shipped | Landed in v2.2.0: the Rectangle tool became Shape, with a picker for rectangle, rounded, oval, and triangle. Shift keeps width and height equal. Fill: None / Solid works on every shape. |
| Arrow tip styles and curved arrows | ✅ shipped | Landed in v2.2.0: filled, open, both-ends, and dot tips, and a middle handle that bends the shaft into a curve. |
| Reorder the tool rail | ✅ shipped | Landed in v2.2.0: drag rail tools to a new slot or in from More tools; Alt+Up/Down moves the focused tool. The order persists, and More tools offers a reset. |
| Stroke widths scaled to the capture | ✅ shipped | Landed in v2.2.0: presets multiply by the capture width over 2560, and a fourth 24px preset doubles the old maximum. |
| Feature | Status | Notes |
|---|---|---|
| Readable long-page exports | 🧭 exploring | Splitting a page taller than one image landed in v2.4.0 (see Capture). Still to explore: an overview with selected detail crops, or sections sized for reading rather than the canvas limit. |
| Suggested redactions | 🧭 exploring | Locally highlight possible sensitive text, such as emails and phone numbers, for the user to review and confirm as solid redactions. Detection can miss information; never imply automatic privacy guarantees. |
| Combine screenshots | 🧭 exploring | Arrange existing captures vertically, side by side, or in a multi-page PDF with captions. Start with saved captures before adding automated batch capture. |
| Before-and-after comparison | 🧭 exploring | Choose two captures from history and compare them with a slider or highlighted differences. Useful for page changes, design reviews, and bug reports. |
| Optional source caption | 🧭 exploring | Add page title, URL, capture time, and viewport size to an export. Preview and remove sensitive URL parameters before sharing. Provides context, not proof of authenticity. |
| Create a visual guide | 🧭 exploring | Collect captures as steps, add short captions and numbered annotations, and export a clean document locally without an account. |
| Feature | Status | Notes |
|---|---|---|
| Screen recorder with auto zoom (record tab, zoom at clicks, webcam bubble, WebM export) | ✅ shipped | Landed in v1.2.0: tabCapture is an optional permission, requested once at first record, so there's no update warning. An offscreen document runs the capture engine and writes crash-safe 1 s chunks to IndexedDB. The editor (src/recorder/) plays the take on a timeline with automatic zoom at cursor clicks, manual zoom blocks, and per-segment trim, then re-renders the export through a canvas, mixing in mic and tab audio, click ripples, and an optional webcam bubble. |
| Auto-hiding control bar and a synthetic cursor overlay | ✅ shipped | Landed in v1.3.0: the recording control bar hides itself ~3s after the pointer leaves it, so it stays out of the video; moving the cursor to the bottom center of the page brings it back, and it always shows while paused or hovered. A "Show cursor" toggle in the editor's settings rail (on by default) draws a smooth synthetic pointer from the recorded cursor path, in both the preview and the WebM export, since tabCapture never records the OS cursor. |
| Two-click recording setup | ✅ shipped | Landed in v1.5.0: tabCapture is requested inline from the Record button on its first click, so a first recording takes two clicks instead of the old six-to-eight-click walkthrough. The setup page stays for the blocked-permission recovery case only. |
| Recorder undo, and a simplified rail | ✅ shipped | Landed in v1.5.0: undo/redo for the recording editor, in place of the one-way "Regenerate auto zoom" link that used to wipe every hand-placed zoom block with no confirm. The rail collapses Beautify behind one popover, merges "Show cursor" and "Click ripple", and moves "Add zoom" onto the timeline. |
| Recordings, reachable from the popup | ✅ shipped | Landed in v1.5.0: a Recordings link beside "Reopen last" in the popup footer opens the recorder's session list, which previously had no entry point anywhere. Each row shows the date, duration, file size, source, and which tracks (mic, tab audio, webcam) it holds. |
| Controls in their own tab: camera preview, part-of-tab recording, nothing in the video | ✅ shipped | Landed in v2.3.0: Record opens a control tab beside the page with a live camera view and a still of the page to draw the recorded area on. Start switches to the page; the timer and Stop stay in the control tab, so no control is ever captured. The whole tab is still recorded and the editor crops to the area. |
| MP4 export | ✅ shipped | Landed in v2.2.0: MediaRecorder writes H.264 + AAC MP4, now the default, with WebM beside it. Browsers without MP4 recording keep WebM. |
| Follow-cursor zoom mode | 📋 planned | A zoom that pans to track the cursor instead of sitting on fixed auto/manual blocks. |
| Platform size presets (YouTube, Shorts, square, …) | 🧭 exploring | Export at a target aspect ratio instead of the recorded tab's own. |
| Split-and-delete inside a segment | 🧭 exploring | Cut a segment in two on the timeline and drop the piece you don't want, rather than trimming from an end only. |
| Feature | Status | Notes |
|---|---|---|
| Crash-safe editor snapshot | ✅ shipped | Landed in v1.1.0: a debounced write of the annotation list and the beautify frame, plus a flush when the tab is hidden, keyed to the capture the coordinates were drawn on. A cropped image gets its own key so annotations never restore against the wrong picture. Restoring is always a click — a stale draft can never silently replace what you meant to start fresh. |
| Local OCR: copy text out of a screenshot | 🧭 exploring | Select an area and copy recognized text using local OCR. Evaluate engine and language-data size, accuracy, and startup cost; load only when needed. No screenshot data leaves the device. |
| Capture history shelf | ✅ shipped | Landed in v1.5.0: the last twelve captures instead of one, reopenable from the editor. |
| Searchable local history | 🧭 exploring | Search by page title or domain, rename captures, and pin important items to retain them in history. Explore searching extracted text once local OCR is available. |
| Pin a capture in a floating window | ✅ shipped | Landed in v1.5.0, via Document Picture-in-Picture — the only always-on-top surface Chrome offers. The pin closes with the tab that opened it. |
Extra filename tokens ({domain}, …) |
✅ shipped | {domain} landed in v0.4.0. More tokens extend the same template engine. |
Redact option for the MCP capture_screenshot tool |
✅ shipped | Landed in v2.5.0: redact on the MCP tool and --redact, --redact-pattern, --redact-rect on the CLI cover CSS selectors, built-in text patterns (email, phone, secret), and pixel rectangles with black boxes in the page before the screenshot. The capture fails with no image if a selector matches nothing or a target moves during the capture. Patterns can miss text; never imply automatic privacy guarantees. |
| Feature | Status | Notes |
|---|---|---|
| Stitch compositing in a Web Worker (OffscreenCanvas) | 🧭 exploring | Keeps the UI responsive on very long full-page captures. |
| Prewarm the editor bundle during capture | 🧭 exploring | Makes the editor tab open near-instantly after a capture finishes. |
| Feature | Why |
|---|---|
| Capturing desktop windows or the whole screen | Needs the desktopCapture permission, which adds a "capture content of your screen" install warning and a Chrome picker on every shot. OpenScreenShot ships with empty host_permissions, and keeping it that way is worth more than the feature. |
| Feature | Version |
|---|---|
| Optional OpenScreenShot Cloud mode for the CLI and MCP | v2.5.2 |
npx -y openscreenshot starts the MCP server |
v2.5.1 |
| Redaction for CLI and MCP captures | v2.5.0 |
| Split very long pages into several images | v2.4.0 |
| Clear error for local files without file access | v2.4.0 |
| Controls in their own tab, with camera preview | v2.3.0 |
| Record part of a tab | v2.3.0 |
| Capture a page element | v2.2.0 |
| MP4 recording export | v2.2.0 |
| Save into a folder inside Downloads | v2.2.0 |
| Rounded, oval, and triangle shapes, with a solid fill | v2.2.0 |
| Arrow tip styles and curved arrows | v2.2.0 |
| Reorder the tool rail | v2.2.0 |
| Stroke widths scaled to the capture | v2.2.0 |
| Tabbed settings page with visual controls | v2.2.0 |
| Optional capture error reports | v2.2.0 |
| Full keyboard operation and screen reader support | v1.5.0 |
| Cut tool: remove horizontal bands from a long capture | v1.5.0 |
| Named Beautify presets | v1.5.0 |
| Adjustable crop handles, with undo | v1.5.0 |
| Multi-select, duplicate, and arrow-key nudge | v1.5.0 |
| Capture history shelf (twelve captures) | v1.5.0 |
| Pin a capture in a floating window | v1.5.0 |
| Per-layer blur strength control | v1.5.0 |
| Two-click recording setup | v1.5.0 |
| Recorder undo, and a simplified rail | v1.5.0 |
| Recordings, reachable from the popup | v1.5.0 |
| Redesigned editor chrome | v1.5.0 |
| Auto-hiding control bar and a synthetic cursor overlay | v1.3.0 |
| Screen recorder with auto zoom, webcam bubble, WebM export | v1.2.0 |
| Quick capture: straight to clipboard or disk | v1.1.0 |
Eyedropper color picker (I), plus a screen-wide pick |
v1.1.0 |
| Drag & drop or paste any image into the editor | v1.1.0 |
| Crash-safe editor drafts, restored on reopen | v1.1.0 |
| Beautify mode: padding, rounded corners, shadow, gradient | v0.7.0 |
| Resize / scale at export (25/50/100/200% or a width) | v0.7.0 |
| Delayed capture (3s / 5s / 10s timer) | v0.6.1 |
| Right-click context menu capture | v0.6.1 |
| Repeat last region | v0.6.1 |
| Solid and mosaic redaction modes on the blur tool | v0.6.0 |
Spotlight tool (O) |
v0.6.0 |
| Resize handles on every annotation type | v0.6.0 |
Straight line tool (L) |
v0.5.0 |
| Shift constraints: square rects, 45° lines and arrows | v0.5.0 |
Number keys 1–8 set the annotation color |
v0.5.0 |
| Double-click a text layer to re-edit it | v0.5.0 |
{domain} filename token |
v0.4.0 |
| Numbered step badges and the highlighter tool | v0.3.0 |
| Shortcut sheet in the editor, with Export bound to ⌘S | v0.3.0 |
| One zoom menu, with keyboard zoom controls | v0.3.0 |
| Named swatches, a custom colour, and recent colours | v0.3.0 |
| Undo, redo, and delete moved to the topbar | v0.3.0 |
| Style bar shown only when a control applies | v0.3.0 |
| Export dialog can save its settings as the new defaults | v0.3.0 |
| Clickable filename tokens with a live preview | v0.3.0 |
| Two-click reset to defaults in settings | v0.3.0 |
| One stable popup footer, and per-mode shortcut chips | v0.3.0 |
| Ko-fi donation links (README, site, popup footer) | v0.2.7 |
Feature ideas updated September 21, 2026. Shipped-feature history reflects releases through v1.5.0.