<div align="center"
Harness
Ship code with a fleet of AI agents you can actually trust — orchestrated, policed, reviewed, and observable.
Documentation · Contributing · Security
<img src="docs/images/harness-card.png" alt="Harness repository card" width="920" /
</div
---
AI development is no longer one agent in one terminal — it is fleets of agents working in parallel across issues, branches, and repositories. The hard problems move up a level: who assigns the work, what each agent is allowed to do, who reviews the output, and what happens when a run goes wrong at 3 a.m.
Harness is a Rust-native control plane for that fleet. It wraps AI coding agents (Claude Code, Codex, Anthropic API) with structured lifecycle management, policy enforcement, and continuous feedback loops. Instead of replacing agents, it standardizes how they run, what they're allowed to do, and how their output is reviewed.
Install
Build from source (no prebuilt binaries or Homebrew formula yet):
git clone https://github.com/majiayu000/harness.git
cd harness
cargo build --release -p harness-cli
# binary at ./target/release/harnessRequires Rust 1.88+. A fresh release build also requires Bun 1.1+ because it embeds the web dashboard; if web/dist is already built, the release build can reuse it without Bun. Postgres and an API authentication token are only needed for the server / fleet features below; a GitHub token is additionally needed for GitHub integration.
Quickstart: run one agent task
Install one local coding runtime on your PATH: either codex or claude. Run Harness as an unprivileged OS user: --drop-sudo defaults to true, so harness exec rejects root and sudo environments. Only pass --drop-sudo=false when elevated execution is deliberate.
On Linux, the default workspace-write sandbox also requires harness-landlock or bwrap on PATH; install your distribution's Bubblewrap package if you do not have the Landlock helper. A host-tier danger-full-access agent with scoped permissions and an empty network allowlist requires bwrap specifically: Landlock cannot provide network-only isolation while leaving filesystem access unrestricted. Harness reports that host tier as unavailable during startup health probing and refuses matching dispatches. Other Linux sandbox combinations continue to accept either helper.
# With Codex CLI (Linux or macOS)
./target/release/harness exec --agent codex \
"Summarize the public API exposed by crates/harness-core/src/lib.rs"
# Or with Claude Code CLI on Linux
./target/release/harness exec --agent claude \
"Summarize the public API exposed by crates/harness-core/src/lib.rs"
# Claude Code on macOS cannot run under the Seatbelt workspace-write sandbox
./target/release/harness exec --agent claude --sandbox-mode danger-full-access \
"Summarize the public API exposed by crates/harness-core/src/lib.rs"Harness runs the explicitly selected coding agent against the current directory and prints the agent's final response to stdout. The default is workspace-write. The macOS Claude exception grants the agent unrestricted filesystem and process access; use it only in a trusted repository and review the resulting changes.