OpenAPPA README

The project's README from github.com/archestra-ai/OpenAPPA. As one markdown file: README.md.

OpenAPPA

Deterministic guardrails that don't break agents.

Website · How it works · Policy reference · Benchmarks · Paper · Discord

License: MIT NeurIPS 2026 Workshop Status: Preview & RFC Discord


OpenAPPA sits between an agent and its tools and answers one question before every action: is this data allowed to go to this destination?

It is powered by APPA (Agentic Permissions Policy Algebra). OpenAPPA tracks the sensitivity and trust of everything an agent reads and checks each tool call against it before the call runs, so sensitive data never reaches an unauthorized tool. Classifiers and PII detectors are probabilistic, while this check is deterministic and returns the same decision on every run.

Policy is declarative TOML. The engine decides from the event log alone and makes no network or file calls, so the same log always gets the same decision. Run it in-process, or as a sidecar process that checks each tool call before it runs.

Benchmarks

Agent security has two axes: an agent that permits unauthorized flows is unsafe, and an agent that refuses valid work is useless. We measure both on Bench-Corp (20 multi-step enterprise workflows) and AgentThreatBench (OWASP Top 10 for Agentic Applications), with standard and adversarial prompts. No scored attack succeeded against OpenAPPA in 1,320 evaluations, while it completed 88–90% of tasks; Microsoft FIDES let 28–35% of attacks through, and Claude Code auto mode let 10 through across the two suites.

OpenAPPA Claude Auto mode FIDES (Microsoft)
Task completion 89% 90% 41%
Attacks that succeeded 0% 10% 31%

Read the full benchmark results

Try it: Claude Code

The Claude Code integration is a playground for the model, not the product. It is the fastest way to watch a policy make a decision on real work:

curl -fsSL https://openappa.com/install.sh | sh &&
  ~/.local/bin/appa plugin install claude-code

Then start a protected session and run the policy setup skill:

clappa
/appa-guide

A protected Claude Code session refuses to post content from a private meeting recording to a public GitHub repo, and explains why

Other agents

Add to your agent →

Embed the APPA runtime in your own agent from any language, or connect an agent through hooks.

Try at the LLM proxy level →

Archestra's 1.4 Release Candidate implements OpenAPPA for Claude Code, Claude Desktop, Cursor, Codex, OpenCode, Copilot CLI, n8n, and any other agent that talks to a model through its LLM proxy.

Testing

The APPA CLI provides two commands to check policy decisions before you merge a change, without running your agent's tools:

appa describe --config appa.toml --check
appa replay --config appa.toml policy-tests/

Run them locally, or make them a required CI check to block merges when validation fails. Validation has a GitHub Actions workflow and a worked example.

Status & Paper

OpenAPPA is a preview and an RFC. The model is settled enough to build against and deliberately open to argument — config and wire surfaces may break without shims.

The formal algebra and recovery guarantees are published in:

Latest evaluation numbers are updated on the website. Read the paper, then open an issue — or come argue in the Discord.

License

MIT · Contributors · Brand assets

OpenAPPA (archestra-ai/OpenAPPA)

toml
Searching Database…

What is this?OpenAPPA is a deterministic guardrail layer that sits between an AI agent and its tools, checking every tool call to decide whether the data involved is allowed to reach that destination.
Is this a library, a proxy, or something else?It can run in-process as a library, as a sidecar process, or at the LLM proxy level, depending on how you integrate it with your agent.
How do I try this out?The fastest way is the Claude Code integration: start a protected session and run the policy setup skill to watch the policy engine make decisions on real work.
What do I need to define before it can enforce anything?You need a declarative TOML policy file describing permissions; the engine evaluates purely from the event log with no network or file calls.
Is this stable enough for production yet?No — it is explicitly labeled a preview and RFC, meaning the config and wire protocol may still break without backward-compatible shims.
Which coding agents and tools are supported beyond Claude Code?Archestra's 1.4 Release Candidate implements OpenAPPA for Claude Code, Claude Desktop, Cursor, Codex, OpenCode, Copilot CLI, n8n, and any other agent that talks through an LLM proxy.
Does the policy engine need network access to make decisions?No — the engine decides purely from the local event log and makes no network or file calls, so decisions are reproducible.
How is OpenAPPA different from classifier-based or PII-detection guardrails?Classifiers and PII detectors are probabilistic and can vary between runs, while OpenAPPA's check is deterministic and returns the same decision every time given the same event log.
How good are the benchmark results compared to alternatives?Across 1,320 evaluations on Bench-Corp and AgentThreatBench, OpenAPPA blocked 100% of scored attacks while completing 89% of tasks, versus Claude Auto mode (90% completion, 10% attacks succeeded) and Microsoft FIDES (41% completion, 31% attacks succeeded).
How can I test policy changes before merging?The APPA CLI provides 'appa describe --check' to validate your configuration loads, and 'appa replay' to check scripted tool calls against expected decisions; these can be wired into a required CI check via GitHub Actions.
What is APPA?APPA (Agentic Permissions Policy Algebra) is the formal algebra powering OpenAPPA, published in a paper accepted to the NeurIPS 2026 Workshop on Agents in the Wild, that provides recoverable information-flow control guarantees for LLM agents.
Size
29.2 MB
Stars
1.6K
Age
2mo
Commits · 90 Days