The Problem
Teams that rely on several AI‑coding assistants (Claude Code, Codex, OpenCode, Pi, etc.) often face a fragmented workflow. Each agent runs in its own process, stores state in disparate files, and requires manual orchestration to coordinate multi‑step tasks, schedule runs, or compare variants. Repeatedly starting and stopping agents, managing worktrees, and tracking cost become tedious.
What This Does
cezar centralises those agents in a single control plane.
- Parallel execution – every task spawns a new git worktree under
.ai/cezar/and runs each agent step in isolation. - Unified UI – a lightweight web UI (served from
packages/cezar/src/server/forge/index.ts) shows live tool calls, token usage, and cost per project. - Automation – the CLI (
packages/cezar/src/self-update/cli.ts) and server expose REST endpoints for scheduling, cancelling, or re‑running tasks. - Skills & workflows – skills are Markdown files; workflows are short YAML files that mix agents per step. The orchestrator parses those files and dispatches the agents accordingly.
How It Is Wired
Entry Point – packages/cezar/src/server/server.ts.
server.tsimportsforge/index.tsto initialise the Express router, then callsstartServer()which binds all REST routes defined inforge/handlers/*.ts.- Each handler (e.g.,
runHandler) callsrunTask()frompackages/cezar/src/runs/task.ts. runTask()creates a git worktree (packages/cezar/src/git/worktree.ts) under.ai/cezar/<task-id>, then iterates over the workflow YAML.- For each step it resolves the skill file (
packages/cezar/src/skills/loader.ts), creates an agent instance (packages/cezar/src/agents/agentFactory.ts) and invokesagent.executeStep(). agent.executeStep()performs a tool call, writes the step output to the worktree, and logs cost viapackages/cezar/src/metrics/logger.ts.- When all steps finish,
task.tswrites a final report to.ai/cezar/<task-id>/report.jsonand emits a websocket event to the UI.
Files with system‑wide effects
server.tstouches the network (listens on port 3000).worktree.tswrites to the filesystem under.ai/cezar.logger.tsrecords cost to.ai/cezar/usage.json.
The call graph is linear within each task: server -> handler -> runTask -> agentFactory -> agent.executeStep. The only cross‑module dependencies are the shared metrics and git utilities, making the core logic easy to audit.
How To Use It
Setup
git clone https://github.com/moses-y/cezar
cd cezar
npm install # or pnpm i
The top‑level package.json contains the start script.
Configuration
cp .env.example .env
# edit .env – set PORT, WORKSPACE_DIR, and any agent‑specific credentials
Agent credentials are passed via environment variables (e.g., CLAUDE_API_KEY, OPENAI_API_KEY).
Running
npm run start
# or directly
node packages/cezar/src/server/server.ts
The web UI appears at http://localhost:3000. To launch a task from the CLI:
npx cezar run workflow.yaml
(see alias-cezar-run/package.json for the cezar binary).
Real‑World Use
A data‑engineering team can create a workflow that pulls fresh data, runs a Codex script to generate a summary, then passes the output to a Claude Code agent that writes a new notebook. All steps run automatically, and the UI shows token usage per step, allowing the team to optimise cost.
Code Health & Issues
- Low / Security – Secret‑shaped paths –
packages/cezar/src/runs/run-secrets.test.tsflags hard‑coded credential patterns. - Coverage – 812 test files cover most core modules, but some agent‑specific adapters lack tests.
- CI – GitHub Actions workflow (
.github/workflows/ci.yml) runs tests and lints on every push. - Missing docs – While
docs/reference.mdcovers APIs, deployment guides for Docker are absent.
The Bottom Line
cezar offers a pragmatic, file‑based orchestration layer for multiple AI coding agents, with a clear API surface and a lightweight UI. Its linear call graph and minimal third‑party dependencies make it straightforward to audit and extend. Teams that already run agents locally and need a unified scheduler will find it useful, though they should review the hard‑coded secret checks and add missing Docker deployment scripts before production use.