Skip to content
Halopen

The Halopen field guide · Claude Code · by Jesse Meria, who makes Halopen

Dictate Claude Code prompts on a Mac, word for word.

Claude Code has free dictation built in: run /voice and hold Space. Halopen is for audio that has to stay on your Mac, for accounts /voice does not cover, and for the other apps you write in.

No Claude Code plugin · macOS 14.0+
No credit card. Then $19/month or $179/year.

Spoken into a terminal, 12 takes

  • npm test --watch8 of 12
  • npx prisma migrate12 of 12
  • useEffect12 of 12
  • /user/jesse/developermisspelled · 8 of 12
  • version 1.8.3711 of 12
The most common written form of each spoken phrase, and how many takes produced it. Measured October 7, 2026 with a synthetic voice; the full table and method are below.

01 / Start here

Use the built-in /voice
unless one of four things is true.

Run /voice in the Claude Code CLI, hold Space, and speak. The transcript appears in the prompt and waits for you to press Enter. Anthropic says it is tuned for coding vocabulary and adds your project and branch names as hints. It costs nothing extra and is already installed.

Look at a separate dictation app when:

  • The audio cannot leave the machine. Anthropic’s documentation says: “Voice dictation streams your recorded audio to Anthropic’s servers for transcription. Audio is not processed locally.”
  • /voice is not available to you. It needs a Claude.ai account and “is not available when Claude Code is configured to use an Anthropic API key directly, Amazon Bedrock, Google Cloud’s Agent Platform, or Microsoft Foundry.” An organization policy can also turn it off, and it does not work in SSH or cloud sessions.
  • You dictate in more than one app. /voice covers the Claude Code prompt and the VS Code extension. The commit message, the pull request comment and the note are typed.
  • You want the words as you said them. A hedge is a constraint and “do not” is an instruction. Halopen starts in Verbatim in the terminal.

I make Halopen and most of what I dictate with it is prompts to Claude Code in a terminal, so this page is written from that use. The counts below are measured, not my impression.

Claude Code facts checked against Anthropic’s voice dictation documentation on October 7, 2026. Check it for your version before you plan around either tool.

02 / Measured

What a spoken command
came back as.

We spoke one developer sentence 12 times with a terminal in front and counted what was written. “npx prisma migrate” and “useEffect” were correct on all 12 takes. The flag kept both dashes every time, but 4 of the 12 lost the space in front of it, and “npm test--watch” is not a command that runs.

The file path was the weak point. It was spelled correctly on 2 of 12 takes: most wrote “user” for “users”, and one wrote “Jessie”. One take stopped after the third sentence and wrote neither the path nor the version number.

So say the instruction, read what arrived, and type the path. When the last sentence carries a constraint, check that it is there before you press Return.

12 takes of one recorded clip, Terminal in front. Measured October 7, 2026, Halopen 1.8.40.
SpokenWritten asTakes
“npm test dash dash watch” npm test --watch 8 of 12
npm test--watch not what was meant 4 of 12
“N P X prisma migrate” npx prisma migrate 12 of 12
“use effect” useEffect 12 of 12
“slash users slash jesse slash developer” /user/jesse/developer not what was meant 8 of 12
/Users/jesse/developer 2 of 12
Nothing. The take ended before this phrase. 1 of 12
/user/Jessie/developer not what was meant 1 of 12
“version one point eight point three seven” version 1.8.37 11 of 12
Nothing. The take ended before this phrase. 1 of 12

How this was measured, and what it does not show

One clip, spoken by the macOS voice Samantha at 170 words a minute, was sent 12 times through the same streaming transcription client the app uses, with the vocabulary hints a dictation carries when Terminal is the app in front. The clip was fed as a file, so no microphone or room was involved. Each row counts the exact text that came back.

A synthetic voice is steadier than a person. Your accent, pace, microphone and words will give different counts, and this clip does not test inserting the text into Terminal. It shows which kinds of token came back the same on every take and which did not. Run the clip’s sentences yourself with the dictation test.

03 / Set it up

One harmless sentence
is the right first test.

  1. Install Halopen and grant two permissions

    Download the Mac app, sign in, and allow Microphone and Accessibility. There is no Claude Code plugin or terminal extension to install.

  2. Open Claude Code in your terminal

    Click its prompt and type a character to confirm the keyboard reaches it. In Terminal, iTerm2, Warp and Ghostty, Halopen pastes the text and starts in Verbatim, even if your default output mode is Polish or Editorial.

  3. Hold the function key and say one harmless sentence

    Try: “Explain what the auth middleware does. Do not change any files.” Keep the first take short so you can see exactly what arrived.

  4. Release, read, then press Return yourself

    Halopen inserts the text and stops. It does not submit the prompt or run anything. Check the negatives (“do not”, “only”, “before”) first: they are the words that change what the agent does.

  5. Type the strings that must be exact

    Say the instruction, then type or paste the file path. In our measurement the package names and the flag came back usable far more often than the path did; the table on this page has the counts.

Download Halopen and follow the permission and shortcut instructions. Do the first test in Claude Code’s prompt, not at a bare shell prompt where a misheard word could be a command.

04 / Prompts worth speaking

Say the reasoning.
Type the strings.

These are authored practice prompts, not recordings. Each is a shape that is tedious to type and natural to say. Read one aloud into a disposable project and check what arrived.

The scoped change

In the settings page, add help text beside the notification toggle. Keep the existing label and default value. Show the diff before changing any files.

Check the target, the two things to keep, and the instruction to show a proposal first.

The error with your theory

The build fails with the error I’m pasting below. It started after the last commit added the colors enum. I think the call site needs the namespace. Find the real scope and tell me which side to change. Do not move the enum.

Speak the history and the hypothesis. Paste the error text itself.

The migration spec

Add a customers table with a unique email, a full name, and created and updated timestamps. Add row-level security so a user can read and update only their own row. Do not add an index on email yet.

Check every negative. Then type the schema, table and file names yourself.

The review request

Read the retry logic in the orders module and explain when a request is retried. Suggest a test for a timeout. Do not change the implementation.

A request that changes nothing is the safest way to learn how your dictation lands.

05 / Processing & privacy

What leaves your Mac
when you dictate.

Cloud mode sends the audio to a transcription service. With vocabulary hints on, your dictionary entries go with it. A separate context setting, off by default, can add selected text, clipboard text and the text before the cursor, which in a terminal may be code.

On-device transcription processes speech on an Apple Silicon Mac after the model is downloaded. It does not send that recording to the cloud transcription service. Account, licensing, and update checks have separate network behavior. Usage reporting and enabled diagnostics can also use the network outside a local dictation.

A “(local)” dictation entry identifies the transcription route. The audit log is not a monitor of every network request made by your Mac or the app. Claude Code’s own requests to Anthropic are separate from all of this.

Read Halopen’s privacy details before dictating confidential code.

06 / When something gets in the way

Check the simplest
thing first.

No text appears

Click the Claude Code prompt and confirm ordinary typing reaches it. Check that Halopen is signed in and has Microphone and Accessibility permission. Secure Input and custom controls can block insertion; try a sentence in Apple Notes to separate a setup problem from the terminal.

The preview showed words, the prompt did not

The live preview is provisional. Final text comes from the completed transcription. If Cloud recognition fails, Halopen can finish on the on-device model when it is installed and the fallback is on; otherwise look for the saved-audio recovery in the app.

A name or identifier is wrong

Add names you say often to your dictionary in Cloud mode. For a path, a flag or a variable, type or paste the exact string after dictating the sentence around it.

A remote session

Halopen pastes into the terminal window on your Mac, so the text goes where that window’s keystrokes go. Test one harmless sentence in the remote session before relying on it. If it fails, write to Halopen support with the app versions and no private code.

07 / Questions

Before your first prompt.

Does Claude Code have built-in voice dictation?

Yes. Run /voice in the CLI, then hold Space and speak. By default it inserts the transcript and waits for you to press Enter; tap mode (/voice tap) submits the prompt when you stop, if the transcript has at least three words. Anthropic says transcription is tuned for coding vocabulary and adds your project and git branch names as hints. Checked against Anthropic’s voice dictation documentation on October 7, 2026.

Is Claude Code’s dictation processed on my Mac?

No. Anthropic’s documentation says: “Voice dictation streams your recorded audio to Anthropic’s servers for transcription. Audio is not processed locally.” Halopen’s on-device mode transcribes on an Apple Silicon Mac after its model is downloaded. Halopen’s Cloud mode also sends audio to a transcription service, so choose the mode before you rely on it.

Does /voice work with an API key, Bedrock, Vertex or Foundry?

No. Anthropic’s documentation says the speech-to-text service needs a Claude.ai account and “is not available when Claude Code is configured to use an Anthropic API key directly, Amazon Bedrock, Google Cloud’s Agent Platform, or Microsoft Foundry.” It also does not work in SSH or cloud sessions, and an organization policy can turn it off. Halopen is a separate app with its own account, so none of those settings affect it.

How do I dictate into Claude Code with Halopen?

Install Halopen, sign in, and allow Microphone and Accessibility. Click the Claude Code prompt in your terminal, hold the function key, speak, and release. The text is pasted at the cursor. Read it, then press Return yourself.

What do spoken flags, package names and file paths come back as?

We measured it: 12 takes of one clip with a terminal in front, a synthetic voice, on October 7, 2026. “npx prisma migrate” and “useEffect” were written correctly all 12 times. The --watch flag kept both dashes every time but lost the space in front of it on 4 takes. The file path was spelled correctly on 2 of 12, and one take dropped its last two sentences. Dictate the instruction and type the path; the table on this page has every count.

Does Halopen submit the prompt or run commands?

No. Halopen inserts text at the cursor and stops. It does not press Return, attach project files, or run the agent. Check commands and flags before you send them.

Is the live preview the final text?

No. Live partials are a preview and can differ from the final transcript. Final text comes from the completed transcription. If Cloud recognition fails, Halopen can transcribe the same recording with the on-device model when that model is installed and the fallback is on; otherwise look for the saved-audio recovery in the app. Not every failed take can be recovered.

Is my code sent anywhere when I dictate?

Cloud mode sends the audio and, with vocabulary hints on, your dictionary entries to the transcription service. A separate context setting, off by default, can add selected text, clipboard text and the text before the cursor, which may contain code. On-device mode transcribes locally. Account, licensing, update and diagnostic requests are separate; the privacy page lists them.

How much does Halopen cost?

Halopen is free for 14 days, no credit card. Pro is $19/mo or $179/yr for unlimited words and every feature.

Try it on your next prompt

Say the whole instruction.
Read it. Send it yourself.

No credit card · macOS 14.0+ · Apple Silicon & Intel