Configuration¶
Dictare uses a TOML configuration file at:
~/.config/dictare/config.toml
Edit it directly, use the web dashboard at http://localhost:8770/ui, or use the CLI:
dictare config edit # Open config file in your editor
dictare config list # Show all options and current values
Audio¶
[audio]
input_device = "" # Audio input device (empty = system default)
output_device = "" # Audio output device (empty = system default)
max_duration = 60 # Max recording duration in seconds
audio_feedback = true # Enable/disable audio cues
silence_ms = 850 # Silence threshold to stop recording (ms)
headphones_mode = false # TTS won't pause listening when true
[audio.advanced]
sample_rate = 16000 # Sample rate in Hz (Whisper requires 16000)
channels = 1 # Number of audio channels
pre_buffer_ms = 640 # Audio buffered before speech detection (ms)
min_speech_ms = 150 # Minimum speech duration to process (ms)
Per-Event Sound Configuration¶
[audio.sounds.start]
enabled = true
path = "" # Custom sound file (empty = built-in)
volume = 0.3 # 0.0–1.0
focus_gated = false # Silent when terminal is focused
[audio.sounds.stop]
enabled = true
volume = 0.3
[audio.sounds.agent_announce]
enabled = true
volume = 0.3 # TTS announces agent name on switch
Speech-to-Text (STT)¶
[stt]
model = "large-v3-turbo" # Model name (see Speech Engines page)
language = "auto" # Language hint or "auto" for detection
hw_accel = true # Hardware acceleration (CUDA/MLX)
[stt.advanced]
device = "auto" # auto, cpu, cuda, mlx
compute_type = "int8" # int8 (fastest), float16, float32 (most accurate)
hotwords = "" # Comma-separated hotwords for better recognition
max_repetitions = 5 # Anti-hallucination: max consecutive repeats
Available models: parakeet-v3 (default), large-v3-turbo, large-v3.
Text-to-Speech (TTS)¶
[tts]
engine = "say" # espeak, say (macOS), piper, kokoro, outetts
language = "en" # Voice accent
voice = "" # Engine-specific speaker name
Hotkey¶
[hotkey]
key = "KEY_RIGHTMETA" # macOS: Right Cmd. Linux: KEY_SCROLLLOCK
mode_switch_modifier = "KEY_RIGHTALT" # Hold + hotkey to switch mode
Output¶
[output]
mode = "agents" # agents or keyboard
typing_delay_ms = 2 # Delay between keystrokes (keyboard mode)
auto_submit = false # Automatically submit after transcription
Client¶
[client]
url = "" # Remote server URL (empty = local)
status_bar = true # Show status bar in agent terminals
clear_on_start = false # Clear screen when agent starts
claim_key = "ctrl+\\" # Key to claim agent focus
Pipeline¶
[pipeline.mute_filter]
triggers = ["mute", "listen"]
phrases = ["OK mute", "OK listen"]
[pipeline.submit_filter]
triggers = ["send", "submit", "enter"]
confidence_threshold = 0.8
[pipeline.agent_filter]
triggers = ["agent"]
match_threshold = 0.7
Agent Profiles¶
Define custom agent presets:
[agent_profiles.claude]
command = "claude"
description = "Claude Code"
continue_args = ["--continue"]
[agent_profiles.codex]
command = "codex"
description = "OpenAI Codex CLI"
[agent_profiles.aider]
command = "aider"
description = "Aider"
See Agents for more on custom agent configuration.
Redaction¶
Replace sensitive terms in terminal output (useful for demos):
redact = [
["my-secret-project", "my-project"],
["[email protected]", "[email protected]"],
]
Stats¶
[stats]
typing_wpm = 40 # WPM baseline for time-saved calculations
Applying Changes¶
Most config changes take effect after restarting the service:
dictare service restart
The web dashboard applies changes and restarts automatically.