Skip to content

Install

codeArbiter ships four sibling plugins from one marketplace. Three are governance hosts: ca (Claude Code), ca-codex (Codex), and ca-pi (Pi). The fourth, ca-sandbox, is an infrastructure plugin unrelated to gate enforcement (see ca-sandbox). This page covers Claude Code and Codex install; Pi has its own dedicated walkthrough at Install for Pi (a different distribution model: Git-only, no npm release). All three governance hosts enforce the same .codearbiter/ project store. The Claude Code + Codex evidence defines the verified boundary, and Compatibility has the full host-differences matrix.

Confirm both before installing:

  • Python 3 on PATH: every shared enforcement hook is pure Python. The failure posture is host-specific: Claude Code can leave an unresolved hook inactive, Codex reports a loud handler failure, and Pi blocks mutating calls with an interpreter breadcrumb. None of those states is active governance. Verify before installation with:

    macOS / Linux:

    Terminal window
    python3 --version || python --version

    Windows PowerShell:

    Terminal window
    if (Get-Command python -ErrorAction SilentlyContinue) { python --version } elseif (Get-Command python3 -ErrorAction SilentlyContinue) { python3 --version } else { throw "Python 3 was not found on PATH" }

    Either interpreter name is sufficient. Host registration is not identical: Claude Code carries interpreter-compatibility commands in hooks.json, Codex has OS-specific command and commandWindows entries, and Pi validates the interpreter before its bridge admits mutations.

  • git config user.email set: overrides and ADRs are attributed to this identity. Verify with:

    Terminal window
    git config user.email

    If that prints nothing, set one with git config --global user.email "you@example.com" (or --local for just this repo) before installing.

codeArbiter self-hosts a multi-plugin marketplace from its GitHub repo. In any Claude Code session, run both commands:

/plugin marketplace add arbiterForge/codeArbiter
/plugin install ca@codearbiter

Whether the hooks fire at all is governed by Claude Code’s own plugin trust flow: the standard prompt you see when installing any plugin that registers hooks. Approve it once at install time (no separate per-hook approval step, unlike Codex’s /hooks review) and hooks, commands, and agents load automatically from then on. All commands resolve under the /ca: namespace.

Verify the install succeeded before moving on. Run /plugin list (or /plugin) and confirm ca appears as installed from the codearbiter marketplace; then verify enforcement itself with /ca:doctor once the target repository is opted in (step 2 below).

The public commands are available now and were verified against release v2.8.13 with ca-codex 0.2.4:

codex plugin marketplace add arbiterForge/codeArbiter
codex plugin add ca-codex@codearbiter

To develop against an unpublished checkout, clone this repository, run codex plugin marketplace add . from its root, then run codex plugin add ca-codex@codearbiter. Open /hooks, trust the handlers, and start a fresh thread. Verify an opted-in repository with $ca-doctor.

Pi is a third governance host, ca-pi, distributed Git-only (no npm release) with its own version line and prerequisites. The complete adapter is a Feature Forge preview: it is available and welcomed for real use, with broader testing still required before stable status or a claim of 100% validation. It is not covered here; see Install for Pi for the full flow, including mechanical tag discovery, an exact pinned ca-pi-v<version> install, and the project-trust step Pi requires before it activates.

Installing a plugin enforces nothing. In the target repository, run /ca:init in Claude Code or $ca-init in Codex:

/ca:init
$ca-init

The init command scaffolds .codearbiter/ at the repo root, routes to the right context populator, and writes the arbiter: enabled activation flag. Neither host needs the other plugin installed to use existing project state. See Opt a Repository In for the full walkthrough.

Once the flag is present, the next session opens with the orchestrator active.

The Enforcement & Security page covers which gates are blocking versus advisory and how the fail-loud posture works.

claude plugin update (and its Codex equivalent) can no-op on an unchanged marketplace version string, leaving a stale cached payload behind even when you expect a new one. The clean path is uninstall, then reinstall:

claude plugin uninstall ca
/plugin marketplace add arbiterForge/codeArbiter
/plugin install ca@codearbiter

(Substitute codex plugin remove ca-codex@codearbiter / codex plugin add ca-codex@codearbiter for Codex.) .codearbiter/ in every repository is untouched by either uninstall or reinstall: only the plugin payload moves. /ca:doctor reports the currently cached version so you can confirm the update actually landed; see its remediation ladder if it still looks stale. Pi updates differently. See Uninstall, Upgrade, and Version Pinning.