Skip to content

guiand888/herdr-vibe

v1.2.0AGPL-3.0-only

Report Mistral Vibe agent state and resume command to Herdr.

herdr-vibe

standard-readme compliant

Mistral Vibe plugin that reports agent state and resume commands to Herdr.

Companion to herdr-mistral-vibe, the Herdr plugin that starts Vibe panes. The pair makes Mistral Vibe feature-complete in Herdr: that plugin opens panes and keybindings, this one supplies sidebar state, notifications, and session restore.

Herdr has no built-in detection for Mistral Vibe. This plugin implements Herdr's agent self-reporting protocol from Vibe's hook system, so Vibe sessions get a sidebar entry, finish and decision notifications, herdr agent wait support, and same-pane session restore after a Herdr server restart — without patching either project.

Mapping of Vibe events to Herdr states:

Vibe hookHerdr report
pre_tool on ask_user_questionblocked
pre_tool on any other toolworking
post_toolworking
post_agentidle, plus the session id and vibe --resume <id> as the resume command

Reports go through $HERDR_BIN_PATH pane report-agent and are gated on HERDR_ENV=1, so the plugin is silent outside Herdr panes.

Install

Requires python3 on PATH and Herdr 0.7 or newer (0.9.2 or newer for session restore).

Vibe 2.26.1 resolves plugin hooks (ai.mistral.vibe/hooks.toml) but does not execute them yet. The installer therefore also registers the hooks as user-level entries in $VIBE_HOME/hooks.toml, which Vibe runs today:

git clone https://github.com/guiand888/herdr-vibe ~/.vibe/plugins/herdr-vibe
~/.vibe/plugins/herdr-vibe/install.sh

The installer is idempotent, preserves unrelated hooks, and copies scripts/report-herdr.py to $VIBE_HOME/herdr-vibe/ so reports keep working if the checkout moves. New sessions pick the hooks up at startup.

Uninstall:

~/.vibe/plugins/herdr-vibe/install.sh uninstall

Usage

Run vibe inside a Herdr pane. Herdr then shows the mistral-vibe agent with its state:

herdr agent list
herdr pane get "$HERDR_PANE_ID"

Known limitations:

  • Vibe exposes no turn-start hook, so working is reported from the first tool call of a turn onward. While the model generates text without calling tools, the panel keeps the previous state; a turn with no tool calls shows no working at all.
  • Tool-approval prompts are not reported as blocked; Vibe has no permission-prompt hook, so only questions (ask_user_question) do.
  • The agent appears in the panel only after the first report, which is the first tool call or the end of the first turn — not at process start.
  • Vibe has no session-exit hook, so pane release is left to Herdr's idle-shell cleanup.
  • Windows is not supported; the hooks invoke python3 through the system shell.
  • Once a Vibe release executes plugin hooks, run ./install.sh uninstall and rely on the plugin copy alone.

Maintainers

Guillaume Andre <mail@guillaumea.fr>

Contributing

Issues and pull requests welcome.

License

AGPL-3.0-only © 2026 Guillaume Andre