Skip to main content
dictare icon

DICTAre™

Voice layer for AI coding agents.

Speak to your agent. No window focus required. 100% local.

MIT License CI

dictare.io · OpenVIP™ Protocol

Watch the video

If you want to know how a poker game turned into a voice interaction system for coding agents... watch this →


Why dictare

Most voice tools (Wispr Flow, Superwhisper, etc.) simulate keystrokes — they type into whatever window has focus. Switch to your browser and your code gets your voice.

Dictare uses a protocol. Your agent listens via SSE and receives transcriptions regardless of window focus. Your coding agent can be behind 3 other windows — it still gets your words.

Features

  • No focus required — agent receives voice even when its window is in the background
  • Agent-native — transcriptions go to the agent protocol, not a text field
  • 100% local — STT runs on-device, zero data leaves your machine
  • Multi-agent — switch agents by voice: "agent coding", "agent review"
  • Open protocol — OpenVIP — any tool can implement the SSE endpoint
  • Bidirectional — STT (voice in) + TTS (voice out)

Install

macOS, recommended — full guide

brew tap dragfly/tap
brew install dictare
dictare setup

Homebrew installs the Dictare entry point and macOS dependencies. Dictare owns the runtime in ~/.local/share/dictare/versions/; Homebrew also provides the signed launcher source used by dictare setup.

Linux or direct install

curl -fsSL https://raw.githubusercontent.com/dragfly/dictare/main/install.sh | bash

Upgrades and rollback are managed by Dictare, not by Homebrew:

dictare upgrade
dictare rollback
dictare repair

Clean reinstall on macOS:

dictare uninstall
brew uninstall dictare
brew install dictare
dictare setup

Permissions

macOS — grant when prompted:

  1. Microphone — prompted on first launch
  2. Input Monitoring — System Settings → Privacy & Security → enable Dictare
  3. Accessibility — needed for keyboard mode (typing into other apps)

After granting all three: dictare repair

Linux — two steps:

  1. Input group (hotkey, X11 + Wayland): sudo usermod -aG input $USER — log out/in
  2. ydotool (keyboard mode on Wayland): sudo apt install ydotool

Quick Start

dictare agent freddie       # starts the default profile (OpenAI Codex)

That's it. The service starts automatically. Speak — your agent receives the transcription.

If you prefer a different coding agent:

dictare agent ozzy --profile codex      # OpenAI Codex
dictare agent gilmour --profile gemini  # Google Gemini CLI
dictare agent bowie --profile aider     # Aider

How It Works

  Microphone
      │
      ▼
  STT Module       Whisper (MLX / CTranslate2) or Parakeet (ONNX)
      │             all local, zero cold-start
      ▼
  Pipeline         submit detection, mute control, agent switching
      │
      ▼
  OpenVIP          HTTP / SSE — open protocol
      │
      ▼
  Agent            receives transcription, no window focus needed

The engine runs as a background service (launchd on macOS, systemd on Linux). STT models are preloaded at startup. Each agent connects in its own terminal.

Agent Profiles

Profiles are predefined in ~/.config/dictare/config.toml:

[agent_profiles]
default = "codex"
live_dangerously = false

[agent_profiles.claude]
command = ["claude", "--max-turns", "10000"]
continue_args = ["-c"]
live_dangerously_args = ["--dangerously-skip-permissions"]
description = "Claude"

[agent_profiles.codex]
command = ["codex"]
continue_args = ["resume", "--last"]
live_dangerously_args = ["--dangerously-bypass-approvals-and-sandbox"]
description = "OpenAI Codex"

[agent_profiles.gemini]
command = ["gemini"]
continue_args = ["--resume", "latest"]
live_dangerously_args = ["--yolo"]
description = "Google Gemini"

[agent_profiles.aider]
command = ["aider"]
description = "Aider (AI pair programming)"

[agent_profiles.pi]
command = ["pi"]
continue_args = ["-c"]
description = "Pi"

Then connect:

dictare agent freddie                      # default profile (codex)
dictare agent ozzy --profile claude        # use claude profile
dictare agent -- claude --model opus       # explicit command override

Voice Commands

Say Action
"ok, submit" / "ok, send" / "ok, invia" / "ja, senden" Submit to agent (Enter)
"ok, mute" / "ok, hold on" Mute (stop listening)
"ok, listen" / "ok, listen up" Unmute (resume listening)
"agent coding" / "agent review" Switch active agent

Submit triggers are multilingual (en, de, es, it, fr) and fully configurable.

Hotkey Cheat Sheet

Default hotkey: Right ⌘ (macOS) / Scroll Lock (Linux).

Gesture Action
Single tap Toggle listening on/off
Double tap Submit (send Enter to agent)
Right Alt + hotkey Switch mode: agents ↔ keyboard

Service Management

dictare upgrade             # Install latest runtime and switch atomically
dictare rollback            # Switch back to the previous runtime
dictare repair              # Repair runtime/service/launcher integration
dictare uninstall           # Move runtime/service state aside for clean reinstall
dictare service install     # Install + enable (auto-starts at login)
dictare service start       # Start the service
dictare service stop        # Stop the service
dictare service restart     # Restart the service and wait for engine readiness
dictare service status      # Show service and engine status
dictare service logs        # View recent logs
dictare service uninstall   # Remove the service

Keyboard Mode

No agent? Use dictare as a dictation tool — voice to keystrokes in any app.

dictare config set output.mode keyboard

Hotkey to toggle listening (configurable):

  • macOS: Right ⌘ by default
  • Linux: Scroll Lock by default
dictare config set hotkey.key KEY_RIGHTALT   # change hotkey

Text-to-Speech

dictare speak "Hello world"
dictare speak --engine piper "Hello"
echo "Hello" | dictare speak

Engines: espeak, say (macOS), piper, kokoro

Configuration

dictare config edit           # Open config in editor
dictare config list           # Show all settings
dictare config get stt.model
dictare config set stt.language it

Full configuration reference at dictare.io/docs/configuration.

Development

git clone https://github.com/dragfly/dictare && cd dictare

# macOS Apple Silicon (MLX GPU acceleration)
uv sync --python 3.11 --extra mlx

# macOS Intel / Linux
uv sync --python 3.11

# Run engine in foreground
uv run --python 3.11 dictare serve

# Tests
uv run --python 3.11 pytest tests/ -x

# Tests (parallel)
uv run --python 3.11 pytest tests/ -x -n auto

Ghostty users: add keybind = shift+enter=text:\n to config. See TERMINAL_COMPATIBILITY.md.

Protocol

dictare is the reference implementation of OpenVIP — an open protocol for voice input to AI agents. Any tool can implement the SSE endpoint and receive voice transcriptions from dictare.

Legacy Homebrew Installs

If you installed Dictare before 0.5.0 with the old Homebrew-owned runtime, clean that install first:

curl -fsSL https://raw.githubusercontent.com/dragfly/dictare/main/scripts/uninstall.sh | bash

Then install with either supported entry point.

Homebrew-guided macOS install:

brew tap dragfly/tap
brew install dictare
dictare setup

Direct installer:

curl -fsSL https://raw.githubusercontent.com/dragfly/dictare/main/install.sh | bash

Both paths end in the same Dictare-owned runtime store. Your config and models are preserved in ~/.config/dictare/ and ~/.local/share/dictare/.

License

MIT

Metadata

Release files for dictare 0.6.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dictare 0.6.2
File Size Uploaded
dictare-0.6.2.tar.gz 2.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dictare 0.6.2
File Interpreter ABI Platform
dictare-0.6.2-py3-none-any.whl Python 3 none any Details

Total release size: 4.1 MB

Release files / dictare-0.6.2.tar.gz

Download URL dictare-0.6.2.tar.gz
Size 2.2 MB
Tags Source
SHA-256 checksum
How to use checksums
b321b44189a8e0da8cce42a87f508ef9ba8be2a3468640f282742cec5be2a021
BLAKE2b-256 checksum
How to use checksums
8058e2d66ac046d6f2c66c7738732f0f7e85881e5aa7e59ad51f54821dfacf53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.

Transparency log

Release files / dictare-0.6.2-py3-none-any.whl

Download URL dictare-0.6.2-py3-none-any.whl
Size 1.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
93ae8880504ee70f6243b5bafeed0032a2b6915d8767e3efd1d402444bed7bdf
BLAKE2b-256 checksum
How to use checksums
1e7033e898d2972767555040cecba4fd8e7607f5ee595cdbc4a16ec2ae1d5810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.2 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page