Parlando 0.2.0 (build 111), dictation for Mac by Epiphani Studios. Last updated Sunday, October 4, 2026. Every row names the mechanism and a way to check it. Requirements: macOS 26 or later on Apple silicon (the shipped binary reports minos 26.0 and architecture arm64).
| Capability | How it works | Default | Verify |
|---|---|---|---|
| Hold-to-talk dictation into any app | A listen-only key monitor watches one modifier key; on release, the finished text is inserted at the focused text field through the macOS Accessibility API. | Right Option. Right Command or Globe selectable. | Hold the key in any text field, speak, release. |
| Hands-free latch | Tap the key (under 0.30 s), then press again within 0.45 s; dictation continues until the next press. | On | The panel shows "Latched". |
| On-device speech recognition | Apple SpeechAnalyzer on macOS 26 with two modules: DictationTranscriber biased by your vocabulary ("Personal") or SpeechTranscriber ("General"). | Personal | Menu bar > Speech model. |
| Streaming panel | A non-activating floating panel shows partial words and a level meter; it never takes keyboard focus. | On, Medium, bottom of screen | Settings > While you are speaking. |
| Text insertion | Automatic: up to 200 characters typed as keystrokes; longer text pasted, with the clipboard restored about 0.35 s later. Always-type and always-paste selectable. | Automatic | Menu bar > Insert text by. |
| Smart spacing and capitalization | Reads at most 12 characters before the cursor at insertion time to choose leading space and capitalization; keeps "I", acronyms, camelCase, and dictionary words. | On | Dictate mid-sentence and at the start of a line. |
| Cleanup | Removes whole-word fillers (um, uh, erm, uhm, hmm, mm, mhm, er, ah), capitalizes the first word, closes sentences at the transcriber's pauses with a period or a question mark, and applies "new line" and "new paragraph". | Light | History shows what you said beside what was typed. |
| Recovery when nothing is focused | If no text field has focus, nothing is typed; a card shows the text with a Copy button, and the dictation is saved to history. | On | Click the desktop, then dictate. |
| Language | US English by default; macOS installs a missing speech model on first use through its AssetInventory service. | en-US | Run Parlando --locales to list installed models. |
| Capability | How it works | Default | Verify |
|---|---|---|---|
| Recognition vocabulary | Plain words (names, brands) are passed to the Personal module as contextual strings, biasing recognition before it decides. | Empty until added | Dictionary pane, Words filter. |
| Corrections | "Heard, written" pairs applied on whole words, longest phrase first, case-insensitive unless flagged; "at Name" becomes "@Name". | Empty until added | Dictionary pane, Corrections filter. |
| Snippets | Say a short trigger phrase and the stored long text is typed. | None until added | Snippets pane. |
| Import from a file | One entry per line: heard -> written, comma or tab separated, or a bare word; lines starting with # or // skipped. | Manual | Dictionary > Import. |
| Import from Wispr Flow | Reads ~/Library/Application Support/Wispr Flow/flow.sqlite read-only and merges corrections, vocabulary, snippets, and mentions, keeping existing entries and listing every skipped row with a reason. | Manual | Menu bar > Import from Wispr Flow. |
| Style by kind of writing | Four surfaces (personal messages, work messages, email, other) each take a tone: Formal, Casual, very casual (personal only), or Excited!. Changes punctuation and capitalization only; never a word. Runs locally. | Formal everywhere | Style pane, one tab per surface. |
| Per-app rules | Per application bundle: fillers, spoken commands, capitalize-first, leading space, and smart spacing, each inheriting the global setting when unset. Suggested rules offered for Claude, ChatGPT, Slack, Messages, and Mail. | No rules | Settings > Per-app rules. |
| Capability | How it works | Default | Verify |
|---|---|---|---|
| Transforms on a key | Select text in any app and press Option plus 1 to 8; the selection is replaced by the model's result, or left untouched if anything fails. Built in: Polish, Prompt Engineer, Bullets, Slack, Email, Professional, Strip the AI, My voice; create your own instruction and key. | Keys bound; needs a key to run | Transforms pane. |
| Providers | Anthropic (api.anthropic.com/v1/messages) or OpenAI (api.openai.com/v1/chat/completions) with the user's own API key and chosen model; the key is stored in ~/.parlando/cloud.json with file mode 0600. | No provider set | Settings > Cloud, Test it. |
| Cloud repunctuation | Sends finished transcript text (never audio) for punctuation; any result that changes a word is discarded and the on-device text is used. | Off | Settings > Cleanup engine. |
| Medium cleanup and re-process | Rewrites for clarity and concision through the chosen provider; the original is kept and can be restored. | Off (Light is default) | Settings > Auto cleanup; Dictations row menu. |
| Capability | How it works | Default | Verify |
|---|---|---|---|
| History | Each dictation (text, destination app bundle id, duration, word count, delivered or not, and raw text when different) appended to ~/.parlando/history.jsonl. | Kept 24 hours; three days, seven days, or forever selectable | Dictations pane; Settings > History. |
| Insights | Dictations, words, minutes, words per minute, day streak, a per-day chart, and a per-app breakdown, computed from local history. | Available | Insights pane. |
| Menu bar recents | The 12 newest dictations, click to copy; undelivered ones marked. | Available | Menu bar > Recent dictations. |
| Model Context Protocol (MCP) server | JSON-RPC 2.0 over stdio, started by an assistant with Parlando --mcp. Nine tools: get_preferences, set_preference, add_substitutions, add_vocabulary, remove_entries, set_app_rule, list_app_rules, remove_app_rule, search_history. | Runs only when a client starts it | Add the binary path with --mcp to an MCP client. |
| Usage counters | Local counters over a closed list of event ids plus total seconds and characters, in ~/.parlando/stats.json; not uploaded. | On | Parlando --stats. |
| Capability | How it works | Verify | |
|---|---|---|---|
| Signed, notarized download | Developer ID Application: JASON PAEZ (34MSZG2KRW), hardened runtime, notarized, and stapled; the disk image is signed and notarized too. | spctl -a -vv /Applications/Parlando.app reports "Notarized Developer ID". | |
| Automatic updates | Reads https://updates.belstone.com/parlando/appcast.json about 20 s after launch and every 6 hours; verifies SHA-256, a strict deep code signature, and Team ID before installing; waits for any dictation in progress. | Menu bar > Check for Updates now. | |
| Permissions | Microphone and Accessibility only; entitlement com.apple.security.device.audio-input. | System Settings > Privacy & Security. | |
| Audio path build check | The build refuses to compile if any networking symbol appears in the six source files that capture, transcribe, format, or insert dictation. | Source build script, network-symbol gate. | |
| Latency build check | Every build runs the shipped binary on a 2.79-second recording and refuses to finish if the tail from end of speech to final text exceeds 350 milliseconds (a regression tripwire, far above the measured 0.06 to 0.09 seconds). | On every build | Source build.sh, step "latency regression". |
| Measurement | Result | Conditions |
|---|---|---|
| Speech engine final text after a 2.79 s recording ends | 0.061, 0.067, 0.072, 0.092 s | Parlando 0.2.0 (111), --bench at real-time pace, MacBook Pro M1 Max, macOS 26.6.2, load average 85 on 10 cores, October 4, 2026 |
| First partial words, same runs | 0.535 to 0.551 s | Same |
| Speech engine final text after a 14.96 s recording | 0.167, 0.172, 0.175, 0.198 s | Same |
| Proper nouns, one six-name sentence | Personal 5 of 6; General 2 of 6 | 452-word personal vocabulary, M5 MacBook Air, August 3, 2026, as Detto |
| Proper nouns, 40 real recordings (37 names) | Personal 30 (81%); General 25 (68%) | 456-word personal vocabulary, one speaker, August 4, 2026, as Detto |
Download: getparlando.com/download (the current build, read from the same feed the app updates from). Machine-readable: /download/latest.json. Previously named Detto; dettodictation.com redirects here.