← Back to Blog

Short answer: Type git commit -m " in Terminal, then hold your dictation hotkey, speak the commit message, and release. A system-wide voice typing app like Voice Keyboard Pro inserts the transcribed text at your cursor in Terminal, iTerm2, or any other shell.

Commit messages occupy a strange corner of a developer's day. They are prose, not code, yet you write them inside the least prose-friendly environment on your machine. They matter enough that every team has a style guide for them, yet they arrive at the exact moment you are most eager to move on. The result is visible in any repository's history: a thoughtful paragraph here, then a long run of fix, wip, and more fixes.

The underlying problem is friction. A genuinely useful commit message, the kind that explains what changed and why, runs 15 to 50 words. At a typical 40 words per minute, that is up to a minute of typing English in a shell, dozens of times a day. Speaking those same words takes a few seconds, because speech runs at 130 to 150 words per minute. This guide shows exactly how to wire that up: voice typing git commit messages in Terminal on a Mac, including the quoting pitfalls, conventional commit prefixes, and longer commit bodies in an editor.

Why Terminal Is Where Dictation Tools Give Up

If you have tried Apple's built-in dictation in Terminal, you already know it is a rough fit. It technically types into the prompt, but the experience fights you in three ways:

What a terminal workflow actually needs is push-to-talk: dictation that is on exactly while you hold a key and off the instant you release it, that types into the active cursor position like a keyboard would, and that you can teach your own vocabulary. That is the design of Voice Keyboard Pro, a menu bar app for Mac where you hold a hotkey, speak, release, and the text appears at your cursor in whatever app has focus, Terminal included.

The Basic Workflow: git commit -m by Voice

Here is the core loop, end to end:

  1. Stage your changes as usual: git add -p or git add .
  2. Type the command scaffold by hand: git commit -m " and leave the cursor inside the quote.
  3. Hold your Voice Keyboard Pro hotkey and say the message: "Add retry logic to the upload client so transient network failures no longer surface as user-facing errors."
  4. Release the hotkey. The sentence appears at the cursor in under a second, capitalized and punctuated by the transcription engine.
  5. Type the closing quote and press Enter.

The division of labor is the point. Keystrokes handle the command syntax, where precision is everything and the character count is tiny. Your voice handles the English, where the character count is large and the syntax is forgiving. You never dictate git commit -m itself; five keystrokes with tab completion beats saying it out loud every time.

Once the loop is comfortable, the time savings compound quietly. A developer who commits 15 times a day and writes real messages saves several minutes daily, but the bigger effect is that message quality stops degrading as the day goes on. Saying one more sentence is cheap in a way that typing one more sentence, for the fortieth time, is not. That dynamic shows up across the whole workflow, which we cover in our guide to voice to text for developers.

Handle Quotes Before They Handle You

One genuine pitfall deserves attention: shell quoting. Your commit message is living inside a quoted string, so the message itself must not break the quoting.

If a message gets mangled, you do not need to recommit carefully; git commit --amend opens the message for a second pass.

Conventional Commits by Voice

Teams using conventional commits (feat:, fix:, chore:, and friends) can keep the convention without losing the speed. Two approaches work well:

Type the prefix, speak the rest. The prefix is short and rigid, exactly the kind of text keystrokes are good at. Type git commit -m "fix: , then dictate the description. This is the simplest pattern and the one we recommend starting with.

Teach the prefix to your dictionary. Voice Keyboard Pro's Smart Vocabulary supports replacement rules, so you can map a spoken phrase like "fix colon" to the literal text fix: , or even map a phrase like "feat prefix" to feat( if your team scopes its commits. Add your project's recurring identifiers while you are there: service names, module names, ticket prefixes. Spoken words come out as the exact strings your repository uses, which is the single biggest accuracy upgrade over built-in dictation.

Longer Commit Bodies: Dictating in vim and nano

Substantial changes deserve a commit body, and this is where voice typing genuinely shines, because multi-sentence explanations are pure prose. Run git commit with no -m flag and git opens your configured editor.

In vim: press i to enter insert mode first. System-wide dictation types like a keyboard, so in normal mode your transcribed words would be interpreted as vim commands, which is as chaotic as it sounds. Once in insert mode, dictate the summary line, press Enter twice by hand, then hold the hotkey again and speak the body: what changed, why, what you considered and rejected. Press Escape, :wq, done.

In nano: there is no mode to worry about; place the cursor and talk.

A useful habit for the body is to narrate the explanation you would give a teammate at your desk: "The cache invalidation was firing before the write finished, so readers occasionally saw stale data. This moves invalidation into the write transaction." Spoken explanations come out naturally ordered for a reader, because speech forces you to produce one linear thread instead of editing fragments back and forth.

It Works in Every Terminal You Use

Because Voice Keyboard Pro inserts text at the system cursor, it is not coupled to any particular terminal emulator. The same hold-speak-release gesture works in:

That last point matters more than it looks: the dictation runs on your Mac, so the remote machine just receives ordinary typed input. Nothing needs to be installed server-side. And the same hotkey keeps working when you switch from the terminal to your editor, browser, or Slack, which is what makes the habit stick; our post on dictation for coding covers how voice fits the rest of the development day, from code comments to pull request descriptions.

Beyond Commits: The Rest of Your Git Prose

Once the commit workflow is muscle memory, the same pattern covers every other place git asks you for English:

Developers who adopt voice for one of these usually end up using it for all of them, a shift we have written about in why developers are switching to voice.

Troubleshooting: When Dictated Text Does Not Appear at the Prompt

If you hold the hotkey, speak, release, and nothing lands in the terminal, the cause is almost always one of these:

One more behavior worth knowing: dictated text arrives as ordinary typed input, so your shell history, line editing, and keybindings treat it exactly like something you typed. You can release the hotkey, notice a wrong word, and fix it with the arrow keys or Ctrl+W like any other typo. There is no special editing mode to learn, and nothing about your shell configuration needs to change.

A Note on Privacy

Commit messages routinely reference unreleased features and internal system names, so it is fair to ask where your words go. Voice Keyboard Pro's server stores only operational pings; no audio and no transcript content are stored. What you dictate lands at your cursor and nowhere else.

Getting Set Up

  1. Download Voice Keyboard Pro for Mac and grant the microphone and accessibility permissions it asks for; the accessibility permission is what allows typing at the cursor in Terminal.
  2. Choose a hold-to-talk hotkey you can press without leaving the home row mentally, since you will use it mid-command.
  3. Add your project vocabulary to Smart Vocabulary: repository names, service names, the dozen domain terms a generic engine would misspell.
  4. Make your next commit by voice: git commit -m ", hold, speak, release, close the quote, Enter.

The free tier has daily limits that comfortably cover trying this on a real workday. Pro removes the limits at $4.99 a month or $34.99 a year, which is cheap against the arithmetic of speaking at 150 words per minute instead of typing at 40, even for the 80 to 100 WPM typists at the fast end of the keyboard.

The Bottom Line

Good commit messages are a writing problem wedged into a typing-hostile environment, and the fix is to stop typing them. Keep the keystrokes for the command syntax, where they are precise and few, and speak the English, where the words are many and the speed difference is 3x. Hold the hotkey, explain the change the way you would to a teammate, release, Enter. Your future self, reading git log six months from now, gets the explanation you always meant to write.

Install Voice Keyboard Pro free and dictate your next commit message. The history of your repository will start reading like documentation instead of a sigh.