raxit
CLI

Overview

The raxit CLI verb family at a glance.

raxit is a single binary with three verb families: a Terraform-shaped policy loop (scan → generate → tune → preview → apply), execution commands that actually run or serve a governed agent, and observation/lifecycle commands for inspecting decisions and managing the workspace.

Default workflow

This is the exact banner printed by a bare raxit (or raxit --help):

raxit governs AI agent tool calls with generated Cedar policy.

Start with the default workflow (Terraform for agent permissions):
  raxit init                        # scan -> generate .raxit/security.yaml
  $EDITOR .raxit/security.yaml      # tune the generated rules
  raxit plan                        # preview the decision changes
  raxit apply                       # make them live (validate -> tests -> enforce)
  raxit report --audit .raxit/var/dev-audit.jsonl --out .raxit/var/compliance-report.html

Five commands take a fresh repo to a governed, evidenced agent: init scans your code and writes .raxit/security.yaml; you edit that file by hand; plan shows the decision-level diff before anything changes; apply validates, runs the policy's own tests, and pushes the result live; report turns the audit trail into compliance evidence.

Verb families

FamilyCommandsPurpose
Policy loop (Terraform-shaped)init, plan, apply, test, validate, add, rollbackscan, preview, and commit changes to security.yaml
Executionrun, dev, serveactually run or host a governed agent
Observationexplain, audit, approvals, statusinspect decisions, the audit chain, and pending defers
Lifecycledemo, uninstall, agent, keys, schematry it without a project, tear it down, manage agent identities and keys

Each page in this section covers one command (or a closely related pair, like dev/serve or test/validate).

Experimental subcommands

The binary also ships mcp-proxy, http-proxy, a2a-gateway, and ext-authz — alternate interception tiers alongside the SDK shim. They're present and runnable, but experimental and unannounced: no stability contract, no dedicated docs yet. See Limitations for what's known to work and what isn't.

Two version axes

Two independent version strings show up across these docs — don't conflate them:

  • SDK package version — the raxit package on PyPI/npm (e.g. raxit==0.0.4). This is what pip install raxit / npm install @raxitlabs/raxit pins.
  • Engine version — the Go binary's own build string, shown by raxit version / raxit version --json:
$ raxit version
raxit v0.0.4-0.20260717003701-2ce01ad59caf+dirty

$ raxit version --json
{"engine":"raxit","module":"github.com/raxitlabs/runtime-security-core","version":"v0.0.4-0.20260717003701-2ce01ad59caf+dirty"}

The engine version is a go build VCS stamp (commit + dirty flag), not the package version — they change on independent release cadences. Commands and behaviors described in this section (plan, apply, .mjs scanning, deny.principal_mismatch, the approvals token file) are all included in the published raxit v0.0.4 package; where a described behavior is genuinely ahead of the last publish, the page says so with a callout.

On this page