For designers
Get the page as material you can edit, not a flat picture of it.
- Paste into Figma as real text, frames and images
- Colours, type scale, radii and shadows pulled off the live page
- Export tokens as Tailwind, CSS, SCSS or W3C JSON
OmniSnap takes a full-length screenshot of any web page, then hands you everything a designer or QA engineer actually needs from it: editable Figma layers, measured redlines, brand tokens, diagnostics, test selectors, and a defect ticket written on your own device.
No account No upload No telemetry Free
The same screenshot answers a different question depending on who opens it, so OmniSnap extracts all three at once rather than making you capture three times.
Get the page as material you can edit, not a flat picture of it.
Everything a developer will ask for, attached before they ask.
A single image that carries its own evidence into any thread.
Lazy loading, sticky headers, infinite feeds, app shells that scroll inside a panel rather than the window. These are the cases where every other capture tool produces a half-rendered mess.
Scroll-stitched edge to edge at device resolution, including pages whose content scrolls inside a panel instead of the window. The sidebar stays in the shot.
Capture the page as it genuinely lays out at 375, 768, 1440 or 1920 px. Not your window resized, but the page re-rendered at that width.
Spacing, radii, type and colour measured off the live DOM and drawn onto the screenshot, so the spec and the picture can never disagree.
Every colour, font size, shadow and radius the page actually uses, with contrast audited and exporters for Tailwind, CSS, SCSS and design tokens.
Vitals, failed and slow requests, console errors, storage, connection and the exact environment, written up as a report you can paste into a ticket.
Click the controls your tests touch. Each one comes back with every selector that could reach it, ranked for how likely it is to survive a redeploy and checked so you know it matches one element and not three.
Arrows, callouts, shapes, measured distances, adjustable blur and numbered step badges, plus device frames and presentation canvases.
OmniSnap reads the page's real geometry: every text node, its box, its font size and its colour. It rebuilds all of it as a Figma scene, so what lands on your canvas is editable.
/* Pulled from the live page, named on-device */
:root {
--brand-primary: #6366f1; /* Primary actions */
--surface-base: #0b0f17; /* App background */
--surface-raised: #1c2638; /* Cards and panels */
--state-success: #10b981; /* Confirmed saves */
--state-danger: #f43f5e; /* Destructive actions */
--text-primary: #e8edf7;
--text-muted: #9aa8c0;
--radius-card: 12px;
}
Right-click, Copy XPath gives you an absolute path like
/html/body/div[3]/form/input[1], because DevTools has no opinion about
what the element is. It is unique, and it breaks the first time anyone adds a div
above it.
css-1x2y3z
or an id like :r7: is scored down, and the panel says why.It runs in a panel docked beside the page, so you can keep clicking elements while the list stays visible. No screenshot required.
// Checkout · generated by OmniSnap AI Studio
export class CheckoutPage {
get placeOrder() {
return page.getByTestId('place-order');
}
get emailAddress() {
return page.getByLabel('Email address');
}
// review: matches 3 elements
get cancel() {
return page.getByText('Cancel', { exact: true });
}
}
# Checkout fails and the basket is emptied
**Severity** blocker
Pressing Place order returns a 500 from /api/orders.
The basket is cleared anyway and no error is shown.
## Steps to reproduce
1. Add any item to the basket
2. Press Place order at checkout
## Expected
The order is placed, or the basket survives the failure.
## Actual
The page returns to an empty basket with no message.
## Likely cause
/api/orders returns 500 and the handler clears the
basket before it checks the response.
OmniSnap uses Chrome's built-in AI model, which runs on your own hardware. It reads the diagnostics it already collected and the steps you numbered on the screenshot, and writes the report you were about to type.
--brand-primary, never --teal-600.No API key, no account, no request leaves the browser. Needs Chrome 138+ on a device that can hold the model; where it is unavailable the panel simply hides itself and everything else works as normal.
This is not a policy decision we could quietly reverse. The extension has no backend. Every capture, measurement and draft happens inside your browser.
Captures are written to your browser's own storage. Only the most recent one is kept.
No tracking, no crash reporting, no usage counters. The only requests it makes are back to the page you are capturing, for images and fonts to embed.
Nothing to sign up for, so there is no profile to attach a capture to in the first place.
The model runs on your hardware through Chrome's built-in API. Your captures are never prompts to a cloud service.
| Permission | What it is for |
|---|---|
| activeTab | Reads the tab you are on, only after you click the extension or press its shortcut. This is how the screenshot is taken. |
| scripting | Injects the capture controller on demand so the page can be measured and scrolled while it is photographed. Nothing runs automatically. |
| offscreen | A service worker has no canvas. The offscreen document stitches the captured tiles into one image and encodes exports. |
| storage | Remembers your preferences: format, quality, breakpoint and pacing. No page content is stored here. |
| downloads | Saves exported images, SVG, PDF and ZIP bundles to your Downloads folder when you click export. |
| clipboardWrite | Backs “Copy image”, “Copy SVG” and “Copy for Figma”. |
| debugger | Used only for Turbo capture, the Responsive Matrix and breakpoint rendering, which need Chrome APIs with no extension equivalent. Attached only while one runs, detached immediately after, and Chrome shows its own banner throughout. Captures work without it. |
| <all_urls> | Optional, off by default, never requested at install. Asked for only if you switch on console recording, which needs a listener in place before a page runs its first line. Switching it off hands the access back. |
There are no running costs to recover: no server to keep up, no API bill to meter, no investor expecting a subscription. OmniSnap is built and maintained by one developer, in their own time.
If it saved you an afternoon of screenshotting, measuring and retyping, you can buy me a coffee. Completely optional: every feature stays free, and nothing in the extension changes either way.
Buy me a coffeeOpens buymeacoffee.com in a new tab. OmniSnap itself never asks for payment details, and this site still sets no cookies.
Yes. There is no paid tier, no trial and no account. There is also nothing to upsell you, because there is no server running up a bill.
Three features need Chrome DevTools Protocol commands that have no extension API equivalent: one-pass full-page capture, the Responsive Matrix, and rendering a page at a chosen breakpoint. The debugger is attached only while one of those runs and detached immediately afterwards, and Chrome displays its own banner the entire time. Ordinary captures work without it.
Into your browser's own IndexedDB on your machine, so the Studio can reopen the capture you just took. Only the most recent capture is kept; taking a new one replaces it. Removing the extension removes them with it.
No. It uses Chrome's built-in model, which runs on your own hardware. The extension holds no API key and contacts no AI provider, so your capture is never a prompt to a cloud service. If your Chrome or device cannot run the model, the feature hides itself and everything else continues to work.
Yes. It captures whatever your browser is already showing, in your own session. Nothing about that page is transmitted anywhere.
Cross-origin iframes cannot be captured by any extension, so embedded third-party content may appear blank. Pages that stream content in forever have no natural end, so set a pace or capture a region. And console recording has to be switched on before a page loads, because console messages are events that nothing retains.
Install it, open any page, and press Alt + Shift + S. The Studio opens with everything the page had to give.
Chrome 116 or newer. On-device AI features need Chrome 138+.