Skip to content

voxtype — Type with your voice

voxtype turns speech into text in whatever app has focus — your editor, browser, terminal, or a coding agent’s prompt box. Everything runs on your machine: no cloud, no accounts, no audio leaving your Mac.

  1. Install — the best engine for your machine comes bundled automatically (Apple-GPU parakeet-mlx on Apple Silicon, CPU parakeet on Intel):

    Terminal window
    uv tool install voxtype

    Upgrade later with uv tool upgrade voxtype (it keeps any extras).

  2. Grant your terminal Microphone, Accessibility, and Input Monitoring permissions (System Settings → Privacy & Security) when prompted.

  3. Start dictating:

    Terminal window
    voxtype

    Press Ctrl+; to start, speak (watch the ghost), press Ctrl+; again to stop — your speech is typed at the cursor. Esc cancels a take.

  4. Configure it: run voxtype setup for an interactive walkthrough — it asks a handful of explained questions (engine, mode, hotkey, …) and writes your ~/.config/voxtype/config.toml. (Prefer editing by hand? voxtype init drops a fully commented sample instead.)

Rather have your coding agent do all of this? See Set it up from your coding agent below.

One key to dictate

Hit the toggle hotkey (default Ctrl+;), speak as long as you like, hit it again — the whole take is transcribed with full sentence context and typed in one go (a single edit to undo, in most apps). No chopping at pauses; sub-second results after a one-time warmup (the first take loads the model).

Or go hands-free

Prefer no keys at all? Say “hey claude” (configurable, with alias spellings) to start dictating; say “stop listening” or go quiet to re-arm. The hotkey still works as an override.

Spoken submit

Say “go”, “over”, or “submit” as a standalone utterance and voxtype presses Enter — dictate a prompt to a coding agent and send it without touching the keyboard.

Clean transcripts

Standalone fillers (uh, um, …) are stripped and 3+ word stutters collapse (“I I I think” becomes “I think”) — on-device regex, no LLM involved.

Visible when it matters

A little glowing-blue ghost appears ONLY while recording — its mouth opens as you speak. Ghost on screen = actively recording; no ghost = not recording (paused, or waiting for the wake word).

Nothing is ever lost

Esc cancels a recording outright (the default cancel_hotkey). Two optional rescues, both off by default: bind a paste-again hotkey (paste_hotkey) to re-type the last session’s transcript at your cursor, and/or enable clipboard mirroring (copy_to_clipboard) to echo each session to the clipboard.

voxtype skill installs a short guide skill into your coding agents — Claude Code, Codex, or both (each reads its own marketplace in this repo):

Terminal window
voxtype skill

It sets up whichever of the two agents is on your machine and skips the other. Afterwards, just ask your agent “help me install voxtype” (or “set up voice dictation”) and it walks you through uv tool install voxtypevoxtype setup → launch, including the macOS permission steps.

Almost everything is a choice: how dictation activates (hotkey, wake word, or always-on), how speech becomes text (whole-take vs. per-pause), which local engine runs it (Apple-GPU Parakeet, CPU Parakeet, or Moonshine), plus hotkeys, sounds, optional clipboard mirroring, and more. The complete reference — every config key with its default, the engine comparison, and all CLI flags — lives in Configuration & CLI.

ActionDefaultConfigurable as
Toggle recordingCtrl+;hotkey
Cancel recording (discard)Esc (only while recording)cancel_hotkey
Re-type last transcriptoffpaste_hotkey
Submit (press Enter)say “go” / “over” / “submit”submit_phrases
Stop dictating (vad segmentation)say “stop listening”stop_phrase

In the default toggle + hold setup you stop by pressing the toggle hotkey again; the spoken stop_phrase only applies to per-utterance (vad) transcription — i.e. wake mode or segmentation = "vad".

Not sure how to spell a chord for the hotkey settings above? Run voxtype hotkey, press the combo you want, and it prints a ready-to-paste hotkey = "..." line (use the same chord string for cancel_hotkey / paste_hotkey).

Full reference: Configuration & CLI.