Turn any screenshot into JSON your CLI agent can read. They finally have eyes.
Claude Code, Aider, Codex CLI read your files, run your tests, write your code. But the moment you want to talk about the UI, you're writing a paragraph to describe what a screenshot would show in a glance. And terminals don't accept images.
SlimSnap closes the gap. Capture, annotate, copy as JSON. Paste it where text goes which is everywhere.
Hit ⌘⇧S (Ctrl+Shift+S on Windows), drag to select any area, release. ⌘⇧L captures a whole scrolling page. Native on both, nothing to install.
Arrows, callouts, highlights. Point at the broken thing.
One click. Paste into Claude Code, Aider, or anywhere text goes.
A screenshot says a thousand pixels. SlimSnap says exactly what's on the screen: every element, its text, its position.
An arrow or callout isn't just red pixels. It exports as structured intent pointing at a specific element, so the agent fixes the thing you marked instead of guessing what you meant.
Claude Code, Aider, Codex CLI, Cursor, Continue.dev. Text goes everywhere images can't: terminals, SSH sessions, CI logs, git commits. If it takes text, it takes SlimSnap.
Install the connector and Claude reads your captures straight off your machine. Capture, mark what you mean, then just ask. Nothing is uploaded. Set up the connector
Every element has a bounding box in normalized 0 to 1 coordinates. Your agent stops guessing where things are.
Built-in OCR reads every label, button, and error message in the shot. Your agent sees the words you see.
Press ⌘⇧L (Ctrl+Shift+L on Windows) for scrolling capture: scroll yourself or let Autoscroll drive. Long pages split into readable frames with one JSON over the whole capture, because AI tools can't read one very tall image.
Capture and OCR run locally. No upload, no account, no server in the loop. Your screens never leave the machine.
The JSON schema is published on GitHub under MIT. Read it, validate against it, or write your own exporter. View the schema
{
"schema_version": "2.0",
"captured_at": "2026-07-11T18:17:46Z",
"mode": "single",
"capture": { "width_px": 1440, "height_px": 900 },
"screen": { "title": "Create your account", "app": "Safari" },
"frames": [
{
"index": 0, "kind": "spatial",
"dims": { "width_px": 1440, "height_px": 900 },
"position": { "scroll_y_px": 0 },
"elements": [
{ "id": "e1", "type": "label", "value": "Create your account",
"bbox": [0.34, 0.18, 0.32, 0.06] },
{ "id": "e2", "type": "input", "value": "Email",
"bbox": [0.34, 0.34, 0.32, 0.07] },
{ "id": "e3", "type": "input", "value": "Password",
"bbox": [0.34, 0.46, 0.32, 0.07] },
{ "id": "e4", "type": "button", "value": "Sign up",
"bbox": [0.34, 0.60, 0.32, 0.07], "color": "#3B82F6" }
],
"annotations": [
{ "id": "a1", "type": "arrow", "to": [0.67, 0.62],
"target_ref": "e4", "intent": "highlight" }
]
}
],
"estimated_tokens": 318
}
You can, and you should, for one-off questions. But terminal agents (Claude Code, Aider, Codex CLI) don't accept images. SlimSnap solves that. It is also far more reliable when the agent needs to reason about specific elements rather than vibes.
No. OCR runs locally on your own machine, Mac or Windows. Captures never leave it.
The JSON schema is open (MIT, on GitHub), and so is the Claude Code skill. The apps themselves are closed.
SlimSnap writes a tiny config file at ~/.slimsnap/config.json on startup and every settings change. It contains your default save folder and filename pattern, nothing else. The skill reads that config, lists the folder, and loads the latest JSON file into the agent's context. No hardcoded paths. If you change where SlimSnap saves, the skill follows. Full walkthrough: The Claude Code skill that turns a screenshot into a fix.
No. The skill works on any valid SlimSnap JSON file. The Mac and Windows apps are the easiest way to produce one, but the schema is open MIT so you can hand-write JSON, generate it from another OCR pipeline, or build your own exporter on Linux. The skill doesn't care where the JSON came from.
For element-level work it wins. The JSON carries the text, position, color, and bounding box of every element, which is exactly what an agent needs to change a specific thing. What it drops is pixel aesthetics: gradient direction, whitespace feel, brand vibe. So for "fix this specific element" loops, JSON is more reliable. For "what should this look like" exploration, paste the raw image. Nothing stops you sending both.
Yes. Press ⌘⇧L (Ctrl+Shift+L on Windows), select the area, and scroll through the content. Or press Autoscroll and SlimSnap scrolls the page for you: any click stops it. Long captures are split into page-sized frames rather than one tall image, because AI tools downscale very tall screenshots until the text is unreadable. You get each frame as its own image plus one JSON that covers the whole page in order.
A crop is still pixels the agent has to interpret. SlimSnap hands over the actual text, elements, and coordinates, so the agent reasons about "the second input in the third card" instead of guessing from a picture.
Yes. OCR and element detection behave the same in dark mode as in light. Very low-contrast themes are the one edge case worth a sanity check, but dark interfaces like terminals, Slack, and Linear are handled the same way.
Mac (Apple Silicon) and Windows 10/11, same features on both. Grab either from the download page. Want it on Linux? Email hi@slimsnap.ai. The more requests we get, the sooner we build it.