JustVoice

How to dictate code on Mac: a practical guide to voice coding (2026)

Dictating code is different from dictating prose — symbols, casing, and identifiers break ordinary dictation. Here's how to actually dictate code on a Mac, what code mode does, and the workflow that makes voice coding usable.

Can you actually dictate code on a Mac?

Yes — but not with ordinary dictation. Code is full of symbols, mixed casing, and identifiers that plain speech-to-text mangles, so usable voice coding needs a code-aware mode that handles casing conventions, symbol words, and editor context. With that, dictating into Cursor, VS Code, Claude Code, or Xcode is genuinely practical; without it, you'll spend more time fixing transcripts than you save. This guide covers what breaks, what fixes it, and the workflow that makes dictating code worth doing.

A note on scope: we make JustVoice, which has a code mode, so examples lean on it. But the problems below are universal, and most of the technique applies to any code-aware dictation tool.

Why normal dictation fails on code

General dictation is trained on prose, so it transcribes "user ID" as two capitalized words, drops your parentheses, and spells out symbols you wanted typed — none of which compiles. Four specific failure modes show up immediately:
  • Casing. You say "user id" and want userId (camelCase), user_id (snake_case), or UserID (PascalCase) depending on the language and context. Prose dictation gives you "User ID."
  • Symbols. "open brace," "arrow," "equals equals," "pipe pipe" — prose dictation writes the words instead of {, =>, ==, ||.
  • Identifiers and keywords. Names like useEffect, kubectl, or JustVoice aren't dictionary words, so a generic model guesses and gets them wrong every time.
  • No editor awareness. Dictating a shell command, a Python block, and a Markdown comment all need different formatting, and a prose tool treats them identically.
This is why people try dictating code once, get a mess, and conclude voice coding doesn't work. The conclusion is wrong; the tool was just built for emails.

What "code mode" actually does

Code mode is a dictation profile that switches the model from prose rules to code rules: it applies your project's casing convention, maps spoken symbol words to characters, respects technical vocabulary, and adapts to the editor you're in. In JustVoice specifically, code mode does four things:
  1. Casing conventions. It produces camelCase, snake_case, PascalCase, or kebab-case identifiers from natural speech, so "set user id to current user" becomes a real assignment, not a sentence.
  2. Symbol mapping. Spoken operators and brackets become characters: "open paren," "close paren," "semicolon," "arrow," "not equal" turn into (, ), ;, =>, !=.
  3. Custom vocabulary. You add the identifiers, libraries, and product names you use — useMemo, pnpm, Supabase — and they stop being misheard.
  4. IDE detection. JustVoice detects the active editor (Cursor, VS Code, Claude Code, Xcode, a terminal) and adjusts behavior to fit, so dictating into a code buffer differs from dictating into a chat prompt.
The point isn't to dictate every semicolon by voice — it's to remove enough friction that voice becomes a real input method alongside the keyboard.

Setting up voice coding on your Mac

The setup is: install a code-aware dictation app, give it microphone and accessibility permission, pick a global hotkey, turn on code mode, and seed your custom vocabulary with your stack's terms. Step by step with JustVoice:
  1. Install and permission it. Download JustVoice (the download is free), then grant Microphone and Accessibility in System Settings → Privacy & Security. Accessibility is what lets it type into any app.
  2. Set a comfortable hotkey. Pick a push-to-talk or toggle key you can hit without leaving the home row. The whole point is to dictate without breaking flow.
  3. Enable code mode. Turn it on globally or, better, let per-app profiles enable it automatically when your editor is focused.
  4. Seed custom vocabulary. Add the 20–50 identifiers, library names, and domain terms you say most. This is the single highest-leverage setup step — it's the difference between "mostly right" and "right."
  5. Confirm it stays local. JustVoice runs Whisper on your Mac's GPU, so your code and prompts never leave the device — which matters a lot when you're dictating proprietary identifiers or unreleased product names.
That last point isn't incidental. If you dictate code into a cloud tool, your internal names land in someone's transcription log — see the Mac dictation privacy audit for why local matters here specifically.

The workflow that actually works

The winning pattern in 2026 isn't dictating raw syntax character-by-character — it's dictating intent to an AI coding agent and using voice for the high-volume natural-language part. Most working developers who dictate aren't speaking out every brace. They're doing this:
  • Dictate prompts, not syntax. Tell Cursor or Claude Code what you want in plain English — "add a debounce to the search input, 300 milliseconds, and cancel the in-flight request" — and let the agent write the syntax. This plays to dictation's strength (fast natural language) and avoids its weakness (precise punctuation). More on this in voice typing for AI agents.
  • Use code mode for the literal bits. When you do need to type an identifier, a path, or a short expression directly, code mode handles the casing and symbols.
  • Switch profiles by context. Per-app profiles mean dictating into the Cursor chat panel, the editor buffer, and the integrated terminal each behave appropriately without you toggling anything.
  • Edit by keyboard, draft by voice. Voice is fastest for producing volume; the keyboard is fastest for precise fixes. The productive setup uses both, not one religiously.
This is the same workflow we cover in depth in vibe coding by voice on Mac — voice for intent, agent for syntax, keyboard for surgery.

Why developers bother: speed and strain

Two reasons voice coding is worth setting up: you describe intent faster than you type it, and you give your hands a rest before repetitive strain forces you to. The speed case is real but situational — you won't out-type a fast typist on a three-character variable name, but you'll badly out-pace them describing a multi-step refactor to an agent. The strain case is the one that changes lives:
  • Sustained typing is a leading cause of RSI among developers, and the people who adopt dictation before the pain starts keep their careers intact.
  • Mixing voice and keyboard cuts total keystrokes per day substantially, which is the whole point if your wrists are already complaining.
If you've been ignoring early wrist twinges, voice coding is the cheapest insurance you can buy. See JustVoice for developers for the strain-reduction angle specifically.

Common problems and fixes

Most "voice coding doesn't work" complaints trace to skipped vocabulary setup, the wrong casing convention, or trying to dictate syntax that should go to an agent instead. Quick triage:
  • It keeps misspelling my function names → add them to custom vocabulary. This is non-optional for code.
  • The casing is wrong → set the convention per project or per app profile; don't rely on a global default across a polyglot codebase.
  • Symbols come out as words → confirm code mode is actually active for the focused app (per-app profiles fix this automatically).
  • It's slower than typing for tiny edits → it should be. Use voice for volume and intent, keyboard for small precise edits. Forcing voice everywhere is the mistake.
  • I'm worried about my code leaving the machine → use a local-by-default app so it can't.

The bottom line

Dictating code on a Mac works in 2026 if you use a code-aware tool and the right division of labor: voice for intent and prose, code mode for literal identifiers, an AI agent for syntax, and the keyboard for precise edits. The developers who say voice coding is a gimmick almost always tried it with a prose dictation tool and no custom vocabulary — which is like judging a keyboard you never plugged in.

If you want to try the workflow this post describes, JustVoice's code mode with IDE detection is built specifically for it, it's a $35 one-time license with no subscription, and the download is free so you can test it against your own codebase before paying.

---

Related reading: