by razzant
Local-first multi-harness control plane for Claude Code, Codex, Cursor, and OpenCode: quota-aware rotation across multiple Claude/Codex subscriptions, shared thread context, and cross-model review.
# Add to your Claude Code skills
git clone https://github.com/razzant/claudexorGuides for using ai agents skills like claudexor.
Last scanned: 7/22/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-07-22T06:27:20.552Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}Claudexor is a local-first control plane for the AI coding agents you already pay for. It runs Codex CLI, Claude Code, Cursor CLI, OpenCode, and raw API adapters behind one typed interface: a chat of turns where read-only questions resume the vendor's own native session, write turns land as inspectable patches, races pit harnesses against each other with cross-family review, and every claim — cost, quota, web evidence, auth route — is a typed fact you can audit, never a vibe.
Compared to driving a bare Codex or Claude Code session, Claudexor adds the
layer the vendors do not ship: best-of-N races with independent reviewers and
arbitration; honest budget/quota accounting (unknown cost is never $0);
deterministic gates and protected paths; and — since 2.1 — credential
profiles: several Claude/Codex subscriptions registered side by side, each
with its own isolated login and live subscription-quota tracking, with an
opt-in policy that rotates a spent account out of the way on typed vendor
limits only. Everything runs on your machine, files are the source of truth,
and there is no telemetry.
Current status: v3.0. See "Stability at 2.0" below for what is a stable contract and what remains experimental; retired verbs and mode ids hard-error with the new spelling instead of silently aliasing.
If you use Claudexor — or you are an agent whose human does — a star is the one-click way to say it works.


corepack enable pnpm)codex, claude, cursor-agent, or
opencode — OR a provider API key (adapters accept OPENAI_API_KEY,
ANTHROPIC_API_KEY, ... as fallbacks; the raw-API route needs only a key).
Log in through Claudexor, not the bare vendor CLI — see
Install And LoginCLI + daemon from npm (installs the claudexor and claudexord bins):
npm install -g claudexor
claudexor doctor
You can also build from source — see Quickstart below.
On a Mac, the app is the easiest way in — it ships as a signed and notarized DMG, so it installs like any ordinary Mac app, with no Gatekeeper warnings:
Claudexor-<version>.dmg from
Releases.Claudexor.app into Applications.
The app is self-contained: it bundles its own daemon runtime and starts it on launch; installing the CLI is only needed for terminal use. (The v1.0.0 DMG was unsigned — if you kept it, either upgrade or approve it via System Settings → Privacy & Security → Open Anyway.)
claudexor-runtime-<version>.tar.gz
closure (the bundled daemon, setup-login runner, Browser MCP, and native
process-identity helper — everything except Node) plus a runtime-manifest.json
describing it. On foreground and from the bottom-left update chip / Check for
Updates, the app reads that manifest and, if a newer runtime is offered,
surfaces "Update available → vX.Y.Z" — an informational chip that links to the
GitHub release for a manual download. 3.0 ships this update CHECK only;
one-click in-app auto-install of the engine runtime in place (no new DMG)
arrives in 3.1. Node stays app-owned, so a Node bump ships a new signed DMG
regardless. There is no background update timer; the check runs only when you
open the app or click Check for Updates. The manifest's minAppVersion floor
means an app that is too old is told to update the app itself rather than
offered an incompatible engine.npm install -g claudexor@latest. claudexor release check reports whether a
newer engine runtime is published (npm users update via npm).pnpm install --frozen-lockfile
pnpm build
# Run the CLI from the repo (or add an alias/PATH entry for it):
node packages/cli/dist/cli.js doctor
alias claudexor="node $(pwd)/packages/cli/dist/cli.js"
claudexor ask "2+2?"
claudexor ask "google the latest release notes" --web auto
claudexor ask --deep-scan "map this repo's auth and run storage"
claudexor agent "fix the failing auth refresh test" --harness codex
claudexor best-of "fix add() and keep the patch minimal" --harness codex,claude --n 2
claudexor inspect <run_id>
claudexor follow <run_id> # live event tail of a daemon run; answers questions in the TTY
claudexor apply <run_id> --dry-run
claudexor doctor
claudexor secrets list
claudexor daemon start
apply --dry-run checks final/patch.diff with git apply --check and does
not mutate the repo. Unknown flags and invalid --access/--web/--effort
values fail loudly with exit code 2 — a typo never silently runs with defaults.
When deterministic gates protect existing test/package surfaces and the task is
explicitly test-authoring work, use --allow-protected-path <glob[,glob...]> to
record typed per-run approval for those protected gate/test path changes. This
does not bypass built-in critical/security human gates.
Two power knobs shape review:
--reviewers a
comma-separated list of harness=model:effort entries (model and effort are
optional); repeat a harness to review through several models. Example:
--reviewers "claude=claude-opus-4-8:max,cursor=gemini-3.1-pro". Omitted, the
engine chooses a cross-family panel automatically.TaskContract.constraints.protected_paths) as path globs, e.g.
migrations/** or **/*.env. A run that changes a matching path escalates to
a human-approval gate and is never auto-applied.Canonical mode ids (engine strategies are FLAGS, not modes):
ask - read-only answer/explanation route. --deep-scan widens it into
the bounded multi-scout research sweep with synthesis (per-scout findings,
omissions, follow-up questions). Also the macOS composer's no-project
fallback intent (Agent is the default on a project thread).plan - read-only planning; the plan lifecycle surfaces typed open questions
and Implement freezes the plan as a content-hashed contract. Solo is the
default; --council (optionally --n 2..4) drafts plans across N harnesses in
parallel, then the primary merges them into ONE unified plan whose open
questions reach you as a single set (see below).agent - default claudexor agent route. Strategy flags: --n N (best-of-N
race with isolated candidates, review, synthesis, arbitration),
--attempts N (repair loop with a hard cap), --until-clean (repair loop
until gates/review converge, budget/quota exhausts, cancellation happens, or
the run stalls), --create (create-from-scratch intent), --delegate (the
delegation belt — see below).agent --delegate)--delegate (agent-only) injects a SCOPED Claudexor MCP belt into the harness
sandbox so the harness itself decides when to spawn bounded, isolated sub-runs
(the industry pattern: Claude Code's Task tool, Cursor subagents, Codex spawn).
The belt exposes only claudexor_ask / claudexor_plan / claudexor_run
(isolated sub-run) / claudexor_best_of / claudexor_run_status /
claudexor_run_result — there is NO apply/decision/thread/settings tool, so the
PARENT integrates results in its own workspace. Policy is enforced server-side
at the tool boundary: nesting depth is 1 (a sub-run cannot itself delegate),
sub-runs are capped per parent (default 8), and each sub-run draws from the
parent budget ledger's headroom. Only harnesses whose adapter declares
`ca
claudexor is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by razzant. Local-first multi-harness control plane for Claude Code, Codex, Cursor, and OpenCode: quota-aware rotation across multiple Claude/Codex subscriptions, shared thread context, and cross-model review. It has 167 GitHub stars.
Yes. claudexor passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/razzant/claudexor" and add it to your Claude Code skills directory (see the Installation section above).
claudexor is primarily written in TypeScript. It is open-source under razzant on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh claudexor against similar tools.
No comments yet. Be the first to share your thoughts!