№ 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.
<h1 align="center"> <img src="assets/logo.svg" alt="herdr-muse logo" height="48" valign="middle"> herdr-muse </h1> <p align="center"> <a href="https://github.com/akshat12/herdr-muse/blob/main/LICENSE"><img src="https://img.shields.io/github/license/akshat12/herdr-muse" alt="License: MIT"></a> <a href="https://herdr.dev/docs/install/"><img src="https://img.shields.io/badge/herdr-%3E%3D0.8-blue" alt="Requires Herdr 0.8+"></a> <img src="https://img.shields.io/badge/tested-macos-lightgrey" alt="Tested on macOS"> </p> <p align="center"> Native-feeling <a href="https://herdr.dev">Herdr</a> support for <a href="https://dev.meta.ai/docs/muse-code">Muse Code</a> (<code>muse</code>).<br> Herdr shows your <code>muse</code> panes as <code>working</code>, <code>idle</code>, or <code>blocked</code> (approval needed) instead of <code>unknown</code>. </p> This uses Herdr's documented [custom integration](https://herdr.dev/docs/integrations/) path: Muse lifecycle hooks report state over the local Herdr socket with source `custom:muse`. ## Install One command (Herdr 0.8+): ```bash herdr plugin install akshat12/herdr-muse ``` then run the **Install Muse hooks** action. Or without the plugin system: ```bash 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 in `herdr-plugin.toml` and 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: 1. 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, so `HERDR_PANE_ID` is unavai



ChatForm
Tgmlabs