Voice commands
Voice commands are separate from voice typing: use the command hotkey (default ⌃⌥C). After ASR, the app matches your dictionary → the built-in dictionary, then optionally an intent LLM, then runs a hotkey / shell action.
setup-07-commands.webp)Master switch
Section titled “Master switch”Path: Settings → Voice commands
- Enable voice commands (
voiceCommandsEnabled, default on)
When off: the command hotkey, history re-run, and related deeplinks will not start voice commands; voice typing / translation are unaffected.
Actions, resolution, and provider below can still be preconfigured; they apply as soon as you turn the switch back on.
Starter
Section titled “Starter”Path: Settings → Voice commands → Starter
Apply actions and built-in packs in one tap, then adjust cards individually.
| Preset | Effect |
|---|---|
| Safe | Edit hotkeys only; intent model off; only the Editing pack |
| Q&A | Floating answers only; Trial / Pro turns the intent model on; built-in packs off |
| Full | Hotkeys + insert + floating answer + rewrite + open apps + Shortcuts; all packs; shell stays off |
Actions
Section titled “Actions”Path: Settings → Voice commands → Actions
Tap a card to add or remove an action type. Removed types are skipped by the local dictionary and are not returned by the intent model.
| Card | Meaning | Example | Default |
|---|---|---|---|
| Allow hotkeys | Inject keyboard shortcuts. Expanding the card shows Confirm dangerous hotkeys | “copy” → ⌘C (built-in); “favorites bar” → ⌘⇧B (user dictionary) |
On |
| Allow text insert | Insert a phrase at the caret | “insert email” → inserts a preset address (user dictionary) | On |
| Allow floating answer | Show Q&A in a floating window | “explain DNS in one sentence” → answer in the HUD (intent model) | On |
| Rewrite when text is selected | Trial / Pro; needs the intent model | Select text, then say “make it formal” (intent model) | On |
| Allow open app / URL | Launch an app by name or an https / mailto URL — not shell | “open Terminal” (built-in); “open GitHub” → https://github.com (user dictionary) |
On |
| Allow Shortcuts | Run an existing item in Shortcuts.app | “run daily report” → runs the shortcut named “Daily report” (user dictionary) | On |
| Allow shell commands | Trial / Pro; expanding the card shows Confirm shell commands. See Shell commands | “what time is it” → runs date, with confirmation first |
Off |
The bundled dictionary only covers hotkey and open app actions; examples for the other five types have to come from the user dictionary or the intent model.
Built-in packs
Section titled “Built-in packs”Tap a card to add or remove a built-in phrase group. Removed packs no longer match in the bundled dictionary; your custom dictionary is unchanged. All four packs are on by default.
| Card | Example phrases |
|---|---|
| Editing | copy, paste, undo, save |
| Windows & tabs | close, new, reload, next tab |
| Open apps | open Safari / Finder / Terminal (needs Allow open app / URL, not shell) |
| App-specific | frontmost-app phrases (back, address bar, sidebar, …) |
Command dictionary (resolution)
Section titled “Command dictionary (resolution)”Match order
Section titled “Match order”Exact first, then fuzzy. Within each pass:
- User · frontmost-app scoped (enabled)
- User · global (enabled)
- Built-in · frontmost app (
appsinCommandRegistry.json) - Built-in · global
Your entries override the same phrase in the built-in dictionary.
User dictionary
Section titled “User dictionary”Settings → Voice commands → Command Dictionary opens the editor (stored in local UserDefaults — no network):
- Phrases: comma / semicolon / newline separated, e.g.
refresh, reload - Action: hotkey, insert, open app / URL, Shortcuts, or shell (Trial/Pro and shell allowed)
- Scope: optional Bundle ID; empty = global
- Enable / disable, click to edit, delete
One ready-to-copy sample per action type:
| Phrase(s) | Action | Scope | Required capability |
|---|---|---|---|
insert email |
Insert text you@example.com |
Global | Allow text insert |
GitHub |
Open app / URL https://github.com |
Global | Allow open app / URL |
screen OCR |
Shortcut OCR |
Global | Allow Shortcuts |
what time is it |
Shell date |
Global | Allow shell commands (Trial / Pro) |
favorites bar |
Hotkey ⌘⇧B |
com.apple.Safari |
Allow hotkeys |
“Floating answer” and “Rewrite selection” are not user-dictionary actions — the intent model is the only source for those two.
Your entries override the same phrase in the built-in dictionary. Built-in phrases follow Built-in packs on the Voice commands page.
Built-in dictionary
Section titled “Built-in dictionary”Bundled CommandRegistry.json (Bundle.module). There is no in-app editor for that JSON file — use the user dictionary or the intent model for free-form phrases.
In total there are 108 built-in entries: 41 global (mostly hotkeys; open-app phrases use the open action) plus 67 app-specific overlays across 9 apps. Full list: Command reference. Overview:
| Category | Example phrases |
|---|---|
| Editing | copy, paste, undo, select all, save, save as |
| Find & reload | find, find next, refresh, hard / force reload |
| Windows / tabs | new, close, next/previous tab, switch app, fullscreen |
| Format & keys | bold, italic, underline, return, space, tab, escape, delete… |
| Open apps (open) | open Terminal / Finder / System Settings / Safari / Chrome / Notes |
Open-app phrases need Allow open app / URL — not Trial/Pro shell. User-dictionary shell actions still need Trial / Pro and Allow shell commands (see Shell).
App-specific (apps) covers common frontmost apps such as Safari, Chrome, Arc, Edge, VS Code, Cursor, Finder, Terminal, and Slack (reload, tabs, address bar, back/forward, …).
Prefer local dictionary
Section titled “Prefer local dictionary”When on, a dictionary hit (your entries + built-in) skips the intent model, reducing latency and API calls.
Intent model
Section titled “Intent model”Trial / Pro only (LicenseFeature.intentModel). Free keeps the local command dictionary only.
When enabled, phrases that miss the dictionary can go to an LLM for intent (BYOK). Separate from text processing / polish (shared keychain possible, separate toggle). Selection rewrite uses the same intent credentials and the same license gate.
Path: Settings → Voice commands → Intent model section.
vs voice typing
Section titled “vs voice typing”| Voice typing | Voice command | |
|---|---|---|
| Default hotkey | ⌃⌥Space |
⌃⌥C |
| Result | Insert text | Run hotkey / shell |
| Pipeline | Polish, replacements, … | User/built-in dictionary → intent |
Resolve source in history
Section titled “Resolve source in history”Command history can show short resolve badges: Dictionary / Intent model / Manual (localRegistry / llm / manual).
