kitlangton/scrawl
Show an agent a problem: mark up, record, send
Scrawl – Capture‑and‑Explain for AI Agents
What it does
- Lets you record a short screen session by pressing a global shortcut (⌥⇧S). While recording you can talk, click, scroll and draw on‑screen.
- When you stop, Scrawl bundles:
- A contact‑sheet image of key frames with your ink overlays.
- Full‑resolution PNGs of each key frame.
- A time‑aligned transcript and interaction timeline (
summary.md). - A JSON manifest (
scrawl.json) describing windows, cursor paths, auto‑cropped regions, and where the capture should be sent.
- The bundle can be opened in a native review window, sent to an OpenCode (Claude‑style) session, or exported as an MP4.
Why it matters for AI
- The bundle is a structured representation of a visual‑plus‑verbal task that an LLM‑agent can ingest. The agent reads the contact sheet and transcript, then can request deeper views (
scrawl zoom …) or individual frames. - Scrawl ships an agent skill (
bunx skills add kitlangton/scrawl) that registers thescrawlcommand with Claude Code, OpenCode, Codex, etc., so agents can automatically fetch and explore the captured context.
Key features
| Feature | What you get |
|---|---|
| One‑click recording | Global hot‑key starts/stops capture; optional hold‑to‑choose area, window or iPhone screen. |
| Audio + transcription | Uses Apple Speech (or Hex) to produce a synced transcript without needing microphone permission beyond the initial grant. |
| Live annotation | Draw red strokes, numbered pins, undo with ⌘Z – all baked into the final frames. |
| Auto‑crop | After a screen‑wide capture Scrawl analyses cursor movement, clicks, and ink to automatically crop each keyframe to the relevant window(s). |
| Agent integration | scrawl zoom, scrawl frames, scrawl send, scrawl export commands let an LLM retrieve focused frames, send the bundle to an OpenCode session, or create a shareable video. |
| Dev‑site routing | If the capture ends on a local dev site, Scrawl can auto‑detect the project’s OpenCode session (via a tiny SDK script or by inspecting the local git repo) and send the bundle there. |
| Cross‑platform | Native macOS app (Apple Silicon, macOS 26+), previewable Windows build (preview, no auto‑updates). |
| CLI utilities | All operations (preview, inspect, frames, export, autocrop, mic, devices, etc.) are available via cargo run -- … for power users and automation. |
| Self‑updating | macOS version updates via Sparkle; Windows version is a manual zip. |
How you use it
- Install the app (Homebrew cask on macOS or zip on Windows).
- Add the agent skill (
bunx skills add kitlangton/scrawl). - Press ⌥⇧S, demonstrate the problem (talk, click, draw), press again.
- The bundle appears in
~/Downloads(or a custom folder). - In an LLM chat, paste the bundle or run
scrawl send …to let the agent inspect it.
Typical workflow for an AI‑assistant
- User records a UI bug walkthrough.
- Agent receives the bundle, reads the transcript, looks at the contact‑sheet, and asks for a zoom on a specific moment (
scrawl zoom demo.scrawl --at "error dialog"). - Agent analyses the zoomed frames, suggests a fix, and optionally exports a short video to share with the team.
Technical notes
- Permissions: screen‑recording, microphone, accessibility, and (optional) camera for iPhone mirroring.
- Auto‑crop algorithm runs in Rust (
src/autocrop.rs) and can be tuned via a local JSON config or a live web UI (scrawl autocrop … --serve). - All configuration lives in
~/.config/scrawl/config.json.
Who might find it useful
- Developers who want to give LLM agents concrete visual context for UI debugging, onboarding, or documentation.
- Teams using Claude‑style “code‑assistant” agents that support custom skills.
- Anyone needing a quick, searchable record of a screen‑plus‑voice walkthrough.
All details are taken directly from the project's README; no additional features are inferred.
Related
- Project
- Project
- Project
- Project