Custodian Hermes Guard
The enforcement adapter under Talaria.
Hermes Guard sits in the Hermes Agent tool loop. Before a tool runs, it checks the proposed action through Custodian's policy pipeline. After the tool returns, it inspects the result before Hermes sees it.
It follows the same kernel policy and operator contract as Custodian Codex Guard; only host-specific integration features differ.
That gives Hermes a mechanical boundary for forbidden files, tools, prompt injection, secret leakage, personal data, spending patterns, and operator-approved actions. These checks live below the model. Remembering the rule is not part of the security design.
Hermes Guard or Talaria?
Use Hermes Guard when you want the smallest standalone enforcement adapter. Use Talaria when you want the complete Hermes experience: policy authoring, dashboard, denial history, credential broker, session capsules, and governed skill execution.
Talaria depends on Hermes Guard. Hermes Guard does not depend on Talaria. There is one canonical enforcement runtime, not two implementations that can drift apart.
Install
Version 0.1.0 is available as a GitHub release.
Install from PyPI:
pipx install custodian-hermes-guard
custodian-hermes setup
custodian-hermes doctor
custodian-hermes status
custodian-hermes-guard is an equivalent long-form command. On PEP 668 Linux
systems, use pipx or a virtual environment rather than modifying the system
Python.
The two hooks
pre_tool_call evaluates the tool name and arguments. A denial becomes a hard
Hermes block.
transform_tool_result inspects returned text. It can redact sensitive
content or suppress an unsafe result before the model receives it.
If the kernel, policy, or plugin cannot initialize, the pre-tool hook blocks the call. An installation failure must not become unrestricted execution.
Exact approvals
Protected mode creates an authenticated approval for the exact action. Approvals are:
- single-use;
- time-bounded;
- tied to the arguments, workspace, requester, and policy version;
- consumed only by the matching follow-up action.
Hermes Guard waits for the operator decision and resumes the original call when approved. Repeated identical attempts reuse the same live request instead of filling the dashboard with duplicates.
Policy
Hermes Guard reads ~/.talaria/policy.yaml:
version: "1"
operator:
mode: protected
approval_wait_seconds: 300
tools:
forbid: [stripe-payout]
paths:
forbid: ["~/.ssh", "~/.aws", "~/.gnupg"]
forbid_globs: ["*.env", "*.pem", "id_rsa"]
privacy:
redact: [email, phone, ssn, card]
Kernel self-protection, prompt-injection detection, and secret-leak protection remain mandatory. Policy can narrow authority but cannot switch off those boundaries.
Release status
The 0.1.0 release has passed source, filtered-package, clean-wheel, Linux, and Windows qualification. macOS qualification remains pending. No PyPI publication has occurred.
Custodian is alpha software and has not received a third-party security audit. Read SECURITY.md before relying on it for consequential work.
Links
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file custodian_hermes_guard-0.1.0.tar.gz.
File metadata
- Download URL: custodian_hermes_guard-0.1.0.tar.gz
- Upload date:
- Size: 23.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ec461f2d2216c959d910a25381279f8a4417efa399d78daa2f71f63e31e5769
|
|
| MD5 |
4ff414de45337e584d5b31095efb9511
|
|
| BLAKE2b-256 |
79871384b178216cdfdc1343aa0e8f843987b6866b555000a31ab8344948f94a
|
File details
Details for the file custodian_hermes_guard-0.1.0-py3-none-any.whl.
File metadata
- Download URL: custodian_hermes_guard-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2bd037d6cd483126e852f41c690ba17bd8690bb6dc6e10ca2cc87d63e21b2d1
|
|
| MD5 |
621c51bbc94da29df4192397b3ff48c4
|
|
| BLAKE2b-256 |
01edb39b57ebbc8775ff435f43b7e35249993b6d513bf67ba2c74ecd8170ddd8
|