March 28, 20263 min read

Dictation for Terminal & CLI Workflows on Mac

I didn't expect voice to work well in the terminal. Too many dashes and slashes. But Code Mode handles that, and now I dictate maybe half my commands.

Works in Terminal, iTerm2, Warp, whatever terminal emulator you use.

Why Bother?#

Long commands are a pain to type. This one is 72 characters:

You say

docker compose dash f docker dash compose dot prod dot yml up dash dash build dash d dash dash remove dash orphans

OutputBash
docker compose -f docker-compose.prod.yml up --build -d --remove-orphans

One typo and it fails. Speaking it correctly on the first try is faster than typing and fixing.

Setup#

1

Create a terminal profile

In Whisperer settings, add a per-app profile for your terminal (Terminal.app, iTerm2, Warp)

2

Enable Code Mode

Turn on Code Mode so dashes, dots, and special characters get interpreted correctly

3

Start dictating

Hold Fn in your terminal and speak

Examples#

Git#

You say

git checkout dash b feature slash snake case add user auth

OutputBash
git checkout -b feature/add_user_auth
You say

git commit dash m quote fix authentication timeout for expired sessions quote

OutputBash
git commit -m "fix authentication timeout for expired sessions"
You say

git log dash dash oneline dash n ten

OutputBash
git log --oneline -n 10

Files#

You say

mkdir dash p src slash components slash auth

OutputBash
mkdir -p src/components/auth
You say

find dot dash name quote star dot ts quote dash type f

OutputBash
find . -name "*.ts" -type f

Docker#

You say

docker exec dash it snake case postgres container psql dash u postgres

OutputBash
docker exec -it postgres_container psql -u postgres

SSH#

You say

ssh dash i tilde slash dot ssh slash id rsa user at one nine two dot one six eight dot one dot one hundred

OutputBash
ssh -i ~/.ssh/id_rsa user@192.168.1.100

Vocabulary#

"dash" = hyphen

Code Mode turns "dash" into -

"dash dash" = long flags

Produces -- for flags like --verbose

"dot" = period

File extensions, IP addresses

"slash" = path separator

/ for file paths

"tilde" = home

~ for home directory

"star" = wildcard

* for globs

"pipe" = pipe

| for command piping

Mixing Code and Comments#

You can do both in one dictation:

You say

hash space to do add error handling for network failures

OutputBash
# TODO add error handling for network failures

When Voice Is Faster#

Tip

Voice works well for:

  • Long commands with lots of flags (docker, kubectl, ffmpeg)
  • Deep file paths where typos are easy
  • Commit messages (natural language anyway)
  • When you're reading logs and don't want to context-switch to type

Notes#

Info
  • Works with any shell (zsh, bash, fish). Whisperer just inserts text at the cursor.
  • For multi-line commands, toggle mode beats hold-to-talk.
  • Tab completion works normally between voice inputs.

Related: How to Dictate Code on Mac, Code Mode, Voice Coding Guide. See pricing and all features.

Ready to try voice dictation on your Mac?

Free download. No account required. 100% offline.

Download on the Mac App Store

Related articles

Try it.

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

Free trial included. Pro Pack $14.99 lifetime.