Installation

Prerequisites

  • macOS: Homebrew
  • Linux: a Debian/Ubuntu-based system (other distros: install from source)

Everything else (Python 3.11, dependencies) is installed automatically.

macOS

Install

brew install dragfly/tap/dictare

This:

  1. Installs Dictare and all dependencies via Homebrew
  2. Downloads the signed hotkey launcher (~/Applications/Dictare.app)
  3. Registers a launchd service (dev.dragfly.dictare)
  4. Downloads the STT model on first run

Permissions

Dictare needs three permissions on macOS:

  1. Microphone — prompted automatically on first launch. Grant it.
  2. Input Monitoring — after granting microphone, macOS opens Privacy & Security > Input Monitoring. You'll see Dictare listed but disabled. Enable it, enter your password, then restart the service:
dictare service restart
  1. Accessibility — needed for keyboard mode (typing into other apps). Grant it in System Settings > Privacy & Security > Accessibility.

Hotkey

The default hotkey on macOS is Right Command (KEY_RIGHTMETA).

  • Single press: enable/disable microphone
  • Double-tap: submit transcription
  • Right Alt + hotkey: toggle mode (agents/keyboard)

Service Management

dictare service start     # Start the background engine
dictare service stop      # Stop it
dictare service restart   # Restart after config changes
dictare service status    # Check if running
dictare service logs      # View service logs

The service plist lives at ~/Library/LaunchAgents/dev.dragfly.dictare.plist.

Linux

Install

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

Permissions

Dictare needs two things on Linux:

  1. Input group — required for the global hotkey (evdev, works on both X11 and Wayland):
sudo usermod -aG input $USER

Log out and back in for the group change to take effect.

  1. ydotool — required for keyboard mode on Wayland:
sudo apt install ydotool

Hotkey

The default hotkey on Linux is Scroll Lock (KEY_SCROLLLOCK).

Service Management

The install script creates a systemd user service:

systemctl --user start dictare
systemctl --user stop dictare
systemctl --user restart dictare
systemctl --user status dictare
journalctl --user -u dictare -f

Or use the Dictare CLI:

dictare service start
dictare service stop
dictare service status

Development Setup

To run from source without installing:

git clone https://github.com/dragfly/dictare
cd dictare
uv run --python 3.11 dictare service start

All CLI commands work with the uv run --python 3.11 prefix during development.

Uninstall

macOS

dictare service uninstall

This stops the service, removes the launchd plist, and unlinks the Homebrew formula.

Linux

dictare service uninstall

This stops and disables the systemd service.