Agent Orchestrator is a Harness Engineering control plane for agent-first software delivery. It turns shell-native coding agents such as Claude Code, OpenCode, Codex, and Gemini CLI into governed execution units that can participate in long-running, multi-step engineering workflows through Kubernetes-style YAML manifests.
OpenAI recently described this shift as Harness Engineering: humans spend less time hand-writing code and more time designing environments, specifying intent, and building feedback loops that let agents do reliable work. This project adopts that framing directly. Instead of treating agents as isolated chat tools, it gives them a shared control plane with workflows, triggers, guard steps, secrets, observability, and recovery paths.
orchestrator (CLI) ──gRPC/UDS──> orchestratord (daemon)
├── gRPC server (tonic)
├── Embedded workers
├── SQLite persistence
└── Sandbox enforcement
# Shell script (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/c9r-io/orchestrator/main/install.sh | sh
# Homebrew
brew install c9r-io/tap/orchestrator
# Cargo
cargo install orchestrator-cli orchestratordRun these commands directly, or let your AI coding agent handle it — the CLI is designed for both.
# Start daemon
orchestratord --foreground --workers 2 &
# Initialize and run
orchestrator init
orchestrator apply -f manifest.yaml
orchestrator task create --goal "My first QA run"
orchestrator task list
orchestrator task logs <task_id>- Harness, not wrapper — The goal is not to invoke an agent once, but to define the environment, workflow, policy, and feedback loop around agent execution.
- Humans steer, agents execute — Developers specify goals, constraints, and acceptance criteria; the control plane coordinates execution.
- Repository-local system of record — YAML manifests, docs, skills, and QA artifacts become versioned workflow assets that agents can discover and follow.
- Long-running loops — The runtime is designed for plan -> implement -> test -> review -> fix cycles that can continue for hours or days, not just one-shot generations.
- CLI — Machine-parseable output (
-o json), structured error codes, no interactive prompts - Manifests — Declarative YAML, no imperative code; agents read and apply without interpretation
- Skills —
.claude/skills/provide structured execution plans that agents follow autonomously - Showcases —
docs/showcases/contain end-to-end execution plans designed for agents to read and execute - Any shell agent — Any tool that accepts a prompt and runs shell commands can be an orchestrator agent under the same control plane
Pre-configured webhook trigger packages for external platforms: orchestrator-integrations
Slack, GitHub, LINE — each with per-trigger signature verification, CEL payload filtering, and setup guides. Add new integrations via the /integration-authoring skill.
- Declarative control plane — YAML manifests with loop control, guard steps, DAG execution, and reusable resource definitions
- Agent orchestration — capability matching, health scoring, rotation, and load balancing across heterogeneous shell agents
- CEL prehooks — conditional step execution via CEL bool expressions
- Built-in policy and security — mTLS, RBAC, sandbox (macOS Seatbelt / Linux namespaces), output redaction, and secret lifecycle management
- Long-running automation — task persistence, event streams, trigger-based task creation, and guarded workflow loops
- Single binary — Rust, embedded SQLite, no external dependencies
Full documentation: docs.c9r.io (EN / ZH)
- Vision
- Quick Start
- Resource Model
- Workflow Configuration
- CEL Prehooks
- Advanced Features
- CLI Reference
- Architecture
cargo build --workspace --releaseProtobuf compiler is vendored — no manual protoc installation required.
See CONTRIBUTING.md. Feature requests and bug reports via GitHub Issues.