№ 0542GitHub
herdr-muse lifecycle hooks
A Herdr integration that uses Muse Code lifecycle hooks to show muse panes as working, idle or blocked (approval needed) in Herdr's sidebar, with no Herdr fork.
This uses Herdr's documented
custom integration path: Muse lifecycle
hooks report state over the local Herdr socket with source custom:muse.
Install
One command (Herdr 0.8+):
herdr plugin install akshat12/herdr-muse
then run the Install Muse hooks action. Or without the plugin system:
git clone https://github.com/akshat12/herdr-muse && cd herdr-muse && ./install.sh
Requirements: herdr and python3 on PATH, an existing~/.config/muse/ (run muse once first). Start a new muse session
after installing — hooks load at session startup.
Compatibility: tested on macOS (Apple Silicon) with Herdr 0.8.2 and
Muse 1.0.2. Linux is declared inherdr-plugin.tomland the code is
portable (bash + python3), but it has not been verified there yet —
reports welcome (see Contributing).
Uninstall anytime: run the Uninstall Muse hooks action, or./uninstall.sh (removes only Herdr-owned hook entries and the reporter).
How it works
install.sh copies hooks/herdr-muse.py to ~/.config/muse/hooks/ and
registers it for six Muse events (SessionStart, UserPromptSubmit,PreToolUse, PermissionRequest, Stop, SessionEnd). On each event the
reporter:
- Finds its Herdr pane by matching its own process ancestry against
herdr pane process-info(shell PID first, foreground PIDs second,
realpath-compared cwd as fallback) — Muse hooks run with a cleared
environment, soHERDR_PANE_IDis unavai





