March 28, 20267 min read

How to Dictate Code on Mac — camelCase, snake_case & Symbols by Voice

Typing code all day wrecks your hands. I switched to voice coding after a bad RSI flare-up, and honestly, I should have done it years earlier.

The problem is that regular dictation tools are useless for code. Say "getUserName" and you get "Get user name" with spaces. Say "open paren" and you get the literal words. Whisperer's Code Mode fixes this.

Ready to try voice dictation on your Mac?

Free download. No account required. 100% offline.

Download on the Mac App Store

Why bother?#

Look, typing 5,000+ keystrokes a day for years catches up with you. Some developers get RSI. Others just want to think out loud while coding. Either way, voice input is faster than most people expect once you get the hang of it.

Warning

Standard dictation tools fight you constantly. Random capitalization, unwanted spaces, no clue what a semicolon is. You need something that actually understands code syntax.

Setup#

1

Download Whisperer

Get it free from the Mac App Store. The Pro Pack ($14.99 one-time) unlocks Code Mode.

2

Open from the menu bar

Whisperer lives in your menu bar for instant access.

3

Configure your profile

Go to Settings → Profiles and enable Code Mode for your IDE (VS Code, Cursor, Terminal, etc.).

4

Start speaking

Hold Fn (or your custom shortcut) and start dictating code.

Tip

Code Mode automatically activates when your IDE is in focus if you've set up a per-app profile — no manual switching needed.

Casing is the hard part#

Getting camelCase right is what trips up every other dictation tool. Whisperer uses explicit commands that you say before the words:

You say

"camel case get user name"

OutputJavaScript
getUserName
You say

"snake case get user name"

OutputPython
get_user_name
You say

"constant case max retries"

OutputAny
MAX_RETRIES
You say

"pascal case user service"

OutputTypeScript
UserService

You don't need to pause or say a trigger word. Just speak naturally and the casing applies to everything that follows.

Symbols without the awkwardness#

Saying "parenthesis" to a normal dictation tool gets you the word "parenthesis." Code Mode maps voice commands to actual symbols:

Voice CommandOutput
"open paren" / "close paren"( / )
"open bracket" / "close bracket"[ / ]
"open brace" / "close brace"{ / }
"semicolon";
"colon":
"arrow"->
"fat arrow"=>
"equals"=
"double equals"==
"triple equals"===

A real example#

Here's a Python function signature in one breath:

You say

"def snake case validate input open paren data colon dict close paren arrow bool colon"

OutputPython
def validate_input(data: dict) -> bool:

Takes some practice, but it becomes muscle memory fast.

Tips that actually help#

Use Per-App Profiles

Set Code Mode only for your IDE. Keep natural language mode for Slack and email.

Speak Naturally

Whisperer's streaming preview shows text as you speak, so you can verify in real-time.

Use Literal Mode

For identifiers that shouldn't be autocorrected, enable literal mode.

Train Your Dictionary

Add project-specific terms and variable names to your personal dictionary.

What editors work#

VS Code

Full support — text inserts directly into the active editor.

Cursor

Speak AI prompts and code naturally with Code Mode.

JetBrains IDEs

IntelliJ, WebStorm, PyCharm — all fully supported.

Terminal / iTerm2

Dictate commands, scripts, and git operations.

Full code blocks#

Once casing and symbols click, you can dictate entire statements:

You say

"const camel case fetch user data equals async open paren close paren fat arrow open brace"

OutputTypeScript
const fetchUserData = async () => {
You say

"if camel case is valid open paren camel case user input close paren open brace return true semicolon close brace"

OutputJavaScript
if isValid(userInput) { return true; }
You say

"git checkout dash b feature slash snake case add user auth"

OutputTerminal
git checkout -b feature/add_user_auth

Notes for specific editors#

VS Code

Code Mode works directly in the editor. Use per-app profiles to auto-activate Code Mode when VS Code is focused. Dictate into the editor, terminal panel, or search bar.

Cursor

Use natural language mode for AI chat prompts and Code Mode for inline code editing. Per-app profiles can handle this automatically if you set up separate profiles for Cursor's chat vs editor views.

Terminal / iTerm2

Code Mode handles dashes, dots, slashes, and paths correctly — essential for CLI commands. Say "dash dash verbose" to get --verbose.

JetBrains IDEs

IntelliJ, WebStorm, PyCharm, and other JetBrains IDEs are fully supported. Whisperer inserts via Accessibility into the active editor panel.

When things go wrong#

Casing not working#

Say the casing command before the words. "Camel case get user name" works. "Get user name camel case" doesn't.

Symbols coming out as words#

Check that Code Mode is actually on for your current app. Settings, Profiles, make sure it's enabled. Still broken? Add custom mappings in personal dictionary.

Autocorrect mangling your code#

Turn on Literal Mode. It stops the engine from "helpfully" correcting technical terms into nonsense.

Custom terms not recognized#

Add them to your personal dictionary. With NVIDIA engine, dictionary terms get CTC vocabulary boosting, which biases recognition at the acoustic level. Sounds technical but it just means better accuracy for your specific words.

Why not just use Apple Dictation?#

Info

Apple Dictation is for prose. Dictate "getUserName" and you get "Get user name" with spaces and caps. It's not a bug on Apple's side, it's just not what it's for. Full comparison here.

FeatureWhisperer Code ModeApple Dictation
camelCase by voiceYesNo
snake_case by voiceYesNo
Symbol commands (20+)YesLimited
Per-app mode switchingYesNo
Personal dictionaryYesNo
Literal modeYesNo
Autocorrection controlFullNone
Price$14.99 lifetimeFree

How to actually learn this#

Most people get comfortable in a day or two. Here's how I'd approach it:

1

Start with comments

Dictate comments, docstrings, README content. It's just prose, no Code Mode needed. You'll notice the speed improvement immediately.

2

Add Slack and email

Dictate messages. Set up per-app profiles so it switches modes automatically.

3

Learn the four casing commands

camel case, snake case, pascal case, constant case. Practice with variable names you use all the time.

4

Add symbols

Open paren, close paren, semicolon, colon, fat arrow, arrow. That covers 90% of what you need.

5

Go full code

Combine casing and symbols into complete statements. Function signatures, variable declarations, the works.

More: Voice Coding Guide, camelCase and snake_case, Vibe Coding, RSI Prevention. See Code Mode, pricing, features.

Ready to try voice dictation on your Mac?

Free download. No account required. 100% offline.

Download on the Mac App Store

Just start. It feels weird for about an hour, then it clicks.

Related articles

Try it.

Pay once. Keep it forever. Nothing goes to the cloud.

Free trial included. Pro Pack $14.99 lifetime.