Operating Systems
When programs grew untrusted, the kernel was separated out. Applications stopped touching the machine directly.
Every call passes through a sidecar that decides whether it happens. Policy in, signed decision out. Open by default. Deterministic.
Quickstart → $firma run --profile claude-code claudeThe authority orchestrates the runtime. One policy file governs every agent, every call, every surface. Versioned. Source-available. Portable.
Every outbound action funnels through the sidecar. Sidecar evaluates against current policy + session state. Sub-millisecond. Deterministic.
JIT credentials are issued by a federated broker on allow. The agent never sees raw tokens. Credential exfiltration is structurally impossible.
The fastest way to put OpenFirma in the path of a real agent today. Wraps your Claude Code session under the runtime: no SDK, no code changes, no account.
This is a quickstart, not the product. The product is the runtime authority itself, the sidecar, the policy engine, the JIT credential broker, the signed audit. See the product page for the full architecture.
Every era of computing made the same move: separating authority from execution. AI is next.
For the first time, code chooses its next move based on context, not instructions. These decisions are happening at runtime, in production, against real systems, with real consequences.
When decision-making and execution collapse into the same runtime, traditional control boundaries disappear. The agent becomes its own authority. That model does not scale.
Identity systems define access. Security systems inspect traffic. Observability systems record. None of them govern execution itself.
When programs grew untrusted, the kernel was separated out. Applications stopped touching the machine directly.
When systems outgrew local logins, permissions were lifted out of the user. Identity became a separate plane of authority.
When workloads multiplied beyond hand-tending, orchestration was separated out. Workloads stopped deciding where they ran.
When software started deciding what to do next, the agent needed its authority lifted out. That is what we are building.
AI now requires a separate execution authority layer.
By construction, Firma sits in the agent's outbound path. Every modality of action funnels through enforcement, with the kernel sandbox as the floor
Every tool call is classified into an enforceable action class. Cedar evaluates the same input to the same decision, every time, no model on the hot path
Per-call enforcement evaluates before execution against current policy and accumulated session state. Catches intra-session abuse patterns invisible to session-level systems
A federated broker issues credentials per-call on ALLOW. Exfiltration is structurally impossible, even under full agent compromise
OpenFirma sits inside the agent's process and decides, per call, whether a tool call
happens: using Cedar policies you own. Capability validation runs locally on the hot path;
Sidecar evaluates the constraints; credentials are injected only on ALLOW; the
every decision emits a signed ExecutionEvent.
Watch a tool call flow through the system. The Authority issues capability tokens continuously.
Tool calls enter the Sidecar, run through capability validation then constraint enforcement.
On ALLOW, credentials are injected and the call reaches the world. Every decision
lands in the audit emitter.
stdout, or a gRPC stream. The signature makes the record tamper-evident: you can verify exactly what the agent did, when, and under which policy.The Sidecar separates capability validation from constraint enforcement on purpose. The first phase is cheap and local, fast enough to never block. The second phase is where Sidecar evaluates the call against context.
The Sidecar verifies the capability token locally: signature, integrity, and revocation status. No round-trip to the Authority, the Authority is never on the hot path.
The point of Stage 1: drop bad tokens cheaply, with low latency, fully local.
The policy engine evaluates the call against the active policy bundle, the current session budget, the requested scope, and the Context layer. The result is a deterministic ALLOW, DENY, or ABORT decision.
On ALLOW, credentials are injected. On DENY or ABORT, the call is dropped
and the audit emitter records the reason. Same input, same decision, every time.
Four ownership categories. OpenFirma ships enforcement. Operators keep the policies. The integration layer is standard. The credential flow is co-owned by construction.
file · stdout · gRPC..cedar files, operator-authored. OpenFirma ships starter policies you can fork.Standard interfaces, no bespoke integration required
ALLOW only. The agent never holds them at rest. OpenFirma defines the JIT flow; you wire it to Vault / STS / GCP / in-house.Structural credential isolation means exfiltration is impossible, even under full agent compromise.