AgentTrust Seal
A Hermes plugin that proves a handoff was not changed.
One agent finishes a file and seals it. The next agent verifies the seal before trusting the file. If one byte changed, the seal breaks. If there is no seal, verify refuses. It never says "fine" by default.
Who it is for, and why
Agents report success all the time, and nothing checks it. When one agent hands a file to the next (research notes to a writer, a patch to a reviewer, an overnight report to the morning run), the second agent trusts whatever is sitting there.
- Who: anyone running more than one Hermes agent, a scheduled job, or a handoff between sessions or machines.
- When: at the moment work changes hands. The finishing agent seals; the receiving agent verifies before it reads.
- What you get: one of three answers (SEAL HOLDS, SEAL BROKEN, NO SEAL) and a code an agent can act on, so a changed or half-written file stops the chain instead of being built on.
- Where: in a Hermes chat or the desktop app with
/agenttrust-seal, or as theagenttrust_sealtool an agent calls by itself.
This is the first small, free piece of AgentTrust: proof for what AI agents say they did.
What it adds
- Slash command:
/agenttrust-seal seal <file> [author]and/agenttrust-seal verify <file> - Tool:
agenttrust_seal(actionsealorverify, pluspath, optionalauthor), so an agent can call it by itself
A seal is a small file next to the original: <file>.seal.json. It holds the sha256, size, author, UTC time, git commit if any, and host. The format matches the shell tool baton-seal, so either one can verify the other's seals.
Results:
| Verify says | Meaning | Code |
|---|---|---|
| SEAL HOLDS | File is unchanged since sealing | 0 |
| SEAL BROKEN | File changed after sealing | 1 |
| NO SEAL / REFUSED | No seal, no file, or unreadable seal | 2 |
Local only. No network, no keys, no background work.
Check it first (no install)
Where: a terminal on the machine with this folder.
python3 agenttrust-seal/selftest.py
You should see one line starting SELFTEST PASS. Any SELFTEST FAIL line means stop.
hermes plugins validate agenttrust-seal
You should see Validation passed.
Install
Where: a terminal on the machine that runs Hermes. When: after the check above passes. This changes your live Hermes, so do it on purpose.
- Copy the folder in:
cp -r agenttrust-seal ~/.hermes/plugins/agenttrust-seal - Turn it on (plugins are off until you opt in):
hermes plugins enable agenttrust-seal - Restart Hermes so it loads the plugin. For the gateway or dashboard, relaunch that process.
- In a Hermes chat, type
/agenttrust-sealand you should see the usage line.
Use it
/agenttrust-seal seal handoff.md alan
/agenttrust-seal verify handoff.md
Then edit handoff.md and run verify again. It says SEAL BROKEN.
Remove
hermes plugins disable agenttrust-seal
rm -r ~/.hermes/plugins/agenttrust-seal
Files
plugin.yamlmanifest (declares theagenttrust_sealtool)__init__.pyregisters the tool and the slash commandcore.pyseal and verify logic, standard library onlyselftest.pyproves hold, tamper caught, missing seal refused
Disclosure
What this plugin does on your machine, in full:
- Network calls: none.
- Credentials: none read, none stored. No environment variables required.
- Background processes: none. It runs only when the tool or the slash command is called.
- Shell commands: one. When sealing, it runs
git rev-parse --short HEADin the file's folder to record the commit, if the folder is a git checkout. If git is missing, the field is left empty. - Files written: one,
<file>.seal.json, next to the file being sealed. It holds the sha256, size, author name, UTC time, the short git commit if any, and this machine's hostname. If you share a seal file, you share that hostname. - Files read: the file you name, and its seal.
Limits
- AgentTrust Seal detects a change. It does not prevent one.
- The seal records a name, not a cryptographic signature, so it does not prove who sealed the file.
- Anyone who can rewrite both the file and its seal can make a new seal that holds.
Tested on
Hermes Agent 0.22.2 (Linux) and 0.22.7 (Windows). Paths with spaces work, quoted or not.
README from the reviewed commit 66003a3; it updates when the author re-pins.

Syrup-Labs-AI