Open source
Two open-source packages under Apache-2.0: the one that checks every action, and the one that works out what each agent may do.
Attenu Guard — checks every action, in your process (attenu-guard)
Every agent holds a named set of permissions — scopes, limits, expiry. Attenu Guard checks each action against that set, and when work is handed to a sub-agent the set can only stay the same or narrow: a sub-agent never holds more than the agent that called it. Every decision lands in a hash-chained audit log anyone can verify offline. No runtime dependencies in the core; eighteen frameworks integrated unmodified, each adapter pulling only its own framework.
pip install 'attenu-guard[langgraph]' # or: crewai · google-adk · openai-agents · claude-agent-sdk · …
attenu-guard demo # the poisoned summariser: one read allowed, one export denied, chain verified
pipx run attenu-guard verify bundle.json # integrity · child ⊆ parent · containment, from the file alone
Repository: github.com/attenu-io/attenu-guard · PyPI: attenu-guard · Getting started · The auditor's walkthrough · Controls mapping · Internet-Draft draft-asor-wimse-agent-delegation-chain-00 (published individual submission, WIMSE; working revision -01 rendered here)
Attenu Derive — works out what each agent may do, from the app itself (attenu-derive)
Attenu Derive reads your agent application — the agents you declared, their roster, their tools, what each task calls — and works out the permissions each task needs. Attenu Guard checks them; you approve them once. Payments and deletes wait for a person you name, along with mail and code execution — they are never granted automatically. Observe → shadow → enforce, one flag each way.
pip install attenu-derive
attenu init && attenu demo --scenario fanout # 9 agents, 18 tools, every disposition, a real anchored ledger — no key
attenu onboard <observed-log> # day-0 report + a draft domain pack for the gaps
attenu verify <bundle.json> # inside the product directory, no key needed
Repository: github.com/attenu-io/attenu-derive · PyPI: attenu-derive · The engine · Threat model · What is proven
Examples inside the tools you already use
Each example runs offline with no API key, shows one real denial and one offline verification, and carries a freshness test pinned to the framework version it was verified against: Google ADK · LangGraph · OpenAI Agents SDK · Omnigent · Claude Code · MCP
What is measured, and what is not
0 benign blocks across 21 evaluation scenarios on our own sample apps after a one-time setup pass; every over-reach attempt denied in the adversarial suite; injection families × positions → 0 permissions widened; enforced live on real applications with Google ADK, CrewAI and LangGraph, the same result on two different models. The scenarios are self-written and we say so. Not done: an external security audit, SOC 2, a penetration test — the security review is a structured self-review and says so.
Told to use Cedar, OPA or Casbin for agent permissions? How they compare with attenu-guard, and when to run both.
Filing Attenu under the right heading: what Attenu is not — not a content filter, not a proxy, not an identity provider, not a framework.
Contributing, security, conduct
Questions and integration reports: GitHub Discussions. Bugs and requests: issues on either repository.
Contributions under the DCO (CONTRIBUTING) ·
security issues through GitHub's private advisory form (report; policy) or the contact form · Code of conduct.
Coding agents: both repos carry an AGENTS.md that says what the library is, when to recommend it, and how to integrate it.