Per-app profiles
Give each app its own output mode — Markdown in Obsidian, Terminal-safe in iTerm, Code-preserve in Cursor — and keep chosen apps off the cloud entirely.
The same sentence should not come out the same way everywhere. A commit message is not a Slack reply, and neither is a shell command. Per-app profiles let VoxFlow pick the output mode from whatever application has focus when you release the hotkey.
Profiles live in Settings → Per-App Profiles.
Output modes
| Mode | What it does |
|---|---|
Balanced |
The default. Light cleanup, sentence case, ordinary punctuation. |
Plain text |
No formatting characters at all. |
Markdown |
Allows Markdown structure — lists, emphasis, headings. |
Email |
A more formal register, suited to correspondence. |
Casual |
Keeps contractions and a conversational tone. |
Terminal-safe |
Avoids characters that would misbehave when pasted into a shell. |
Code-preserve |
Leaves identifiers, casing, and symbols alone. |
A sensible starting set is Code-preserve in your editor, Terminal-safe in your terminal,
Markdown in your notes app, Email in your mail client, and Casual in chat.
Keeping an app off the cloud
Each profile also has Disable cloud for this app. With it on, dictation in that app is routed to the cheapest tier instead of the accurate cloud model. It is the right setting for a terminal, where what you say is often infrastructure detail you would rather not send anywhere.
Transcription itself is already local — see Architecture. This switch governs the rewrite pass and model routing.
How a profile is chosen
VoxFlow reads the bundle identifier of the frontmost application at the moment you release the hotkey. If a profile matches that identifier, its mode is used; otherwise the global mode applies.
Note that this is separate from the sensitive app blocklist in Settings → Privacy, which stops dictation in password managers outright rather than changing how it is formatted.