▸ docs

Prompt filters stop text. Agents need action control.

Hermes Shield gates what your agent does — shell commands, file writes, network calls — on your own box. This page covers the thesis, the threat model, the action-control loop, current proof coverage, and exactly what we do and don't claim.

pip install hermes-shield-scanner

then hermes-shield demo · v0.8.2 · Python 3.10+ · Linux · macOS · Windows · PyPI · GitHub

then run hermes-shield scan in your own repo

12FRAMEWORKS MAPPED
8,447ACTION SURFACES MAPPED
596REACHABLE-IN-REPO
542INSTALL-LIABILITY
▸ 01 / thesis

Thesis

Prompt-level defences filter what an agent reads; they do nothing about what an agent does. Hermes Shield sits between the model and the world, gating actions — shell commands, file writes, network calls — rather than guessing at intent from text.

We built it after our own agent was prompt-injected in production: we are customer zero.

▸ 02 / threat_model

Threat model

An agent inherits the attack surface of every framework, plugin and dependency it runs on — across 12 popular agent frameworks we mapped 0 action surfaces. These split into two distinct tiers: 0 reachable in the repo we scanned, and a further 0 install-liability you inherit from dependencies (present, not yet proven reachable).

This is the risk the industry standard names OWASP LLM06 · Excessive Agency: an agent that can take real-world actions is only as safe as the actions it is allowed to reach.

The threats that matter are actions with blast radius:

EXFILTRATION DESTRUCTIVE WRITES LATERAL MOVEMENT

Known CVEs such as CVE-2023-39662 show these are not hypothetical.

▸ 03 / action_control_model

Action-control model

The loop is Map → Trace → Prove → Block → Patch: map the agent's reachable actions, trace what it actually attempts, prove which paths are dangerous, block them at the gate, and patch the surface.

MAPTRACEPROVEBLOCKPATCH

Enforcement is local-first — Action Gates, a Threat Shield, a Kill Switch and a full Audit Trail run on your box, not ours (the Shield runtime is coming; the free scanner ships today). A default scan runs fully local and reads your code read-only — nothing is sent anywhere. The optional --ai tier uses your own local Claude CLI; that's the only mode that sends any code off your machine, and only to Anthropic's API under your own Claude account.

▸ ACTION GATE · COMINGallow · ask · block
▸ 04 / proof_coverage

Proof coverage

Current published proof, in numbers you can check:

0frameworks mappedPOPULAR AGENT STACKS
0action surfaces mappedACROSS THE 12
0reachable-in-repoTIER ONE · IN THE REPO WE SCANNED
0install-liabilityTIER TWO · INHERITED FROM DEPS

The 596 reachable-in-repo and 542 install-liability counts are two distinct tiers, not a subset of one another. Every finding on public scans is reproducible from the scan output. We publish the method alongside the numbers so you can check our work.

▸ 05 / assurances_and_limits

Assurances & limits

What we claim: reachable-surface mapping, a two-tier liability view, and an auditable trail of every decision. "Proven-live" is a rare red flag the scanner can surface on a dangerous path — a capability, never a promise that any agent is safe.

What we do not claim: that any tool makes an agent impossible to compromise, or that detection alone is enough. The scanner has been independently security-reviewed by an industry professional.

Language depth, honestly: Python is the full engine; TypeScript / JavaScript and C# are detection-only (via the [multilang] extra); everything else via the optional --semgrep comparator.

The free scanner is live and self-serve today. The paid Repairer and the Shield runtime are coming; coverage grows and we say so plainly.

▸ 06 / quick_start

One command. Runs on your box.

See your agent's blast radius in one command. The free scanner runs fully local and read-only, nothing is sent anywhere.

pip install hermes-shield-scanner

then hermes-shield demo · v0.8.2 · Python 3.10+ · Linux · macOS · Windows · PyPI · GitHub

hermes-shield — local scan
$ hermes-shield demo
$ cd your-agent-repo && hermes-shield scan
mapping action surface … default scan is local, read-only
tracing reachable paths …
report → ./shield-report/outputs/shield_customer_report.html
▸ cli reference
  • hermes-shield demo — instant canned RED / AMBER / BLUE result, no signup
  • hermes-shield scan — scan your own repo; a default scan is fully local and read-only
  • --ai — optional; uses your own local Claude CLI. This is the only mode that sends code text, and it goes to Anthropic's API under your own account
  • --semgrep — optional comparator extending coverage to other languages
  • [multilang] extra — adds TypeScript / JavaScript and C# detection-only

Scan

  • pip install hermes-shield-scanner, then hermes-shield scan
  • A default scan is fully local and read-only — nothing is sent anywhere
  • Report saved as an HTML file in your repo, ready to open

Read

  • Reachable surfaces ranked by blast radius
  • Every finding reproducible from the scan output
  • Method published alongside the numbers

Gate

  • Action Gates + Threat Shield on your box
  • Kill Switch and full Audit Trail
  • Shield runtime & Repairer — coming; join the waitlist
▸ next

Read the proof, then scan your agent's codebase.

The research report shows the method end to end. The free scanner runs it on your own repo, today.

Hermes Shield Docs — Action-Control Thesis and Threat Model