Troubleshooting¶
Service Won't Start¶
Check the service status and logs:
dictare service status
dictare logs --last 50
Common causes:
- Port already in use: Another process is using port 8770. Check with
lsof -i :8770and stop the conflicting process. - Missing STT model: Run
dictare models downloadto fetch the model. - Python version mismatch: Dictare uses Python 3.11 (installed automatically by Homebrew on macOS or the install script on Linux). If you installed from source, ensure you use
uv run --python 3.11.
STT Running on CPU Instead of MLX (macOS)¶
If dictare status shows large-v3-turbo on cpu instead of on mlx on Apple Silicon:
-
Check which binary is being used: run
which dictare. It should show/opt/homebrew/bin/dictare. If it shows a path containing.pyenvor.local/bin, a stale binary is shadowing the Homebrew one. -
Fix: remove the stale binary and rehash:
rm $(which dictare) # remove the stale binary
pyenv rehash # if using pyenv
- Reinstall the service (so launchd picks up the correct binary):
dictare service uninstall
dictare service install
- Verify:
dictare statusshould now showon mlx.
Hotkey Not Working¶
macOS¶
- Input Monitoring permission: Go to System Settings > Privacy & Security > Input Monitoring. Ensure
Dictare.appis listed and enabled. - If Input Monitoring doesn't work: Select
Dictare.appin the list, click the minus (−) button at the bottom left to remove it, then click plus (+) to re-add it. Browse to~/Applications/Dictare.app. macOS will ask you to "Quit & Relaunch" — accept it, then restart the service:dictare service restart. - Right Cmd key: The default hotkey is Right Command. Make sure you're pressing the right one.
Linux¶
- Input group: On Wayland, your user must be in the
inputgroup:bash groups $USER | grep input sudo usermod -aG input $USER # Log out and back in - Scroll Lock key: The default hotkey is Scroll Lock. Not all keyboards have this key; remap in config:
toml [hotkey] key = "KEY_CAPSLOCK" # or another key
Keyboard Mode Not Working¶
If Dictare transcribes your voice but nothing is typed into the focused window, you're missing the Accessibility permission.
Go to System Settings > Privacy & Security > Accessibility. Ensure Dictare.app is listed and enabled. This permission is required for keyboard mode to inject keystrokes into other applications.
No Audio Input¶
# Check audio devices
dictare setup
- Verify the correct input device is selected in
config.tomlor the web dashboard - Test your microphone with another app first
- Check system audio settings (input volume, mute state)
macOS¶
- Microphone permission: Go to System Settings > Privacy & Security > Microphone. Ensure
Dictare.appis listed and enabled. - If using an external microphone, ensure it's selected as the system input device
- Check System Settings > Sound > Input
Linux¶
- Check PulseAudio/PipeWire:
bash pactl list sources short - Ensure the user has audio group access
Transcription Quality Issues¶
- Try a different model: Switch between
large-v3-turbo,large-v3, andparakeet-v3to find what works best for your accent and language. - Set the language: Instead of
"auto", set an explicit language hint:toml [stt] language = "en" - Add hotwords (FasterWhisper on Linux/Intel Mac only): Technical terms and names that are often misrecognized. Not supported by MLX Whisper or Parakeet.
toml [stt.advanced] hotwords = "pytest, FastAPI, OpenVIP, Dictare" - Reduce background noise: Move closer to the microphone, use a headset, or reduce ambient noise
- Check silence threshold: If transcriptions are cut off, increase the silence threshold:
toml [audio] silence_ms = 1200 # Default is 850, increase if transcriptions are cut off
Agent Not Receiving Input¶
- Check the service is running:
dictare status - Check the agent is connected: The status output shows connected agents
- Check focus: The active terminal must have focus, or use the claim key (
Ctrl+\) - Check output mode: Ensure
mode = "agents"in config:toml [output] mode = "agents"
Web Dashboard Not Loading¶
The dashboard runs at http://localhost:8770/ui. If it's not loading:
- Check the service is running:
dictare service status - Check the port isn't blocked:
curl http://localhost:8770/openvip/status - Check server config:
toml [server] host = "127.0.0.1" port = 8770
TTS Not Working¶
# List available engines
dictare speak --list-engines
# Test with the simplest engine
dictare speak "test" --engine espeak
- macOS: The
sayengine should work out of the box - Linux: Install
espeak-ngfor theespeakengine - Kokoro/Piper: Requires model download via
dictare models - No audio output: Check your output device in config and system audio settings
High CPU Usage¶
- Large models on CPU: Switch to a smaller model or enable hardware acceleration: ```toml [stt] model = "small" # Instead of large-v3 hw_accel = true
[stt.advanced]
device = "auto"
compute_type = "int8" # Lower precision, faster
``
- **TTS engine**: Kokoro and outetts use more CPU thanespeakorsay`
Logs¶
View logs for debugging:
# Follow live logs
dictare logs -f
# Last 100 lines
dictare logs --last 100
# Filter by component
dictare logs --name pipeline
dictare logs --name stt
# TTS-specific logs
dictare logs --tts
# Raw format (no formatting)
dictare logs --raw
Reset Configuration¶
If your config is broken, move it aside and start fresh:
mv ~/.config/dictare/config.toml ~/.config/dictare/config.toml.bak
dictare setup
Getting Help¶
- GitHub Issues — bug reports and feature requests
- GitHub Discussions — questions and community