Show, don't tell.

Circle the bug on your real screen. Say what's wrong. Your coding agent sees it — and fixes it.

~/dev/acme — claude

✳ Claude Code v2.1

Account settings
Ada Lovelace
acme.app
Save

no terminal required — paste this into Claude Code:

or the terminal way: free · 1 MB · macOS on Apple Silicon

One circle beats three paragraphs.

the receipt

What your agent actually gets.

annotated screenshotframe-01.png
Save

Your real screen, composited with your ink. Coordinates point at pixels.

fused timelinenarrative.md

[00:07] user: “this button here,”

[00:07] [drew a circle, upper-left — red]

[00:11] user: “line it up.”

Speech and strokes on one clock. Usually this alone is enough.

vector strokesstrokes.json

{ "tool": "circle",

  "bbox": [412, 208, 680, 344],

  "t": 7.2 }

Exact coordinates, for mapping a circled region to a real element.

and it goes deeper

Built for how you actually explain things.

Voice + ink, one timeline

What you said and what you drew, aligned to the same clock and merged in order.

Interact mode

Flip clicks through to the real app mid-session, demonstrate a whole flow, then keep drawing.

Multi-frame storyboards

Hit New frame to capture a step, clear the ink, keep going. Tell a whole story.

100% local & private

Screen, voice, and transcription stay on your Mac. Apple's on-device speech does the listening.

Claude Code & Codex

Installs a /draw-it skill your agent invokes on its own when you start describing something visual.

Draw now, ask later

Sketch a thought, then ask your agent to read it whenever with doodler last.

Your screen never leaves your Mac.

No accounts. No uploads. No telemetry. Captures, audio, and transcription run locally; the app is signed and notarized by Apple.

two ways in

Your agent can install it for you.

recommended — it's on brand

Paste into Claude Code

Claude runs the install, walks you through the two macOS permission prompts, and tests it with you.

the terminal way

One command

doodler initset up the skill for your agent
doodler capturestart a draw session
doodler lastre-read your most recent drawing
doodler listshow recent sessions
doodler rm <id>delete a session
doodler doctorcheck your setup