Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.6.2 instead.

dictare icon

DICTAre

Voice layer for AI coding agents.

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

MIT License Python 3.11 CI

dictare.io · OpenVIP Protocol


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:

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

Linux:

pip install dictare

Quick Start

# 1. Install as system service (auto-starts at login)
dictare service install

# 2. Connect your agent
dictare agent myproject --type coding

The service starts automatically. Speak — your agent receives the transcription.

How It Works

  Microphone
      │
      ▼
  STT Module       Whisper (MLX / CTranslate2) or Parakeet (ONNX)
      │             all local, zero cold-start
      ▼
  Pipeline         submit detection, agent switching, language filter
      │
      ▼
  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 Templates

Define agent types in ~/.config/dictare/config.toml:

[agent_types.coding]
command = ["claude"]
description = "AI coding assistant"

[agent_types.review]
command = ["aider", "--model", "claude-sonnet-4-6"]
description = "Code review"

[agent_types.writing]
command = ["claude", "--model", "claude-opus-4-6"]
description = "Writing and documentation"

Then connect using --type:

dictare agent myproject --type coding     # session "myproject", type "coding"
dictare agent frontend --type review      # session "frontend", type "review"
dictare agent -- claude --model opus      # explicit command override

Voice Commands

Say Action
"ok, submit" / "ok, send" / "ok, invia" / "ja, senden" Submit to agent (Enter)
"agent coding" / "agent review" Switch active agent type

Submit triggers are multilingual (en, it, es, de, 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)
Long press (≥0.8s) Switch mode: agents ↔ keyboard

Service Management

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
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

Requirements

  • Python 3.11
  • macOS or Linux

macOS: Grant Input Monitoring permission when prompted during dictare service install. System Settings → Privacy & Security → Input Monitoring → enable Dictare.

Linux: Join input group: sudo usermod -aG input $USER (log out/in).

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.

Roadmap

  • Plugin architecture: pipeline filters loadable as plugins, each declaring its model dependencies (STT, TTS, LLM, Vision).
  • Realtime partial transcription: stream partial results while speaking using a fast small model.
  • Cloud relay (Phase 2): E2E encrypted relay connecting web clients to local engines.

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.

License

MIT

Metadata

Release files for dictare 0.1.140rc1

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.1.140rc1
File Size Uploaded
dictare-0.1.140rc1.tar.gz 2.1 MB Details

Built distribution (wheel)

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

Total release size: 4.0 MB

Release files / dictare-0.1.140rc1.tar.gz

Download URL dictare-0.1.140rc1.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
6a05f514d8e9d4fc823f954aadd569b461475ac7d167e9295a237b3d88de6be5
BLAKE2b-256 checksum
How to use checksums
f5dd039e3a833e0a393c6f100fbabd8e413e16eeede1c6aebf1cb7485ce99b16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 9, 2026.

Transparency log

Release files / dictare-0.1.140rc1-py3-none-any.whl

Download URL dictare-0.1.140rc1-py3-none-any.whl
Size 1.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
8fb5ff7ec4f711bb4ad3fa8021470c1d3653766bd8a683ea765abe5776e5d41a
BLAKE2b-256 checksum
How to use checksums
8f7e789aa5383e196483336680466342ea64bc00befcc7a9dc2bb9836425a5ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 9, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.2

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

This release

0.1.140rc1 This release

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