Screenshots & images

Show the model what you see — capture a region, paste or drop an image, screenshot a web page or local dev server headlessly, open URLs in a browser view inside VS Code, and let a vision model work on it.

Ask AI about this page

Ways to attach an image

Up to four images per message. Images are downscaled client-side to 1568px on the long edge so they fit typical vision budgets, shown as thumbnails on your message, and click-to-zoom in the transcript.

Browser view & web-page screenshots for the agent

The agent has two browser tools, available in every mode:

Tool What it does
open_browser Opens a URL in VS Code’s built-in Simple Browser beside the editor (or the system browser with external: true). Use it to show you a dev server or a result.
browser_screenshot Renders a URL with a headless Chromium already on your machine (Chrome, Chromium, Edge, Brave, Arc — or localpilot.browser.chromePath) and returns the PNG. Options: width/height (default 1280×800), full_page, mobile (390×844 + mobile UA), wait_ms for scripts to settle. The result line also says how many console errors / failed requests the page produced.
browser_inspect The DevTools version: attaches to the headless browser over the Chrome DevTools Protocol and returns, in one call, the screenshot, the console (logs, warnings, errors and uncaught exceptions with file:line:col), the network trace (every request with status, type, size and timing; failed ones listed first), performance (DOMContentLoaded, load, FCP, LCP, DOM nodes, JS heap) and layout checks (horizontal overflow with the culprit elements, images without alt text, tiny text, controls without an accessible name). Optional actions run before capture — {"click": "#save"}, {"type": {"selector": "#email", "text": "a@b.c"}}, {"scroll": "bottom"}, {"eval": "localStorage.clear()"}, each with an optional wait — so the agent can reproduce a flow and see exactly what breaks. include_text adds the visible page text for text-only models.

The agent is instructed to use browser_inspect after web UI changes: start or reuse the dev server, inspect, fix what the report shows, re-inspect. In the chat the result is a DevTools panel — screenshot, status chips (console errors, failed requests, layout issues), a colour-coded console with clickable locations, failed requests with timings, performance metrics and layout findings — and the same report is what the model reads, so you can follow its reasoning line by line.

With a vision model the screenshot is attached to the conversation, so the agent can look at the page it just changed — the system prompt tells it to verify web UI work this way. With a text-only model the image is still shown to you in the transcript (click to enlarge) and the tool result says so; the agent falls back to web_fetch for the page text. Screenshots are governed by the Network approval policy; opening the browser view needs no approval.

You can drive this yourself too: the camera menu has Screenshot a URL…, Inspect a URL (screenshot + console + network)… — which attaches the screenshot and drafts a message with the DevTools report for the model to analyse — and Open URL in browser view…; the same actions exist as LocalPilot: Screenshot a Web Page…, Inspect a Web Page… and Open URL in Browser View… commands. Everything runs locally; nothing is sent to a cloud browser service.

Requirements

The selected model must support vision (qwen2.5vl, llava, gemma3, pixtral, …). LocalPilot checks the model’s capabilities and warns you before sending if it cannot read images.

Screenshot tooling by platform

Platform Tool used
macOS screencapture — -i area, -iW pick window, -l <id> VS Code window, full screen — built in
Linux first available of gnome-screenshot, spectacle, scrot, grim+slurp, ImageMagick import+xdotool
Windows PowerShell: translucent drag-to-select overlay for areas, GetForegroundWindow for windows, virtual-screen capture for full screen
Web pages any Chromium-based browser (--headless=new --screenshot), auto-detected or localpilot.browser.chromePath

Good prompts