Short answer: enable the Software Development profile in AICHE settings (Pro only), press ⌃+⌥+R on Mac or Ctrl+Alt+R on Windows/Linux, and dictate identifiers, flags, and library names without the engine guessing at plain English.
The problem this solves
Generic voice recognition is trained on conversational prose. It hears "useState" as "you state", "kubectl" as "cube cuddle", and "--dry-run" as "dry run" with the dashes lost. The default models also drop case, so snake_case, kebab-case, and camelCase all come back as flat lowercase that you have to fix by hand. The Software Development profile reweights the recognition pass for the vocabulary developers actually speak.
How it works
- Subscribe to Pro (the profile is not available on Personal).
- Open AICHE settings and switch the recognition profile to Software Development.
- Place your cursor in your editor, terminal, or chat input.
- Press
⌃+⌥+Ron macOS orCtrl+Alt+Ron Windows and Linux. Recording is toggle, not push-to-talk. - Speak code-adjacent prose naturally: "run kubectl apply dash f deploy dot yaml in the staging namespace, then tail the logs with stern dash dash since five m".
- Press the hotkey again to stop. AICHE transcribes, runs the polish pipeline with the dev profile weighting, and inserts clean text at the cursor.
- Review and hit Enter (or keep typing). Smart Insert puts the text where the cursor was, in any app.
What the profile actually tunes
The profile is a recognition mode, not a rewrite step. It changes how the post-Whisper pipeline interprets the audio before the text reaches your cursor. Concretely, it shifts weight toward:
- Camel and Pascal identifiers like
useEffect,JSONParser,IAuthRepository. - Snake and screaming-snake like
max_retriesandAPI_BASE_URL. - Kebab-case flags and package names like
--dry-run,next-auth,eslint-plugin-react. - CLI verbs and tooling like
git rebase,kubectl,docker compose,pnpm,uvx,cargo,grep -RIn. - Library and framework names like Next.js, FastAPI, SvelteKit, Tailwind, Pydantic, Polars, tRPC.
- Common API and protocol nouns like JWT, OAuth, gRPC, GraphQL, WebSocket, SSE.
- File extensions and paths like
.tsx,.toml,./src/lib/auth.ts.
The polish pipeline still removes filler words, normalizes punctuation, and applies your custom vocabulary on top. The profile changes the recognition prior; the cleanup layer does the rest.
Pair it with custom vocabulary
The Software Development profile handles the shape of the language. Custom vocabulary handles the names that are unique to your stack.
The two are complementary:
- The profile recognizes that
kubectlis a CLI tool anduseEffectis a hook, without you telling it anything. - Your custom vocabulary (50 entries, synced across all devices) covers the things AICHE can't infer: your repo names, internal services, teammates' usernames, private packages, the name of your auth gateway.
Add aiche-pipeline, ppravdin, our-internal-svc, OrgAuthGateway, your domain, and your top ten function names to custom vocabulary. With the dev profile on and 50 entries filled in, AICHE handles the speech of a working engineering codebase without continuous correction.
Cross-platform behavior
The profile is a server-side setting tied to your account, so it follows you across every device you sign in on. Turn it on once and it applies on macOS, Windows, Linux, iPhone, iPad, Apple Watch, Android, the Chrome extension, the Obsidian plugin, and any REST API calls you make.
A few practical notes:
- The desktop apps and the Chrome / Obsidian extensions are English-UI, but voice input runs in 99 languages on every platform. Dictate Russian or Spanish prose mixed with English identifiers and the profile still applies on the technical tokens.
- The profile pairs with Voice Code for AI Coding Agents (also Pro) when you're dictating prompts into Claude Code, Codex, Cursor, or Antigravity. Same hotkey, same recognition.
- Audio is purged immediately after processing, within 1 second. The profile setting is the only thing that persists server-side.
Tips
- Speak the symbols. Say "dash dash dry dash run" or "double dash dry hyphen run" - the profile knows what shape you want and renders
--dry-run. Same for "dot py", "dot tsx", "slash" for paths. - Pause between identifiers and prose. A short beat between
useEffectand the next clause helps the pipeline keep the casing intact through paragraph normalization. - Combine with the right hotkey workflow. Press the hotkey, stand up, pace, narrate the change you want, sit down, hit Enter. The profile makes that loop usable for actual code-laden prompts, not just plain English.
- Add the libraries you mention most to custom vocabulary. Even with the profile on, very-new package names that postdate the model's training (a 2026 release from last week) are safer in custom vocabulary.
- Leave smart quotes off in settings. Otherwise curly quotes sneak into dictated CLI snippets and break the shell on paste.
Result: prompts and commit messages that took two passes of cleanup ("you state" -> useState, "cube cuddle" -> kubectl, "dash dash dry run" -> --dry-run) now land correct on the first try, so a 200-word code-heavy prompt comes out of an 80-second recording ready to send.
Works With
The profile applies to any dictation, but it matters most in developer tools:
- Claude Code - code identifiers land correctly in agent prompts
- Cursor - architecture prompts with library names and flags
- VS Code - documentation with technical terms intact
- Terminal - CLI commands and commit messages
- GitHub - PR descriptions with correct casing
Try it now: turn on the Software Development profile in AICHE settings, press your hotkey in your editor, and dictate one sentence describing the next change you want to make - include at least one CLI flag, one library name, and one identifier from your codebase.