You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2. Focus any text field in any app (Notes, Slack, browser, etc.)
41
45
3. Press **`Ctrl+Space`** — a floating overlay appears with a waveform
42
46
4. Speak — live transcribed text appears in the overlay
43
-
5. Press **`Ctrl+Space`** again to stop, or wait for 2 seconds of silence
47
+
5. Press **`Ctrl+Space`** again to stop, or wait for silence auto-stop
44
48
6. The transcribed text is automatically pasted into the focused text field
45
49
50
+
### Voice wake ("Hey torch")
51
+
52
+
1. Open the **Wake** page in the sidebar and enable it (or press `Ctrl+Shift+W`)
53
+
2. Say **"Hey torch"** — Silero VAD detects your speech, Voxtral checks for the wake keyword
54
+
3. If matched, the dictation panel appears and you can start speaking
55
+
4. Dictation auto-pastes when you stop speaking, then wake listening resumes
56
+
57
+
The wake keyword is configurable in the Wake settings (default: "torch"). The app accumulates the full speech segment before checking, so you can say "hey torch" naturally as one phrase.
58
+
59
+
### Replacements
60
+
61
+
Add text replacements in the **Replacements** page. Each entry has a trigger and replacement — when the trigger appears in transcribed text, it's automatically replaced.
62
+
63
+
Examples:
64
+
-`mtia` → `MTIA`
65
+
-`executorch` → `ExecuTorch`
66
+
-`execute torch` → `ExecuTorch`
67
+
68
+
Supports case-preserving matching and word boundary options.
69
+
70
+
### Snippets
71
+
72
+
Add voice-triggered templates in the **Snippets** page. When your entire dictation matches a snippet trigger, the template content is pasted instead.
├── Wake (VAD toggle, keyword, detection tuning, status)
277
+
└── Settings (runner paths, model files, silence, shortcuts)
213
278
```
214
279
215
280
## Troubleshooting
@@ -223,11 +288,13 @@ The app needs **Accessibility** permission to simulate `Cmd+V` in other apps.
223
288
3. If already listed, toggle it **off and back on**
224
289
4.**Quit and relaunch** the app — macOS caches the trust state at process launch
225
290
226
-
When running Debug builds from Xcode, each rebuild produces a new binary signature. macOS tracks Accessibility trust per binary identity, so you may need to re-grant permission after rebuilding. To avoid this:
227
-
- Remove the old entry from Accessibility settings before re-adding
228
-
- Or run the Release build for testing dictation
291
+
After every fresh build, reset Accessibility permissions:
Even if Accessibility isn't granted, the transcribed text is always copied to the clipboard — you can paste manually with `Cmd+V`.
297
+
Then relaunch and re-grant when prompted.
231
298
232
299
### Model fails to load / runner crashes
233
300
@@ -249,6 +316,21 @@ The app requests microphone access on first use. If denied:
249
316
2. Enable `Voxtral Realtime`
250
317
3.**Quit and relaunch** the app — macOS caches permission grants per process lifetime
251
318
319
+
### Microphone producing silence
320
+
321
+
If the Wake status shows "Disabled" with a silence error, macOS is delivering zero-audio to the app. This can happen after fresh builds or permission changes.
322
+
323
+
1. Toggle the app's microphone permission **off and on** in System Settings
324
+
2. Quit and relaunch the app
325
+
3. If running from Cursor's terminal, try the native macOS Terminal instead
326
+
327
+
### Voice wake not triggering
328
+
329
+
- Check the **Wake** page — status should show "Listening for speech..."
330
+
- Ensure `silero_vad_stream_runner` and `silero_vad.pte` paths are correct
331
+
- Try increasing the **Check window** slider (default 4s) — Voxtral needs 1-2s to produce the first token
332
+
- Speak clearly and wait for a brief pause after "hey torch" so VAD detects the speech segment end
If you've built or installed the app multiple times (Debug builds, Release builds, DMG installs), macOS may have accumulated multiple permission entries for the same bundle ID. Reset them to get a clean slate:
0 commit comments