hermes-bsd/website/docs/user-guide
Peter Fontana 3988c3c245 feat: shell hooks — wire shell scripts as Hermes hook callbacks
Users can declare shell scripts in config.yaml under a hooks: block that
fire on plugin-hook events (pre_tool_call, post_tool_call, pre_llm_call,
subagent_stop, etc). Scripts receive JSON on stdin, can return JSON on
stdout to block tool calls or inject context pre-LLM.

Key design:
- Registers closures on existing PluginManager._hooks dict — zero changes
  to invoke_hook() call sites
- subprocess.run(shell=False) via shlex.split — no shell injection
- First-use consent per (event, command) pair, persisted to allowlist JSON
- Bypass via --accept-hooks, HERMES_ACCEPT_HOOKS=1, or hooks_auto_accept
- hermes hooks list/test/revoke/doctor CLI subcommands
- Adds subagent_stop hook event fired after delegate_task children exit
- Claude Code compatible response shapes accepted

Cherry-picked from PR #13143 by @pefontana.
2026-04-20 20:53:51 -07:00
..
features feat: shell hooks — wire shell scripts as Hermes hook callbacks 2026-04-20 20:53:51 -07:00
messaging fix(telegram): actionable error for DM topics when Topics mode not enabled (#13162) 2026-04-20 12:29:22 -07:00
skills
_category_.json
checkpoints-and-rollback.md
cli.md docs(tui): rename "Ink TUI" to just "TUI" throughout user-facing surfaces 2026-04-16 19:38:21 -05:00
configuration.md fix(config): add stale timeout settings 2026-04-20 00:52:50 -07:00
docker.md
git-worktrees.md
profiles.md docs: clarify profiles vs workspaces 2026-04-19 02:00:46 -07:00
security.md
sessions.md
tui.md docs: repoint tui.md skin reference to features/skins.md 2026-04-19 20:39:49 -07:00