OpenAPPA
www.openappa.com- Category
- Developer Tools
- Rank
- No. 1010Tools index
Previous survey · No. 1015 ·
- Type
- TOOL
- Use case
- Security & Identity
- GitHub
- 1.6k stars
- Latest release
- v0.42.0
- Date
About
OpenAPPA is a deterministic guardrail system from Archestra for AI agents connected to many tools, built around a policy language that is specific to the data rather than to each use case, so policies don't need updating as new agents are added. It combines this with techniques like remedy plans and a dual-LLM pattern to keep agents completing their tasks while blocking sensitive data leaks, and plugs into any agent loop via pre- and post-tool-call hooks.
What it does
OpenAPPA is a checkpoint process that sits between an AI agent and its tools. As the agent reads things, the runtime records how sensitive and how trustworthy that content is, and before each tool call runs it asks one question: may data carrying this label go to this destination? Rules live in a declarative config file. The decision engine reads only the session's recorded event log, makes no network or disk calls, and so returns the same answer on every replay. It ships as a Rust binary that hooks into Claude Code, and as a library other agent hosts can embed.
Why it's ranked here
The idea is information-flow control, an established security technique, applied to agent tool calls, with a companion paper accepted at a NeurIPS 2026 workshop. The engineering matches the ambition: MIT licensed, a Rust workspace split into separate engine, policy, runtime and adapter crates, a design that blocks every action when the checker is silent, and an installer that verifies checksums. The project's own benchmarks report zero successful attacks across 1,320 evaluations at 88 to 90 percent task completion, though those numbers come from the authors' harnesses. The README calls it a preview and an RFC whose config may break, which limits production trust for now.
What's good
Determinism is structural, not promised: the engine performs no input or output and reads no clock, so one log always yields one verdict. A policy edit opens new sessions under the new rules while running sessions keep the policy they started with. Failure is closed: a runtime that does not answer means the action is blocked. The opt-in file mode goes further than hooks can, moving reads and writes behind the runtime so a copied file inherits its source's sensitivity even though the model never sees the bytes. The installer pins one release, checks its checksum and refuses archive entries that escape their directory.
Tradeoffs
This is a preview: the README warns config and wire formats may break without compatibility shims, and the file mode is marked draft and experimental. The standalone runtime accepts only the Claude Code harness today; other agents go through embedding or Archestra's proxy. Fail-closed cuts both ways: if the background process stops, every action in a protected session is blocked, including the commands you would use to fix it. Saved integration tokens sit in plaintext at rest, guarded only by Unix file permissions. Release binaries cover Linux and macOS only, and Linux needs glibc 2.34 or newer. The headline benchmark figures are self-run.
How to use it well
It suits teams whose agents touch both private data and public outputs, such as internal documents alongside a public repository or a chat channel. Start with the Claude Code plugin to watch policies decide on real work, then write rules for your actual tools and wire the bundled replay and config-check commands into CI so policy changes are tested before merge. Start the runtime before sessions open. It does not classify content or sign in to MCP connectors on its own: sensitivity comes from the labels and annotators you declare, so the protection is exactly as good as the policy you write.
Technical notes+
Cargo.toml defines a Rust 2024 workspace (resolver 3) with crates for the engine, policy compiler, event log, package model, runtime and per-host adapters (Claude Code, Amp, kagent), denies dead_code workspace-wide, and builds the release at opt-level s except appa-engine and sha2 at opt-level 3 because the engine replays the whole trajectory before every decision. appa-engine/src/lib.rs describes the core as a function of the event log with no IO or clock: labels fold by minimum trust and intersected audience over the chain self, internal, public plus group references, and annotator answers are pinned to the call's canonical digest so replay never re-consults. appa-policy/src/lib.rs compiles the TOML dialect into the engine's RegistryConfig. appa-runtime/src/main.rs serves hooks over axum on 127.0.0.1:8787 by default, exposes health, policy-key and binary-fingerprint endpoints, and withholds session-scoped Claude Code environment variables from a runtime it starts. appa-adapter-claude-code/src/lib.rs keeps the adapter to pure parse and render translations depending only on appa-runtime-api. appa-runtime/FILE-MEDIATION.md specifies the draft file mode: a one-shot vouch keyed by tool name plus RFC 8785 arguments, pinned version, digest and Label, atomic staged replacement, and a reservation that blocks further file calls after an unclean operation. appa-runtime/Cargo.toml puts the server stack behind a daemon feature and offers PostgreSQL storage behind a postgres feature; SQLite is bundled. scripts/appa-install.sh supports Linux and macOS on x86_64 and aarch64, forces HTTPS, verifies SHA256SUMS and rejects absolute or parent-escaping archive entries. bench/README.md states Corp and AgentThreatBench are rule-scored with one LLM-judged Tau task, and that published results live in a private GCS bucket.
Observed
- License
- MIT
- Language
- Rust (edition 2024 Cargo workspace)
- Policy format
- Declarative TOML compiled into the engine registry at startup
- Interfaces
- CLI binary, embeddable Rust library, MCP server, loopback HTTP hook endpoint
- Agent hosts
- Claude Code plugin; kagent deployment preparation; Archestra LLM proxy
- Platform support
- Release binaries for Linux and macOS on x86_64 and aarch64; Windows via zip from the releases page
- Install surface
- curl installer with SHA256 verification, or cargo install from a checkout
- Storage
- Bundled SQLite event log; PostgreSQL behind a build feature
- Project status
- Preview and RFC per the README; file mediation mode marked draft
- Benchmarks in repository
- Corp, AgentThreatBench and Tau harnesses, rule-scored except one LLM-judged Tau task
Read from README.md, Cargo.toml, LICENSE.md, appa-runtime/README.md, appa-runtime/Cargo.toml, appa-runtime/FILE-MEDIATION.md, appa-runtime/src/main.rs, appa-policy/src/lib.rs, appa-engine/src/lib.rs, appa-adapter-claude-code/src/lib.rs, appa-package/src/lib.rs, marketplace/README.md, bench/README.md, scripts/appa-install.sh, Dockerfile.
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.