agent-bench
Benchmark AI coding agents against each other on the same task.
Run the same coding task across Claude Code, Codex CLI, Gemini CLI, Aider, OpenClaw, and more — then compare cost, speed, token usage, code quality, and test pass rate.
Why?
No existing tool lets regular devs compare AI coding agents head-to-head on their codebase. Terminal-Bench is academic. This is practical.
Install
pip install agent-bench
Quick Start
# Create config
agent-bench init
# Edit .agent-bench.yaml with your task and agents
# Run all configured agents
agent-bench run
# Run specific agents
agent-bench run --agent claude-code,codex-cli
# Override the task
agent-bench run --task "Add error handling to all API calls"
# View results
agent-bench results
# JSON output
agent-bench results --json
# View history
agent-bench history
# Check which agents are installed
agent-bench agents
Example Output
╭─────────────────── Agent Benchmark Results ────────────────────╮
│ Task: "Add pagination to users endpoint" │
│ Run: 2026-04-07 00:15 │
├──────────┬──────────┬───────┬──────────┬────────┬──────────────┤
│ Agent │ Time │ Cost │ Tokens │ Tests │ Quality │
├──────────┼──────────┼──────────┼────────┼────────┼──────────────┤
│ Claude │ 2m 14s │ $0.42 │ 18.2K │ 8/8 ✅ │ A (92/100) │
│ Codex │ 1m 47s │ $0.31 │ 14.1K │ 8/8 ✅ │ A- (88/100) │
│ Gemini │ 3m 02s │ $0.18 │ 22.3K │ 7/8 ⚠️ │ B+ (81/100) │
│ Aider │ 4m 15s │ $0.55 │ 31.0K │ 6/8 ❌ │ B (75/100) │
╰──────────┴──────────┴───────┴──────────┴────────┴──────────────╯
Winner: Claude Code (A — best quality)
Fastest: Codex CLI (1m 47s)
Cheapest: Gemini CLI ($0.18)
Configuration
.agent-bench.yaml:
agents:
claude-code:
command: claude
args: ["--dangerously-skip-permissions"]
codex-cli:
command: codex
args: ["--full-auto"]
aider:
command: aider
args: ["--yes-always"]
default-task: "Refactor this file to use type hints throughout"
scoring:
run-tests: true
lint: true
timeout: 300
Quality Score
| Component | Weight |
|---|---|
| Test pass rate | 40% |
| Lint clean | 20% |
| Code diff sensibility | 15% |
| Task completion | 15% |
| Speed bonus | 10% |
How It Works
- Copies your project to an isolated temp directory per agent
- Runs each agent as a subprocess with the task prompt
- Captures stdout/stderr, exit code, duration
- Parses token usage from output
- Runs tests and linter if configured
- Calculates cost from token usage + model pricing
- Scores quality across multiple dimensions
- Stores results in SQLite for history
- Cleans up temp directories
Supported Agents
Any CLI-based coding agent: Claude Code, Codex CLI, Gemini CLI, Aider, OpenClaw, Hermes, OpenCode, and more. If it runs in a terminal, it works.
License
MIT © Hiren Thakore
Metadata
Release files for cli-agent-bench 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cli_agent_bench-0.2.1.tar.gz | 26.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cli_agent_bench-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.6 kB
Release files / cli_agent_bench-0.2.1.tar.gz
| Download URL | cli_agent_bench-0.2.1.tar.gz |
|---|---|
| Size | 26.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3598a861b13cf31cd40b934aeba6190594d261b151b5ea1ea75164f1f2a8e739
|
|
BLAKE2b-256 checksum How to use checksums |
546219176fa46558753d3cf762610562a05ba27a5d01913d4fac08ceb4e92911
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / cli_agent_bench-0.2.1-py3-none-any.whl
| Download URL | cli_agent_bench-0.2.1-py3-none-any.whl |
|---|---|
| Size | 21.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ccd60e48bcd3a75691c74499f0dd0873f200d6e784658c943d56bc492ab1517d
|
|
BLAKE2b-256 checksum How to use checksums |
82c0d1f306633b8596814050dc6482ebfdb8848c4d7a98f299656bc0bd45b4d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|