Open-source governance and hard gates for AI coding agents across Claude Code, Codex CLI, and Pi.
codeArbiter is a repository-owned governance layer for tests, reviews, security checks, decisions,
and durable project context. You decide. codeArbiter enforces.








Start learning
·
Install
·
Browse the reference
Install it globally. It stays dormant until a repository explicitly opts in.
Agentic coding, with a record
codeArbiter is for teams and power users who let coding agents do consequential work and need more
than “the model said it passed.” Every request enters a named lane. The lane defines the evidence it
must produce, the reviewers it must dispatch, and the conditions that stop it.
This repository contains four sibling plugins:
ca for Claude Code, ca-codex for Codex CLI, and ca-pi for Pi are the three governance hosts.
ca-sandbox is the isolated local-Codespace infrastructure plugin.
The three governance hosts are generated from one shared surface and use one checked-in
.codearbiter/ project store. A repository can move between hosts without losing its specs, plans,
ADRs, tasks, decisions, or audit history.
codeArbiter will not:
- write feature code before the required failing test exists;
- commit on a red suite or outside the commit gate;
- resolve a
[CONFIRM-NN] question by guessing;
- silently reconcile a conflict between the rules, the docs, and the code; or
- push directly to the default branch or merge without the user.
The gates scale to the work. A prose edit takes the small docs lane. A security-sensitive feature
takes the full spec, test-first, review, and PR path.
The Codex path was live-verified on Codex CLI 0.144.1 with trusted SessionStart injection and a
real [H-03] PreToolUse block. The dated
Claude Code + Codex evidence
separates continuously verified packaging from the live checks that require a model-backed turn.
See it catch something
The landing page includes a
faithful replay of a shipped hook invocation.
It invokes the real pre-bash.py guard, records the source digest, proves the blocked command never
ran, and preserves the exact stderr and audit effect. It does not pretend that a direct hook replay
proves host discovery or trust.
The operating loop looks like this:
you /ca:fix the statusline keeps running the old version after an update
arbiter route to the regression-test-first fix lane
failing test -> minimal fix -> focused proof -> full verification
you /ca:commit
arbiter permission -> branch -> tests -> behavioral proof -> diff review
selective stage -> commit
you /ca:pr
arbiter reviewer fleet challenges the exact diff
BLOCK findings are resolved before the draft PR can advance
The user owns the decision. The repository keeps the evidence.
Get running
Choose the adapter for the coding host you already use. The
host chooser covers
stability, command syntax, trust, and platform differences.
| Host | Adapter | Command form | Status |
|---|
| Claude Code | ca | /ca:feature | Stable |
| Codex CLI | ca-codex | $ca-feature | Stable |
| Pi | ca-pi | /ca-feature | Feature Forge preview |
Prerequisites: Python 3 on PATH and git config user.email set. ADR lifecycle proof requires
Git 2.45.0+ with --no-lazy-fetch on all three governance hosts; unavailable flag support blocks
verification with an upgrade prerequisite, never an implicit fetch fallback. Pi also requires Node.js
22.19+. If Python is missing, Pi installs its final wrappers but blocks mutating calls and points to
/ca-doctor; Claude Code and Codex surface an interpreter breadcrumb instead of silently claiming
governance is active. The compatibility matrix
defines the supported native Git/runtime and linked-worktree boundary; mixed Windows Git and WSL Git
over one shared repository are not supported.
Claude Code
/plugin marketplace add arbiterForge/codeArbiter
/plugin install ca@codearbiter
Approve the normal plugin trust prompt, open the target repository, and continue with
/ca:init.
Codex CLI
The public GitHub-slug flow is available now.
The current adapter version is read from plugins/ca-codex/.codex-plugin/plugin.json.
The dated end-to-end public-install record discovered ca-codex 0.2.4 from release v2.8.13.
Current packaging and shared-core parity are continuously verified, while that historical record
stays labeled rather than being promoted to evidence for a newer adapter:
codex plugin marketplace add arbiterForge/codeArbiter --ref ca-codex-marketplace
codex plugin add ca-codex@codearbiter
The ca-codex-marketplace branch is the promoted catalog. Its entry pins an
immutable ca-codex-dist-v<version> Git tag holding the exact qualified release
archive, including the native artifact engine; main remains the development
source tree and is not a substitute for the promoted binary-bearing
distribution. (An @arbiterforge/ca-codex npm channel is planned but deferred,
ADR-0040.)
If codearbiter was previously registered without
--ref ca-codex-marketplace, marketplace upgrade keeps that default-branch
registration and does not migrate it to the promoted binary-bearing channel. Remove and
re-add the marketplace once, then reinstall the plugin:
codex plugin remove ca-codex@codearbiter
codex plugin marketplace remove codearbiter
codex plugin marketplace add arbiterForge/codeArbiter --ref ca-codex-marketplace
codex plugin add ca-codex@codearbiter
Open /hooks, review and trust the ca-codex handlers, then start a fresh task. Run $ca-init and
$ca-doctor.
For development against an unpublished checkout:
git clone https://github.com/arbiterForge/codeArbiter
cd codeArbiter
codex plugin marketplace add .
codex plugin add ca-codex@codearbiter
Pi
Note
ca-pi is a Feature Forge preview. It is available for real use now, and you are welcome to
install it, use it in repositories, and report what you find. Its automated and hosted promotion
matrix is green; broader real-world evidence is still required before codeArbiter claims
100% validation or stable status.
The quickest install is the npm channel: pi install npm:@arbiterforge/ca-pi (ADR-0029). For the
reproducible pinned install, list the independently versioned tags, choose one exact result, then
inspect the installed package, grant project trust, and start a fresh session:
git ls-remote --tags --refs https://github.com/arbiterForge/codeArbiter.git "ca-pi-v*"
pi install git:github.com/arbiterForge/codeArbiter@ca-pi-v<version>
pi list
pi config
Replace <version> with the numeric suffix from the chosen tag while retaining the full
ca-pi-v... tag in the install source. The Git-tag install carries no native artifact engine, so
it is a partial install that cannot author typed HTML specs and plans; use the npm channel for
that.
Pi 1.1.0 is the supported host for this release line. Generated aliases use /ca-*;
/skill:ca-* is the host-native fallback. Every ca-pi-v* tag is also published to npm as
npm:@arbiterforge/ca-pi with provenance (ADR-0029); the pinned Git tag remains the reproducible
install. The Pi runbook covers isolated install, trust, verification,
shared-state continuity, and uninstall.
Protect the first repository
Use a disposable Git repository for the first run. Add at least one meaningful source file, then
invoke the host-native forms below:
| Outcome | Claude Code | Codex CLI | Pi |
|---|
| Scaffold project state | /ca:init | $ca-init | /ca-init |
| Prove enforcement | /ca:doctor | $ca-doctor | /ca-doctor |
| Read live state | /ca:status | $ca-status | /ca-status |
init creates .codearbiter/ and routes an existing codebase to create-context or a greenfield
project to decompose. doctor must report a healthy interpreter, current payload, and H-03
live-fire probe before you treat the repository as governed.
Follow the complete
first-repository walkthrough
for expected output, proof, and recovery.
Practice before using your own repository
Arbiter Academy is an optional practice course for
codeArbiter. It starts in a personal fork of the Academy repository, so you can make real commits,
inspect governed evidence, and recover from a failed attempt without placing your own project at risk.
The Academy website is the lesson surface. Each published lesson identifies whether an action belongs
in the browser, native terminal, active harness, or with the agent, then provides a copyable command,
the result to expect, the evidence to inspect, and a safe recovery path. Start there when you want to
learn the workflow before protecting a production repository.
The docs are the operating manual
The site is designed as a continuous path from first contact to source-backed operation:
| Need | Start here | You finish able to... |
|---|
| Understand the promise | What is codeArbiter | explain command, route, dispatch, gate, and ship |
| Choose and install a host | Start | install, trust, activate, and verify one adapter |
| Learn in order | Learning path | progress from foundation through the power-user capstone |
| Run daily work | Workflows | select and complete the smallest correct lane |
| Understand the model | Concept map | trace routing, decisions, context, review, and audit evidence |
| Diagnose a problem | Troubleshooting | follow a symptom to a deterministic recovery |
| Look up exact behavior | Reference | inspect generated commands, skills, agents, hooks, and configuration |
| Evaluate preview work | Feature Forge | opt in, verify the off switch, and understand the promotion bar |
Command, skill, agent, and hook-gate reference pages are generated from shipped source on every site
build. Hand-authored guides teach the workflow; generated pages define the exact current surface.
How governance works
flowchart LR
I["host-native command"] --> R["owning skill"]
R --> A["author or operator action"]
A --> V["tests + focused proof"]
V --> F["matched reviewer fleet"]
F --> G{"gate clear?"}
G -->|no| X["named finding or user decision"]
X --> A
G -->|yes| P["selective commit + draft PR"]