Let agents do real work, within limits you can prove.
Give an AI agent a budget, a set of tools and a deadline. It can hand parts of the job to other agents, and every service along the way checks the limits for itself before it acts. Aroha is the open protocol that makes this work, across companies and across vendors.
Four questions, answered for every action
- Who is acting?
- A person or an agent, each with a key it controls. An Aroha identifier commits to its own key, so checking a signature needs no lookup.
- What were they allowed to do?
- A signed mandate: how much, on what, with which tools, until when. It can only narrow as it is passed from agent to agent.
- Can it be stopped?
- The person can revoke a mandate, and verifiers check for revocation before they act. The Aroha runtime adds a stop switch.
- What actually happened?
- Allowed and refused actions can each be signed as a receipt that someone outside your company can verify later.
Coming soon
Bring your limits to the assistants people already use.
ChatGPT and dots
OpenAI
Claude and Duet
Anthropic
Muse
Meta
Each of these assistants can add tools through a remote MCP connector, and Aroha's connector is already published. It gives every person their own key, asks before anything sensitive, and turns each yes into a signed limit that the next service can check. Testing with each assistant comes next.
Start from what you already run
- A
Wrap an MCP server
Anyone using MCP tools in an assistant
A config change, no code
- B
Verify mandates in a handler
Teams whose API or tool server agents call
About 10 lines
- C
Issue and present a mandate
Agents acting on a person's behalf
About 15 lines
- D
Run the Aroha runtime
A person's own assistant, on their machine
Not yet released
Path A, in full: put a firewall in front of an MCP server
Deletes are refused, merges and pushes wait for a person to approve, and after 50 calls in a session every further call is refused.
npx -y @aroha-sdk/mcp-guard \
--block "*delete*,*remove*" \
--gate "merge_*,push_*,create_*" \
--limit "*:50" \
-- npx -y @modelcontextprotocol/server-githubWorks with the stack you have
- Protocols
- MCP (2026-07-28 revision), A2A 1.0, OpenTelemetry
- Frameworks
- LangChain, LangGraph, CrewAI, AutoGen, Google ADK, OpenAI Agents SDK, Composio
- Assistants
- Claude Code, Claude Desktop, Cursor, Windsurf, Cline, Zed, and any stdio MCP client
- Models
- Any. The protocol never calls a model.
Shipped today
- TypeScript, on npm
- 32 packagesRelease 2.0.0, October 19, 2026
- Python, on PyPI
- aroha 2.1.0Beta, with bridges for LangChain, CrewAI, AutoGen and more
- Checking a two-link chain
- 3.6 msMedian on a laptop, no network calls. Indicative until re-run on controlled hardware.
- Open source
- Apache-2.0The protocol, the SDKs and the specification
Next: Go and Java releases, an independent security review, and the assistant connectors above.
Latest
- Aroha 2.0Mandate tokens that carry their whole signed chain, one call that enforces spending limits on a plain HTTP API, rotatable identities, and a remote MCP connector. Published on npm and PyPI under Apache-2.0.
- Your agent's permission logic lives in 2,267 filesOne safety rule, traced through a production agent harness, turned up in 2,267 files. Two honest answers: better maps of the scatter, or moving the rule somewhere the scatter cannot reach.
- Your AI agent's tools need a firewallAn assistant's GitHub server exposes delete_repository, and only the model's judgement stands in the way. mcp-guard wraps any MCP server with block rules, approval gates and session limits.
Add Aroha to an agent this afternoon.
npm install @aroha-sdk/core @aroha-sdk/credentialspip install "aroha>=2"