Features
Every feature area, 97 tools. Everything below is in the shipped build.
CSS inspection
Hover any element and get its real, clean, copyable CSS — with the units the author actually wrote.
- Walks the real cascade through
document.styleSheets rather than dumping getComputedStyle, which flattens %, em, rem and vh to pixels and breaks responsiveness the moment you paste it. - Strips declarations overridden later in the cascade, drops browser defaults, collapses longhand to shorthand where safe, and deduplicates.
- Collects matching
:hover, :focus, :active, ::before, ::after and ::placeholder rules, plus @media blocks and referenced @keyframes. - Copies as plain CSS, Tailwind classes, a styled-components block for the tag the element really is, an Emotion
css block, a CSS Modules class, an SCSS or Less block, or a JSX style object with the property names React expects. - Reports a partial result honestly. A cross-origin stylesheet throws on
cssRules; the output names the sheets it could not read instead of returning a rule count that looks complete and is not.
Tools browser_css_scan browser_css_copy browser_css_edit browser_css_extract browser_css_unused
Full-page screenshots
One click, the whole page, stitched — and it handles the real web rather than the ideal one.
- Snapshots the scroll position first and restores it at the end, including when the capture fails part-way.
- Injects a capture stylesheet that disables animations and transitions, so frames are stable rather than smeared.
- Detects fixed and sticky elements by computed position and hides all but their first-viewport occurrence, so a sticky header appears once instead of every 800 pixels.
- Pre-scrolls the full height to trigger lazy loading and
IntersectionObserver content, then returns to the top. - Dismisses cookie banners and overlay modals heuristically, with an undo so nothing you wanted captured disappears silently.
- Captures at
devicePixelRatio through a token-bucket limiter that stays inside Chrome's captureVisibleTab rate limit, then stitches on an OffscreenCanvas. - Annotate, crop, and export as PNG, JPG, WebP or paginated PDF.
Tools browser_fullpage_capture browser_screenshot_annotate browser_screenshot_crop browser_screenshot_export browser_screenshot_history
Markdown viewer
Read .md files as documents, including the ones your agent just wrote.
- GitHub Flavored Markdown: tables, task lists, footnotes, strikethrough, autolinks.
- Mermaid diagrams and LaTeX math rendered inline.
- Sticky auto-generated table of contents with scroll-spy; light, dark and sepia themes.
- Side-by-side diff between two Markdown documents.
- Renders straight from the clipboard, which is the fastest way to read assistant output.
- Sanitises strictly. Markdown is untrusted input, and a viewer with a scripting hole inside an extension is a serious problem — scripts, event-handler attributes and
javascript: URLs are removed, and a payload corpus in the test suite proves it.
Tools browser_md_view browser_md_diff
Page audit and link checking
Accessibility, spelling and links — reported honestly, including what could not be checked.
- Flags missing alt text, heading-hierarchy skips, unlabelled form controls and ARIA misuse.
- Link checking distinguishes three outcomes rather than two: reachable, verifiably broken, and answered-but-unreadable.
- That third state is not a hedge. A cross-origin response is opaque to the browser —
status reads as 0 whatever the server returned. Calling opaque "fine" marks every dead external link healthy; calling it "broken" marks every healthy one dead. Neither is a link check.
Tools browser_audit browser_check_links browser_check_spelling
Record, replay and code export
Click through a flow once. Get a maintainable test that runs in your CI without this extension.
- Generates ranked candidate selectors per element:
data-testid beats id beats ARIA role plus accessible name beats a CSS path. - Scores each candidate for fragility — depth, index-dependence, hash-like class names — and warns inline when the best available option is brittle. That warning is the difference between a suite that survives a refactor and one that does not.
- Exports to Playwright, Puppeteer, Cypress and Selenium.
- Generated code waits on conditions. It never sleeps for a guessed number of milliseconds, and a test asserts that no
waitForTimeout appears in the output.
Tools browser_record_start browser_record_stop browser_record_list browser_record_events browser_record_replay browser_codegen_start browser_codegen_stop browser_codegen_export browser_codegen_status
Agent safety
The part that justifies the price: a valve between a language model and your logged-in browser.
- An approval gate that refuses. Tools that change pages return
APPROVAL_REQUIRED naming the exact action requested. Nothing runs until you approve, and an approval covers one action — not every future one. - Credential redaction that stays useful. Password and token-like values never reach the model, but the field's length does, so an agent can confirm a fill landed without seeing the value. Redaction that hides everything makes verification impossible, and an agent that cannot verify retries and double-submits.
- Prompt-injection flagging with coverage. Page text is scanned for instruction-override patterns and reported as suspected, along with how many characters were examined. A clean verdict over zero characters reads exactly like a passing scan, so the two are never conflated.
- Delta snapshots. After the first snapshot, only the structural difference is sent. This is where the token bill actually goes.
- Time travel. Every step keeps a compressed DOM snapshot, console and network deltas, and the exact tool arguments. When a run goes wrong at step 42, scrub to 41.
Tools browser_firewall_check browser_firewall_set_policy browser_firewall_get_policy browser_dom_compress browser_dom_delta browser_timetravel_snapshot browser_timetravel_list browser_timetravel_inspect browser_timetravel_export
Encrypted identity vault
Per-site credentials, encrypted on your device, never written in the clear.
- AES-256-GCM with a key derived from your master passphrase.
- A wrong passphrase fails the authentication tag and is refused, rather than returning plausible garbage.
- Every vault operation requires confirmation: a write can overwrite a live credential and a delete destroys the only copy, so neither is treated as safer than a read.
Tools browser_vault_save browser_vault_load browser_vault_list browser_vault_delete
Color picker
Sample and compare colors from any pixel on the page, with palette export.
- Pick a color from any pixel with an eyedropper that works across the page and inside iframes where the browser allows.
- Sample the exact pixel at a coordinate — the colour a person actually sees, through overlays, gradients and images — build a palette from the whole page, and copy any of them as hex,
rgb(), hsl() or a ready --custom-property declaration.
Tools browser_color_pick browser_color_sample browser_color_palette
Clear cache and hard reload
Clear the cache for the current origin and hard-reload the page without digging through DevTools.
- Clear cache, cookies and site data for the current origin, or just reload with cache disabled.
- Useful when a stale asset, sticky service worker or cached 301 is making the page behave differently from reality.
Tools browser_cache_clear browser_hard_reload
React debugging
Inspect the React component tree, props and hooks on pages that use React.
- Detects React on the page and walks the component tree with component names, props and hook state.
- Highlights the DOM element that corresponds to a selected component so you can see the rendered output immediately.
- Works alongside the CSS inspector: select a component, then inspect its styles without losing context.
Tools browser_react_detect browser_react_tree browser_react_inspect browser_react_highlight
Form filling and clearing
Fill forms from MCP instructions or the side panel, and empty them again, with field detection and structured values.
- Detects visible form controls and maps them to a structured schema an agent can reason about.
- Fills text, selects, checkboxes and radios from a single JSON payload: name a field by its
name, its id or a CSS selector and give the exact value. Anything you do not name gets plausible generated data, deterministic for a given seed. - Clears a form back to empty in one call, and reports what it cleared and what it skipped. Clearing is not
value = "": React and everything built on the same idea install a value tracker, so a plain assignment is reverted on the next render. This writes through the prototype setter and fires the input and change events a real edit produces, so the framework state clears with the DOM. - Clearing leaves alone what should be left alone: hidden inputs keep CSRF tokens and form state unless you ask otherwise, ranges and colours return to their declared default because neither has an empty value, a select takes its placeholder rather than silently landing on the first option, and disabled or read-only fields are untouched.
- Says which of your values matched no field, rather than reporting a filled form that is missing the one value you cared about.
- Filling and clearing are classed high-risk: arm the approval gate in Settings and an agent has to be approved before it writes into your page. It never submits the form for you.
Tools browser_fill browser_type browser_select browser_form_fill browser_form_clear