commit 21f92d59929b93ecfbaba98b020465929c672148
parent b8282cab4a1d246263fbcb6b4475ae7f82e01515
Author: Matthew Gantenbein <ganten1998@gmail.com>
Date: Mon, 1 Jun 2026 15:31:39 -0500
docs: README reflects full feature set + complete keymap
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat:
| M | README.md | | | 34 | +++++++++++++++++++++++++--------- |
1 file changed, 25 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
@@ -21,13 +21,25 @@ theme, swappable.
The daemon runs as a per-user **LaunchAgent** (GUI session — required for tap TCC consent).
Clients talk to it over `~/Library/Application Support/hydra/hydrad.sock`.
-## Status
-
-Working: per-app audio **capture → monitor** (verified on real hardware), **combine**
-multiple apps into one route, live gain/mute, peak meters, route **persistence** across
-restarts, a `query` subcommand + SketchyBar widget, and a buildable+signed virtual-audio
-**driver** that makes "Hydra" selectable as an input in other apps. See `TESTING.md` for
-what's verified vs. what needs your one-time approval.
+## Status — a working, self-healing Loopback replacement
+
+Features (all verified on real hardware unless noted):
+- **Per-app capture → virtual mic** — route any app's audio into "Hydra" (2ch / 44.1 kHz,
+ stereo-confirmed) so other apps (Discord/Vesktop, Zoom, OBS) pick it as an input.
+- **Monitor** — or route to your speakers/interface to hear it.
+- **Combine** — `c` mixes several apps into one route (shared gain); `C` starts each as a
+ **separate route** to the same device for independent per-source volume/mute/record.
+- **Presets** — `P` save the whole routing setup, `p` recall it in one keystroke.
+- **Record any route to WAV** — `R` → `~/Music/Hydra/`.
+- **Rename the device** — `n`.
+- **dB-scaled meters** with peak-hold; **SketchyBar widget**; `hydra query` subcommand.
+- **Self-healing** — a supervisor rebuilds routes after a coreaudiod restart / driver
+ reinstall, and the LaunchAgent (RunAtLoad + KeepAlive) survives crashes and reboots.
+ Set a route once; it stays up. (The live coreaudiod-rebuild path is proven by unit test +
+ no-thrash run; its full end-to-end confirmation is the next real driver reinstall.)
+
+See `TESTING.md` for the verified-vs-user-gated breakdown and `diagnostics/` for the
+audio-debugging toolkit.
## Install
@@ -48,8 +60,12 @@ cargo run -p hydra # terminal 2: the TUI
cargo test # unit tests
```
-TUI keys: `↑↓` select · `⏎` monitor · `␣` mark · `c` combine · `o` output · `a` all apps ·
-`⇥` switch pane · `m` mute · `+/-` gain · `d` stop · `q` quit.
+TUI keys:
+- **Apps pane:** `↑↓` select · `⏎` monitor selected · `␣` mark · `c` mix marked into one
+ route · `C` separate route each · `o` cycle output · `a` show all apps · `n` rename device ·
+ `p` presets · `P` save preset
+- **Routes pane** (`⇥` to switch): `↑↓` select · `m` mute · `+/-` gain · `R` record · `d` stop
+- **Always:** `r` refresh · `q` quit
Swap the theme: copy `themes/navi.toml` to `~/Library/Application Support/hydra/theme.toml`.