horchd is a native multi-wakeword detection daemon written in Rust. It loads
N user-defined ONNX classifiers in parallel, listens to the system microphone,
and broadcasts a typed D-Bus signal the moment any wakeword fires. The audio
thread runs once, the two universal preprocessing models load once, and adding
the N-th wakeword costs one classifier evaluation per 80 ms input frame.
These docs cover the daemon, the horchctl CLI, the configuration schema, the
D-Bus contract, and ready-to-paste subscriber snippets in Bash, Python, and
Rust.
Where to start
- Install — source install, AUR, or one-liner
cargo install. Two ort variants (bundled vs dynamic) for the binary footprint trade-off. - Quickstart — register your first wakeword and verify the daemon fires.
- Configuration — TOML schema, defaults,
and how
horchctl … --saveedits the file in place without dropping comments. - D-Bus API — methods, signals, signatures,
busctlexamples — the canonical contract.
Subscribe from your stack
| Language | Recipe |
|---|---|
| Bash | gdbus monitor snippet |
| Python | dbus-next and jeepney |
| Rust | zbus + horchd-client |
License
Dual MIT OR Apache-2.0 — the standard Rust ecosystem dual-license. Either
is yours to choose. Source-first on
Codeberg; the
GitHub repository is a read-only mirror.