Design partner program is openThree partners, real decision traffic →
razoo

Documentation

Razoo documentation

Razoo is a governance kernel that sits under any agent framework. It stages every side effect, learns the calls your people make, and turns the repeats into rules that run without a model.

What Razoo is

Your agent proposes. The kernel stages, audits, and learns. Every piece of work walks a fixed ladder of resolution rungs: deterministic rules first, then a learned pattern if one has earned the right, then the model only for what is left, and a person for anything the model may not decide. Nothing executes until a person confirms it. Every decision is recorded with the rung that resolved it, the artifacts that fired, and the tokens it cost, and it can be replayed bit for bit. State is a SQLite file on a volume you own.

Two ways to run it

ShapeWhat you getStart
ApplianceThe operator console and the kernel in one Node process. A queue, decisions, patterns, connectors, and the audit trail. Clone and run locally, or build the Docker image and run it on your own infrastructure.Install then Appliance deployment
SDK@engine/sdk 0.1.0: the kernel and the govern surface as one Node 20+ ESM package, installed from a tarball into your own TypeScript product. Your domains/, your SQLite file, your UI.Install then Quickstart

The SDK is the product. The operator console is its reference implementation. Both share one kernel and one set of invariants.

Start here

The shortest possible loop

TypeScript, against the SDK
import {
  bootEngine, clockFromIso, submitWork, proposeAction, confirmAction, drainOnce,
} from "@engine/sdk";

bootEngine({ root: process.cwd() });
const ctx = clockFromIso("2026-09-03T09:00:00.000Z");

const work = await submitWork({
  work_type: "lead",
  source: "my-agent",
  subject: { intake: "hello" },
  ctx,
});
if (!work.ok) throw new Error(work.error);

const proposal = proposeAction({
  workItemId: work.work_item_id,
  actionId: "record_intake",
  ctx,
});
// proposal.status === "pending". Nothing has executed.

confirmAction(proposal.stagedId!, ctx); // a person did this
await drainOnce(ctx);                    // now it executes

The quickstart walks through each line and shows the same loop from the CLI.

What is in each section

SectionPagesCovers
StartOverview, Install, Quickstart, ConceptsInstall the kernel, run the full loop once, and learn the vocabulary the rest of the docs assume.
LearnHow authority is earned, FAQHow a human judgment becomes a rule that runs at zero tokens, and the questions people ask first.
ReferenceReference documentationThe agent folder, the SDK and CLI references, connectors, environment, deployment, operations and the security model. Ships with the software.

How these docs handle what is not built yet

These pages document the code as it exists today. Where a capability is on the launch plan but has not shipped, it is marked like this and is not presented as available:

Planned for the launch plan. Not yet shipped.

Three facts these pages rely on. Persistence is SQLite on a volume you own; there is no hosted SQL database. OIDC login gates the console; ENGINE_AUTH=local is a loopback-only alternative for a single operator's own machine. No content ever leaves your tenant; licensed installs report decision counts only, for billing, and air-gapped sites send a signed monthly usage file instead.