Say the bug. It’s fixed.

Press a key and say what’s wrong. Callout writes the bug report and Claude Code fixes it, while you keep testing.

Buy Callout $39

For a Mac with Apple silicon, on macOS 15 or later.

Meadowlark is a demo game. It runs live in this page: click it, walk with ← → and jump with Space. The fix is a real Claude Code run on this bug.

1 sentence
became 2 bug reports. You named two problems, and Callout filed each one.
0:44
from “Fix” to the commit. A real Claude Code run on the bug above.
7 files
of evidence, saved at the key press: the frame, a clip, the console, the game’s state, a save.
0 bytes
of your voice leave your Mac. The speech model runs on it.

One sentence in. A full bug report out.

This is the report from the sentence above. A language model wrote it, and your exact words stay in it. Callout calls a bug report a snag. Each snag is one Markdown file on your Mac.

  1. A title, and how bad it isBlocker, major, minor or polish. The kind, the area and the build come with it.
  2. The momentThe game’s own frame at the key press. The model crops the part you talked about, and counts the console errors.
  3. Steps, expected, actualWhat the model worked out by itself is marked “inferred”.
  4. Where the bug isIf you turn this on, Claude Code reads your project’s code, read-only, and points at the files that likely hold the bug.
  5. Technical detailsEach line says where it came from: the code, the console, the game’s state, a picture, your words, or a guess.
  6. In your wordsWhat you said, word for word, with the audio. The audio never leaves your Mac.

You named two problems in one sentence. So Callout filed two reports.

Okay, the gate won’t open when I come from the left. Also, the coin counter is covering the pause button.

It saw what you saw.

At the key press, Callout saves the evidence from your web game: the frame, a clip of the last seconds, the console errors, the game’s state and a save. These are the real files of the report above. Pick one to look inside.

  • The game’s own frame, as the game drew it.
  • Where your mouse was on the game, and what is under it.
  • The console errors and warnings since the page loaded.
  • The game’s state, such as the level and the player’s place.
  • A save of that moment, so whoever fixes the bug can load it.
  • A clip of the seconds before you pressed the key and while you talked.
~/Callout/attachments/S-1
Six stills of the game from the clip. Each one is marked with its time from the key press. The fox walks to the gate and stays in front of it.

Setup is one script tag

The tag gives Callout the frame, the clip and the console. It loads only while the game runs on your Mac at localhost, so your production build never loads it. The game’s state, what is under the mouse and the save come from a small file that you write.

Hook your web game

<script>if (/^(localhost|127\.0\.0\.1|\[::1\])$/.test(location.hostname)) {
  import('http://127.0.0.1:4747/beacon.js?project=my-game').catch(() => {});
  import('/src/dev/snag-hooks.js').catch(() => {});
}</script>

Press Fix. Keep playing.

Claude Code fixes the bug in your project’s folder, on your own Claude plan. You see each step live: what it reads, what it edits, what it runs, and the commit. This is the real run for the bug above. It took 44 seconds.

  • Three ways to start a fix. Click Fix on the report. Say “fix it now” while you describe the bug. Or run callout handoff S-42.
  • You can talk to it while it works. Say “for forty-one, also make it fade out”, and Claude gets your words at its next step.
  • Two fixes at the same time. A second fix in the same project works in its own git worktree. Callout merges it back when it ends.
  • It does not stop for permission. A fix uses Claude Code’s “auto” permission mode: it edits files, runs commands and commits without asking you. You can change the mode in Settings › Fixing the code.

These are the steps of a real Claude Code run on this bug. The waits between steps are cut short.

Or click the game and walk with ← →.

You have the last word.

Claude says it fixed the bug. You decide if it did. Only a person marks a fix as verified. This is the same game with Claude’s one-line fix in it. Walk into the gate from the left.

This is the fixed report. Click “It works” on it. Signed off. The fix is verified. In the app, the report opens again, and “Fix again” continues in the same Claude Code session.

  • If it works, click “It works”, press V, or say “forty-one works now”.
  • If it does not, say “forty-one is still broken”. “Fix again” continues in the same Claude Code session, so Claude remembers what it tried.

It asks before it guesses.

When Claude Code needs a decision from you, its question drops out of the notch. You press the hotkey and answer out loud. Then Claude finishes the fix.

The question is in the notch at the top of this page. Press ⌥⇧S to answer it.Tap “Answer by voice” on the report to answer it.Claude has your answer. It changes one line.

The second bug from your sentence: the coin counter covers the pause button.After your answer, the counter ends 12px left of the pause button. Claude changed one line.

−const right = VIEW_W - MARGIN - PAUSE.r;
+const right = PAUSE.x - PAUSE.r - 12;

src/hud.js, commit ceccb99. This is the real change from Claude Code’s run.

Run the whole list by voice.

Press the hotkey and say what must change, in your own words. Each line below is something you can say.

  • No, that one is Meadowlark.It moves your newest report to the project Meadowlark.
  • This is critical.It makes the report a blocker.
  • Add to the last one: it also happens on the phone.It adds that to your newest report.
  • Forty-one works now.It signs off S-41.
  • Forty-one is still broken.It opens S-41 again.
  • Forty-one is the same as thirty-seven.It marks S-41 as a duplicate of S-37.
  • Send forty-one to Sonnet, max effort.It hands S-41 to Claude Code, with that model and that effort.
  • Let’s walk Meadowlark.Every report goes to Meadowlark until you say “walk’s over”. Then Callout shows what you found.

Also in Callout.

Any app in a window

No script tag? Callout takes a picture of the window in front, when its app or its title names one of your projects. It never takes a picture of any other window. This report is from TaskBoard, a demo app: the ring shows where the mouse was.

The callout command

You and Claude Code can work the list from a terminal: callout next, callout show S-42, callout fix S-42. With the skill from the first run, say “check my snags” in any Claude Code session.

Your Android phone

This part is optional and needs adb. Callout can add your phone’s screen to a report when one of your own apps is in front. You can also say your bugs into the phone.

Old bugs that come back

If a new bug is an old fixed one that came back, Callout links the two reports, and Claude gets the old fix to look at.

Your voice never leaves your Mac.

Callout runs on your Mac. Whisper turns your voice into text there, and Callout’s server listens only on 127.0.0.1. Callout has no analytics, no crash reporting and no update check.

Stays on your Mac

  • The audio of your voice
  • Whisper, the speech model that hears you
  • Your bug reports, one Markdown file each, in ~/Callout
  • The saves of your games
  • The name or title of any app that is not one of your projects

Callout keeps ~/Callout in git and commits each change, so you have the history of every report.

  1. OpenRouter

    Only when it writes your bug reports

    The text of what you said, the pictures of the moment, and the game’s console lines and state. Also what Callout knows of your projects (names, descriptions, word lists and areas) and the ids and titles of your recent snags. Never the audio of your voice. Never a game’s save.

  2. Anthropic, through Claude Code

    With your own Claude Code login

    When it reads your code and when it fixes a bug: the project code that Claude Code reads, and your bug reports. If you pick Claude Code to write the reports, it gets what OpenRouter would get.

  3. Polar

    For the license, about once a day

    Your license key, and your Mac’s name as the name of the activation. Without internet, Callout keeps working.

  4. Hugging Face

    One time, in the first run

    It serves the speech model: one download of 488 MB.

Read the privacy policy

What you need.

A Mac
Apple silicon and macOS 15 or later. About 500 MB of free disk space for the speech model.
Claude Code
Installed and logged in. Callout uses it to look in your code and to fix bugs, on your own Claude plan.
One way to write the reports
An OpenRouter API key: you pay OpenRouter for what you use. Or Claude Code: each report then uses your Claude plan.
adb
Only for the optional phone feature. It is part of the Android SDK platform-tools.

You already yell at your bugs. Now it works.

One license is for one person, on up to 3 Macs at a time. Your key has no end date. You can ask for a refund within 30 days.