Blog

How to Use Voice-to-Text in Any Mac App

The App Compatibility Problem

Most voice input tools on Mac work only where the developer thought to add support. Apple Dictation works in Apple's own apps and most text fields, but behaves inconsistently in third-party applications. Web-based voice tools only work in Chrome text fields. Dedicated dictation apps often require you to dictate into their own interface and then paste the result.

For the voice input habit to actually stick, it needs to work everywhere — in the terminal, in your IDE, in Slack's desktop app, in Notion, in the text field of a form you fill out twice a year. If you have to think about whether voice will work before reaching for the hotkey, the friction kills the habit.

System-wide text insertion solves this by bypassing the application layer entirely.

How System-Wide Insertion Works

Standard voice input tools communicate with applications through accessibility APIs or app-specific integrations. This is why they only work in "supported" apps — the app needs to implement or support the specific interface the voice tool uses.

System-wide insertion works differently. After transcribing and processing your speech, the tool programmatically simulates keyboard input at the operating system level — the same way accessibility software like keyboard remappers or macro tools work. The result appears at the cursor position exactly as if it had been typed, letter by letter.

Because this operates at the OS input level rather than through application APIs, it works in virtually any application that accepts text input:

  • Text editors and IDEs
  • Terminal and command line
  • Browser text fields (including web apps)
  • Native macOS apps
  • Electron apps (VS Code, Notion, Slack, Discord)
  • PDF form fields that accept input
  • Password fields (with appropriate caution)

Setting Up System-Wide Voice Input on Mac with Telvr

Step 1: Install Telvr

Download Telvr from the website and install it. During first launch, macOS will ask for accessibility permissions — this is the permission that enables system-wide text insertion. Grant it in System Settings under Privacy and Security, then Accessibility.

Without this permission, text can only be inserted in apps that explicitly support the tool. With it, text insertion works everywhere.

Step 2: Configure the Hotkey

Telvr defaults to Option + Space. This combination is comfortable (thumb on each key) and rarely conflicts with application shortcuts.

If you prefer a different key combination:

  1. Open Telvr from the menu bar
  2. Go to Preferences
  3. Click the hotkey field and press your preferred combination

Good alternatives:

  • Right Option + Space (if you use Left Option for typing)
  • Control + Shift + Space
  • A dedicated function key if your keyboard has programmable keys
  • Side mouse button if your mouse has extra buttons

Avoid:

  • Command + Space (Spotlight)
  • Option + Tab (window switcher in some apps)
  • Any combination your IDE uses frequently

Step 3: Select an Enrichment Mode

Before dictating, choose the mode that matches your context. The mode selector is in the Telvr menu bar icon.

For system-wide use across different apps, Clean mode is the default that works everywhere. It removes fillers, fixes grammar, and adds punctuation. Switch to other modes for specific contexts.

Step 4: Position Your Cursor

Click in the text field, document, terminal prompt, or any editable area where you want text to appear. The cursor must be placed — Telvr inserts text at the cursor position, so if no cursor is active, nothing will appear.

Step 5: Dictate

Hold the hotkey, speak naturally, release. Within 1-2 seconds, the formatted text appears at your cursor.

App-by-App Tips

Terminal

Voice input in the terminal is useful for longer commands, git commit messages, and any terminal prompt that accepts extended text input.

Note: Text appears character by character at the terminal prompt. Standard commands work fine. Avoid dictating passwords directly — use a password manager.

Particularly useful for: git commit -m "..." (speak your commit message), writing shell scripts in nano or vim (in insert mode), composing multi-line heredoc content.

VS Code

All text fields accept dictation: the editor itself, the integrated terminal, search and replace fields, the git commit message field, and the comment field in the Source Control panel.

Recommended mode: Clean mode for code comments, Dev Task mode for PR descriptions and commit messages.

Browser (Safari, Chrome, Firefox)

Any input, textarea, or contenteditable element accepts dictation. This covers web-based email clients, Google Docs, Notion in the browser, GitHub issue forms, and virtually every web application.

Slack Desktop App

Electron-based apps like Slack accept system-wide insertion. Dictate directly into the message compose field. Clean mode works well for messages; Meeting Notes mode is useful for typing up post-meeting summaries in Slack threads.

Notion

Both the desktop app and browser version work. Dictating directly into Notion pages with Clean or Meeting Notes mode produces well-formatted content.

Mail and Calendar

Native macOS apps have full support. Email compose windows, calendar event descriptions, and notes fields all accept dictation.

Troubleshooting

Text not appearing:

  • Check that Accessibility permission is granted in System Settings
  • Verify the cursor is positioned in an editable field (not in a read-only area)
  • Some protected text fields (like certain password managers) block programmatic input intentionally

Text appears in the wrong location:

  • The insertion point moved between pressing the hotkey and the text appearing. Keep the target window in focus during dictation.

Extra characters or garbled output:

  • This occasionally happens in apps with autocomplete that misinterprets rapid character input. Disable autocomplete in that app or type more slowly by adjusting settings.

Works in some apps but not others:

  • Some sandboxed or security-hardened apps restrict programmatic input. This is the app's security policy, not a Telvr limitation.

What Makes System-Wide Dictation Different

The practical difference between system-wide dictation and app-specific voice tools is the mental model.

With app-specific tools, voice input is a feature of certain apps. You remember which apps support it and switch your behavior accordingly.

With system-wide dictation, voice input is a behavior available everywhere. The hotkey is always there. The habit becomes reflexive rather than deliberate — you reach for the hotkey the same way you reach for any keyboard shortcut.

That consistency is what makes voice input a sustainable productivity tool rather than an occasional experiment.