Hermes Action Gate
Hermes-side enforcement hook for Action Gate, dev only.
What this plugin does
Hermes Action Gate is the Hermes-side enforcement hook for the Action Gate project. The plugin hooks pre_gateway_dispatch, pre_tool_call, and should_suppress_runtime_noise, applies the per-scope policy the openclaw-action-gate plugin also enforces, and writes a parallel audit record. The hard-egress wrapper artifacts are still landing; this entry is Draft/dev until they do.
h-mascot/agent-action-gate (plugins/hermes-action-gate)
Supported platforms
- Hermes
Hermes plugin hooks plus hard-egress wrapper artifacts around send paths.
Prerequisites
- Hermes 1.6+ (isolated/dev) Runtime
The plugin targets the isolated/dev Hermes surface; production Hermes is not in scope for this entry.
- Python 3.11+ Dependency
The plugin is a Python package; install with a venv for isolation.
- Hard-egress wrapper artifacts Review
Until the wrapper patches land, this plugin reports hook load but does not actually wrap direct send paths.
Install
One-shot install into a host plugins/ directory, then the auto installer registers the plugin with the running runtime.
git clone --depth=1 https://github.com/h-mascot/agent-action-gate.git /tmp/agent-action-gate && cp -R /tmp/agent-action-gate/plugins/hermes-action-gate ~/.hermes/plugins/hermes-action-gate && (cd ~/.hermes/plugins/hermes-action-gate && python3 -m venv .venv && .venv/bin/pip install -e .) && hermes plugins enable action-gate - Step 1 Clone the canonical Action Gate source
Fetch the agent-action-gate repo into a scratch directory on the Hermes host.
git clone --depth=1 https://github.com/h-mascot/agent-action-gate.git /tmp/agent-action-gate - Step 2 Stage the Hermes plugin
Copy plugins/hermes-action-gate into the Hermes plugins directory.
cp -R /tmp/agent-action-gate/plugins/hermes-action-gate ~/.hermes/plugins/hermes-action-gate - Step 3 Install the Python package
venv + pip install -e . for the local package install.
cd ~/.hermes/plugins/hermes-action-gate && python3 -m venv .venv && .venv/bin/pip install -e . - Step 4 Enable the plugin
hermes plugins enable action-gate registers the hooks and reads the action-gate.json policy.
hermes plugins enable action-gate
Verification
Configuration is what you wanted. Enforcement is what happened. The verify script is the receipt.
ssh enterprise@100.104.229.62 "action-gate verify --scope shared-room --non-owner ada" - Check 1 Hermes plugin loaded with required hooks
hermes plugins list must include action-gate, and inspect must show all three hooks.
hermes plugins list | grep action-gateExpected:
action-gate enforce ~/.hermes/plugins/action-gate - Check 2 Non-owner send is denied on the Hermes side
A second agent identity attempting to publish into the protected scope via Hermes must be denied with reason non_owner.
ssh enterprise@100.104.229.62 "action-gate verify --scope shared-room --non-owner ada"Expected:
decision=deny reason=non_owner audit=recorded
Uninstall / rollback
Disable the plugin with the running runtime first, then remove the staged plugin directory. The audit store stays so you can prove the rollout happened.
hermes plugins disable action-gate && rm -rf ~/.hermes/plugins/hermes-action-gate Status
Draft/dev. The plugin hook surface is in place, but the hard-egress wrapper artifacts around the Hermes send paths are still landing. Until they do, this plugin reports hook load but does not actually wrap direct send paths. Treat this entry as documentation of the eventual contract, not as an installable enforcement target.
- Isolated/dev Hermes only; production Hermes is not in scope.
- Hard-egress wrapper artifacts are still landing; do not claim enforcement from this entry alone.
- Companion to openclaw-action-gate; the two runtimes must agree on the same scope policy for the gate to be real.