Become Jarvis.Keep it moving.Not a second of waiting around.
Speak instead of reaching for the keyboard, decide where each transcript belongs, and carry on in another app while transcription, paste, and auto-send finish behind you.
CURRENT Codex→LOCKED Terminaldelivers in background
3intentional destination routes
Parallelrecord while earlier results load
Allconnected monitors show status
0reason to stare at a spinner
✓
The opinionated path
Ethan's recommended setup
This is not a neutral list of every possible option. It is the setup Ethan actually uses to stay fast: one light programmable mouse, one direct transcription stack, and two buttons that decide where the words go.
01 Equip
RECNEXT
Put the workflow under your thumb.
Get a mouse with at least two programmable buttons. Ethan uses the Logitech G502 X LIGHTSPEED: light, comfortable, smooth over its USB receiver, and deeply configurable in Logitech G HUB.
Primary side buttonVoiceInk++ toggle shortcut
Next buttonmacOS Next Track action
Why this mouse and mapping?
G HUB is the configuration app; G502 X LIGHTSPEED is the mouse. Assign your existing VoiceInk++ shortcut to one button and the standard media action Next Track to your Next button. VoiceInk++ owns that event while its black bar is visible—an eligible press performs the destination action and a late press is a safe no-op—then returns it to media once the bar hides.
02 Configure
TRANSCRIBESoniox V5Realtime · English
AI MODELOpenAI · gpt‑5.5Ready when a Mode needs it
DELIVERYDirect pastePer-app auto-send
Copy the fast path, then make it yours.
Start with Ethan's low-friction defaults: Soniox V5 realtime in English, live partials shown only in the black VoiceInk++ bar, one final direct paste on stop, and an app-specific Mode that presses Return in agent/chat apps but deliberately does not auto-send in Chrome.
Language · English
Realtime partials · HUD only
Paste · Default
Enhancement · Off for direct modes
Provider account · Required
Mic · Your best input
Important provider details
Soniox requires your own provider credentials and funded account. Keep Deepgram or another supported model available as a fallback. Ethan's current modes keep OpenAI gpt‑5.5 selected but leave enhancement off for the quickest direct-paste loop.
03 Move
RECfinish here
NEXTsend it back
NEXTlatch a new input while loading
Two buttons. Three deliberate destinations.
Let final keyboard focus decide, send the result back to where you started, or use the Next button after stopping to latch a new input while transcription runs. Only the two Next routes remember an exact field and its auto-send choice; Primary stays as simple as base VoiceInk.
Most dictation tools make “stop” mean one thing. VoiceInk++ turns destination into a one-click decision—without making you babysit the result.
C
START
Codex input
“ship the idea…”NORMAL STOP
›_
FOCUSED AT DELIVERY
Terminal inputPASTE · MODE MAY SEND
Normal stop · keyboard focus at delivery
Let the current input decide.
Use your normal recording button to stop. VoiceInk++ saves no exact input: base VoiceInk pastes into whichever system keyboard input is focused when final delivery happens, then follows that app's current Mode.
Start recording in Codex.
Move to Terminal while speaking.
Stop normally. Keep Terminal focused through delivery and the transcript lands there.
C
LOCKED AT RECORDING START
Codex inputPASTE + APP AUTO-SEND
“send this back…”NEXT BUTTON
V
CURRENTLY FOCUSED
VS Code
Next button during recording · recording start
Send it back to where you began.
Move anywhere while dictating, then stop with the Next button. VoiceInk++ preserves the exact input captured at recording start and delivers there without taking over the workspace you moved to when that app exposes a proven path.
Start recording in the Codex composer.
Keep working in VS Code while you speak.
Press the Next button. The result returns to Codex.
›_
NORMAL STOP
No saved input yet
“changed my mind…”NEXT DURING LOAD
C
NEW LOCKED INPUT
ChatGPT inputPASTE + APP AUTO-SEND
Next button while transcribing · second chance
Latch a new input, then leave again.
After a normal stop, focus a new editable input and press the Next button while the newest result is still loading. That exact field and its app-specific auto-send become the pending destination.
Stop normally and let transcription begin.
Focus a new ChatGPT or agent input; press the Next button.
Move on. VoiceInk++ pastes and safely auto-sends there when supported.
Agent destinations, explicitly supported
Talk straight into Codex or Claude Code.
The two exact Next routes can preserve a desktop composer or the terminal/editor input that really hosts a CLI. VoiceInk++ uses only a proven app-specific path and fails closed instead of guessing.
DESTINATION COMPATIBILITY NO PLUGIN REQUIRED
Agent surface
VoiceInk++ locks
Auto-send path
Locked icon
CCodex desktop
Exact composer when verifiable
Surface-specific Send; safe foreground route when already focused
Codex
›_Codex CLI
Exact host session when supported
Host-native delivery or a safe focused-input route
Host app
AClaude Code
Exact host session when supported
Host-native delivery or a safe focused-input route
Host app
AClaude desktop
Exact composer when verifiable
App-specific delivery with visible safe failure
Claude
The VoiceInk++ workflow
The old rhythm
speak→stop→wait→paste→resume
The VoiceInk++ rhythm
YOUspeak → latch → keep moving → keep moving
VOICEINK++transcribe → restore → paste → send
Something is always happening.
Built around the flow
The recorder tells you the truth.
No ambiguous toast. No disappearing target. The interface shows what VoiceInk++ knows, on every screen, until delivery is complete.
01 / SEE IT
One recorder panel on every connected monitor.
Start anywhere and the waveform appears everywhere, so you never have to look around to confirm that VoiceInk++ heard you.
⚡C›_
02 / KNOW IT
Mode, current app, locked destination.
The Mode icon stays left of the waveform. Current focus and the per-session locked destination stay separate on the right.
3
03 / STACK IT
Record while another result is loading.
New thoughts do not wait for old network calls. Every session keeps its own input, Mode, destination, and delivery state.
⌘V✓↵
04 / TRUST IT
Base paste or exact background delivery.
Primary stays as simple as base VoiceInk. Next verifies the saved input, delivers without focus theft when the app exposes a proven path, and surfaces a real warning instead of guessing or silently claiming success.
×ϟ̸▶︎
05 / STAY IN CONTROL
Pause the thought—not the session.
Double-press Primary to pause and resume one recording, keep paused audio out of the transcript, or discard instantly and force a one-shot raw result when you need it.
Public, open source, deliberately personal
Build Ethan's workflow on your Mac.
VoiceInk++ currently ships as source, not a notarized public download. You need macOS 14.4 or later, Xcode, and a few minutes to grant Microphone and Accessibility permission. Exact Apple Terminal/iTerm delivery also needs the optional Automation grant described in the build guide.
1
Clone the fork. Use Ethan's VoiceInkPlusPlus repository—not the upstream VoiceInk download.
2
Build the local app. The Makefile creates an ad-hoc signed VoiceInk++ app without requiring a paid developer account.
3
Grant permission and configure. Allow Microphone and Accessibility, add Automation if you use Terminal/iTerm exact delivery, pick your model, then create per-app Modes.
The optional YouTube and Chrome companion is included as source, with its extension, macOS helper, tests and agent setup guide. Install it separately when you want it. It pauses YouTube while you dictate and supports Agentic Mouse's YouTube controls and Chrome shortcuts.
$ git clone https://github.com/EthanSK/VoiceInkPlusPlus.git
$ cd VoiceInkPlusPlus
$ make local
$ open ~/Downloads/VoiceInkPlusPlus.app
Output: standalone VoiceInk++ app
Do not use the upstream Homebrew cask for this fork. It installs upstream VoiceInk, not VoiceInk++.
Personal fork. Shared in public.
VoiceInk++ is Ethan SK's opinionated fork of VoiceInk by Beingpax. It keeps the excellent native macOS foundation and pushes hard on destination control, overlapping work, and the no-wait agent workflow. This fork has no Pro purchase, trial, license validation, affiliate promotion, or remote promotional-announcement system. Licensed under GPL‑3.0.