Hassle-free dictation app for QA engineers

QAI Voice is a free Mac dictation app for QA engineers. It stays on when you switch apps, pastes at the cursor, and keeps transcripts on this Mac.

4 min read By William Tran

In this guide
  1. Mac dictation didn’t survive my setup
  2. The job
  3. How it works
  4. Why I keep it running
  5. Install
  6. Privacy
  7. What’s in 1.0

I got tired of Mac’s built-in dictation dying every time I switched windows. QAI Voice is a free Mac menu-bar app I built so I can talk a bug out and have the text land in whichever field I’m in.

Source on GitHub

Mac dictation didn’t survive my setup

I bounce between terminals, VS Code, the browser, Jira, Slack, TestRail, and whatever else is open. Native dictation was intermittent and slow to register. The part that actually killed it was focus. The moment I clicked another app, recording stopped. Other dictation apps did the same thing.

The other annoying part is that native dictation doesn’t keep what you said. If it didn’t register, there is nothing to copy. The words are gone.

When Apple native dictation doesn’t activate, it’s annoying. I have to Command-Tab back and forth for it to register. It happens on certain apps.

With QAI Voice, a session transcript sits in the menu. I can copy from the history if I need to.

QA words came out wrong too. I’d say Playwright and it would land as two words. Other terms did the same.

I wanted something I could leave on, hop between apps, keep talking, and not lose the thought. I also didn’t want those recordings going into Grok, Claude, or ChatGPT. Internal tickets stay on this machine.

I also tried Superwhisper. I didn’t like it much.

Wispr Flow and a few other third-party apps were fine until they weren’t. They limited how much I could say, then asked me to pay to keep talking.

That’s why QAI Voice sits in the menu bar. Option+Space, speak, pause, and the chunk pastes at the cursor. Click another window and keep going.

The job

You already hop. Repro in the browser. Write-up in Jira. Ping in Slack. Note in TestRail. Typing every repro with a laptop on the other desk is the slow part.

QAI Voice stays in the corner. You toggle dictation, not the app. Paste goes into whichever field is focused, so you can switch windows mid-session and the next chunk hits the new field.

If those notes still turn into essay-length tickets, I already wrote Stop Writing Bug Reports Like Essays.

How it works

  1. Open QAI Voice. It sits in the menu bar, no Dock icon.
  2. Press Option+Space (or Start Dictation).
  3. Talk. When you pause, that chunk is transcribed and pasted.
  4. Click Slack, Notes, VS Code, Mail, the browser, and keep talking.
  5. Option+Space again ends the session.

Change the shortcut in the menu if you want. It is remembered on this Mac. Session transcript history is in that same menu, so you can copy a chunk that didn’t paste.

QAI Voice menu open with History selected, showing saved transcripts you can copy or insert

Why I keep it running

It’s a native Mac app, 1.7 MB. No Electron. No account.

Transcription uses Apple Speech on this machine. Audio and transcripts stay on the Mac. Nothing phones home. No analytics. The source is public, so you can check.

It also has predefined terms for QA and AI, so words like Playwright have a better shot of coming through as one word.

Install

Needs macOS 26 (Apple silicon and Intel).

  1. Download QAI.zip and unzip it.
  2. Move QAI.app to /Applications.
  3. If the zip came from a browser, AirDrop, Messages, or Mail, clear quarantine first:
xattr -cr /Applications/QAI.app
  1. Open QAI Voice. Grant Microphone, Speech Recognition, and Accessibility.

Quit any older QAI Voice first. Accessibility is tied to this signature. Grant it again after you replace the app. If paste fails, toggle QAI Voice off and on in System Settings → Privacy & Security → Accessibility.

The 1.0 build is ad-hoc signed (Sign to Run Locally). That is why the xattr step exists.

Privacy

Transcription is forced on-device. Recordings live in a temp folder on that Mac. Spoken text is not uploaded. No crash reporter, no telemetry, no account.

You can read the recognizer setup in SpeechTranscriptionService.swift.

About QAI Voice version 1.0, with theQAIguy.com and a LinkedIn button

What’s in 1.0

Comments

Loading comments…

Leave a comment