---
title: "Coding agents compared: Claude Code vs Codex CLI vs Cursor vs the rest"
slug: coding-agents
url: "https://toolweight.dev/compare/coding-agents"
question: Which AI coding agent should I use in 2026?
tools: 17
fields: 26
last_verified: 2026-01-15
freshness: 35%
verify_cadence: 14d
license: CC-BY-4.0
---

# Coding agents and harnesses, compared

> **Which AI coding agent should I use in 2026?**
>
> An agent is a model plus a harness. Six reach the same ceiling — a pull request opened for you: Claude Code, Codex CLI, opencode, Cursor, Devin and GitHub Copilot, which resolves agent identity most cleanly. opencode, Goose, Aider and Cline win on BYOK and licence; Cursor and Windsurf on ergonomics. Nothing here merges or deploys unsupervised.

## At a glance

|  |  |
| --- | --- |
| Canonical | https://toolweight.dev/compare/coding-agents |
| Tools compared | 17 |
| Fields compared | 26 |
| Last verified | 2026-01-15 (6mo ago) |
| Verify cadence | 14d |
| Freshness | 35% (mean cell confidence) |
| Killer field | stops_at |
| Scoring | Weighted, re-rankable |
| Licence | CC-BY-4.0 — https://creativecommons.org/licenses/by/4.0/ |

## Ranking — default weights

| # | Tool | Score | Coverage | One-liner |
| --- | --- | --- | --- | --- |
| 1 | [opencode](https://toolweight.dev/tools/opencode) | 84.8 | 95% | Provider-agnostic open-source TUI with a client/server split and LSP awareness. |
| 2 | [Claude Code](https://toolweight.dev/tools/claude-code) | 80.0 | 90% | Anthropic's terminal-first agent, with IDE, web and GitHub Action surfaces. |
| 3 | [Codex CLI](https://toolweight.dev/tools/codex-cli) | 76.0 | 95% | OpenAI's open-source Rust agent, with the strongest local sandboxing on this page. |
| 4 | [Goose](https://toolweight.dev/tools/goose) | 75.7 | 95% | Block's Apache-2.0 agent, MCP-native from the start, as both a CLI and a desktop app. |
| 5 | [Cursor](https://toolweight.dev/tools/cursor) | 75.5 | 90% | VS Code fork with a real codebase index, background cloud agents and a CLI. |
| 6 | [GitHub Copilot (Agent HQ)](https://toolweight.dev/tools/github-copilot) | 73.7 | 86% | Copilot's coding agent plus a control plane for running third-party agents on your repos. |
| 7 | [Kilo Code](https://toolweight.dev/tools/kilo-code) | 72.8 | 90% | Open-source VS Code agent in the Cline/Roo lineage, with an orchestrator mode and a CLI. |
| 8 | [Gemini CLI](https://toolweight.dev/tools/gemini-cli) | 72.6 | 90% | Apache-2.0 terminal agent from Google with an unusually generous free tier. |
| 9 | [Qwen Code](https://toolweight.dev/tools/qwen-code) | 66.6 | 86% | Apache-2.0 Gemini CLI fork tuned for Qwen3-Coder, with a large free daily quota. |
| 10 | [Grok Build](https://toolweight.dev/tools/grok-build) | 66.5 | 0% | xAI's coding harness, launched July 2026 — on this page but not yet verified. |
| 11 | [Cline](https://toolweight.dev/tools/cline) | 64.8 | 95% | Open-source VS Code and JetBrains agent built around an explicit plan/act split. |
| 12 | [DIY harness](https://toolweight.dev/tools/diy-harness) | 59.8 | 81% | Your own loop over a model API with an agent SDK — the build-it-yourself reference point. |
| 13 | [Zed](https://toolweight.dev/tools/zed) | 58.0 | 95% | GPL-licensed Rust editor whose agent panel can host Claude Code, Codex and Gemini CLI. |
| 14 | [Aider](https://toolweight.dev/tools/aider) | 57.0 | 95% | Minimal terminal pair-programmer with a tree-sitter repo map and automatic git commits. |
| 15 | [Windsurf](https://toolweight.dev/tools/windsurf) | 53.5 | 81% | Agentic IDE built around Cascade, now owned by Cognition after a turbulent 2025. |
| 16 | [Devin](https://toolweight.dev/tools/devin) | 48.9 | 86% | Fully delegated cloud engineer: file a task in Slack or the web app, get a PR back. |
| 17 | [Amp](https://toolweight.dev/tools/amp) | 44.2 | 86% | Sourcegraph's opinionated agent with no model picker and an ad-supported free tier. |

Re-rank against your own priorities by appending `?w=field_id:weight,…` to the canonical URL, or call `score_tools` on the MCP server at `https://toolweight.dev/mcp`.

## Comparison

### Features

| Tool | Surface | Default model | Model breadth | Repo indexing | Plan mode | Checkpoint & undo | Headless / CI | Local models |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| opencode | CLI, web | None — you choose a provider at first run | any provider / router | AST / LSP repo map | ● | ◐ | ● | ● |
| Claude Code | CLI, IDE extension, web, GitHub-native | Latest Claude Opus/Sonnet, switchable with /model | one vendor + custom endpoint | agentic grep | ● | ● | ● | ○ |
| Codex CLI | CLI, IDE extension, web, cloud delegate | Latest GPT-5 Codex model | one vendor + custom endpoint | agentic grep | ◐ | ◐ | ● | ● |
| Goose | CLI, standalone editor | None — you configure a provider on first run | any provider / router | agentic grep | ● | ○ | ● | ● |
| Cursor | standalone editor, CLI, web, cloud delegate | Cursor's in-house Composer model, with frontier models selectable | multi-vendor | embeddings index | ● | ● | ● | ○ |
| GitHub Copilot (Agent HQ) | GitHub-native, IDE extension, CLI, web, cloud delegate | Selectable across OpenAI, Anthropic and Google models | multi-vendor | hybrid index + agentic | ◐ | ◐ | ● | ◐ |
| Kilo Code | IDE extension, CLI | — | any provider / router | embeddings index | ● | ● | ◐ | ● |
| Gemini CLI | CLI, IDE extension, GitHub-native | Latest Gemini Pro | one vendor | agentic grep | ◐ | ● | ● | ○ |
| Qwen Code | CLI | Latest Qwen3-Coder model | one vendor + custom endpoint | agentic grep | ◐ | ● | ● | ● |
| Grok Build | — | — | — | — | — | — | — | — |
| Cline | IDE extension, CLI | None — you pick a provider at setup | any provider / router | agentic grep | ● | ● | ◐ | ● |
| DIY harness | CLI | Whichever you wire up | any provider / router | manual context only | ○ | ○ | ● | ● |
| Zed | standalone editor | None — configure a provider, or sign in for hosted models | any provider / router | AST / LSP repo map | ◐ | ● | ○ | ● |
| Aider | CLI | None — set by --model or environment keys | any provider / router | AST / LSP repo map | ◐ | ● | ● | ● |
| Windsurf | standalone editor, IDE extension | Windsurf's in-house SWE model, with frontier models selectable | multi-vendor | embeddings index | ● | ● | ○ | ○ |
| Devin | web, cloud delegate | Undisclosed — Cognition-hosted, including in-house SWE models | no model choice | hybrid index + agentic | ● | ○ | ◐ | ○ |
| Amp | CLI, IDE extension, web | Chosen by Amp — there is no model picker | no model choice | agentic grep | ◐ | ◐ | ● | ○ |

### Agentic

| Tool | Where it stops | MCP | Subagents | Hooks | Skills / commands | Background agents | Opens PRs |
| --- | --- | --- | --- | --- | --- | --- | --- |
| opencode | 4 | ● | ● | ◐ | ● | ◐ | ● |
| Claude Code | 4 | ● | ● | ● | ● | ● | ● |
| Codex CLI | 4 | ● | ○ | ◐ | ◐ | ● | ● |
| Goose | 3 | ● | ● | ◐ | ● | ◐ | ○ |
| Cursor | 4 | ● | ◐ | ● | ● | ● | ● |
| GitHub Copilot (Agent HQ) | 4 | ● | ◐ | — | ● | ● | ● |
| Kilo Code | 3 | ● | ● | — | ● | ○ | ○ |
| Gemini CLI | 3 | ● | ◐ | — | ● | ◐ | ◐ |
| Qwen Code | 3 | ● | — | — | ● | ○ | ○ |
| Grok Build | — | — | — | — | — | — | — |
| Cline | 3 | ● | ○ | ○ | ● | ○ | ○ |
| DIY harness | — | ◐ | ◐ | ● | ○ | ◐ | ◐ |
| Zed | 3 | ● | ○ | ○ | ◐ | ○ | ○ |
| Aider | 3 | ○ | ○ | ○ | ◐ | ○ | ○ |
| Windsurf | 3 | ● | — | — | ● | ◐ | ◐ |
| Devin | 4 | — | ○ | ○ | ◐ | ● | ● |
| Amp | 3 | ● | ● | — | ◐ | ◐ | ○ |

### Governance & control

| Tool | Permissions | BYOK | Licence |
| --- | --- | --- | --- |
| opencode | granular allowlist | ● | MIT |
| Claude Code | allowlist + OS sandbox | ● | proprietary |
| Codex CLI | allowlist + OS sandbox | ● | Apache-2.0 |
| Goose | allowlist + OS sandbox | ● | Apache-2.0 |
| Cursor | allowlist + OS sandbox | ◐ | proprietary |
| GitHub Copilot (Agent HQ) | vendor-hosted sandbox | ◐ | proprietary |
| Kilo Code | granular allowlist | ● | Apache-2.0 |
| Gemini CLI | allowlist + OS sandbox | ● | Apache-2.0 |
| Qwen Code | granular allowlist | ● | Apache-2.0 |
| Grok Build | — | — | — |
| Cline | granular allowlist | ● | Apache-2.0 |
| DIY harness | applies everything | ● | — |
| Zed | granular allowlist | ● | GPL-3.0 |
| Aider | prompts every action | ● | Apache-2.0 |
| Windsurf | granular allowlist | ◐ | proprietary |
| Devin | vendor-hosted sandbox | ○ | proprietary |
| Amp | granular allowlist | ○ | proprietary |

### Pricing

| Tool | Pricing model | Entry price (/seat/mo) | Token markup |
| --- | --- | --- | --- |
| opencode | BYOK tokens only | $0 /seat/mo | ○ |
| Claude Code | subscription + token overage | $20 /seat/mo | ○ |
| Codex CLI | subscription + token overage | $20 /seat/mo | ○ |
| Goose | BYOK tokens only | $0 /seat/mo | ○ |
| Cursor | subscription + token overage | $20 /seat/mo | ◐ |
| GitHub Copilot (Agent HQ) | subscription + token overage | $10 /seat/mo | ◐ |
| Kilo Code | BYOK tokens only | $0 /seat/mo | ○ |
| Gemini CLI | subscription + token overage | $0 /seat/mo | ○ |
| Qwen Code | BYOK tokens only | $0 /seat/mo | ○ |
| Grok Build | — | — | — |
| Cline | BYOK tokens only | $0 /seat/mo | ○ |
| DIY harness | BYOK tokens only | $0 /seat/mo | ○ |
| Zed | BYOK tokens only | $0 /seat/mo | ○ |
| Aider | BYOK tokens only | $0 /seat/mo | ○ |
| Windsurf | opaque credits | $15 /seat/mo | ● |
| Devin | opaque credits | $20 /seat/mo | ● |
| Amp | opaque credits | $0 /seat/mo | ● |

### Traction

| Tool | GitHub stars | Terminal-Bench (%) | Bench model |
| --- | --- | --- | --- |
| opencode | 25,000 | — | — |
| Claude Code | — | — | — |
| Codex CLI | 42,000 | — | — |
| Goose | 20,000 | — | — |
| Cursor | — | — | — |
| GitHub Copilot (Agent HQ) | — | — | — |
| Kilo Code | 9,000 | — | — |
| Gemini CLI | 75,000 | — | — |
| Qwen Code | 13,000 | — | — |
| Grok Build | — | — | — |
| Cline | 50,000 | — | — |
| DIY harness | — | — | — |
| Zed | 62,000 | — | — |
| Aider | 37,000 | — | — |
| Windsurf | — | — | — |
| Devin | — | — | — |
| Amp | — | — | — |

### Positioning

| Tool | Positioning |
| --- | --- |
| opencode | The open-source AI coding agent built for the terminal. |
| Claude Code | Anthropic's coding agent, in your terminal and wherever else you work. |
| Codex CLI | A coding agent that runs locally, in your terminal. |
| Goose | An open-source, extensible AI agent that goes beyond code suggestions. |
| Cursor | The AI code editor, built to make you extraordinarily productive. |
| GitHub Copilot (Agent HQ) | Mission control for every agent working on your repositories. |
| Kilo Code | Open-source AI coding agent for VS Code, with everything included. |
| Gemini CLI | An open-source AI agent that brings Gemini into your terminal. |
| Qwen Code | A command-line coding agent tuned for the Qwen3-Coder models. |
| Grok Build | — |
| Cline | Autonomous coding agent in your IDE, with your API key. |
| DIY harness | The reference point: what you get for a few hundred lines and an API key. |
| Zed | The editor for humans and AI, written in Rust. |
| Aider | AI pair programming in your terminal. |
| Windsurf | The agentic IDE where you and the agent stay in flow together. |
| Devin | An AI software engineer you delegate tickets to. |
| Amp | An agentic coding tool that always runs the best model, chosen for you. |

### Timeline

| Tool | First release |
| --- | --- |
| opencode | 2025-06-01 |
| Claude Code | 2025-02-24 |
| Codex CLI | 2025-04-16 |
| Goose | 2025-01-28 |
| Cursor | 2023-03-01 |
| GitHub Copilot (Agent HQ) | 2021-06-29 |
| Kilo Code | 2025-03-01 |
| Gemini CLI | 2025-06-25 |
| Qwen Code | 2025-07-01 |
| Grok Build | 2026-07-01 |
| Cline | 2024-07-01 |
| DIY harness | — |
| Zed | 2023-03-22 |
| Aider | 2023-05-01 |
| Windsurf | 2024-11-13 |
| Devin | 2024-03-12 |
| Amp | 2025-05-01 |

## Field registry

| Field | id | Group | Type | Unit | Better | Default weight | Definition |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Surface | `surface` | features | multi-enum | — | n/a | 0 | Where you drive the agent from. 'Cloud delegate' means the work runs on the vendor's machines rather than yours. Not scored — this is a fit question, not a quality one. |
| Default model | `default_model` | features | text | — | n/a | 0 | The model the harness uses on a fresh install with no configuration. Rotates frequently, so treat the family as the durable fact rather than the point release. |
| Model breadth | `model_breadth` | features | enum | — | higher | 5 | How many model providers the harness treats as first-class. 'One vendor + custom endpoint' requires a vendor-documented way to point the harness at a base URL of your choosing — a gateway, a corporate proxy, or a cloud reseller — even if the models on the other end are still that vendor's. Community reports of an undocumented override do not qualify. 'Any provider / router' means an arbitrary OpenAI-compatible or router endpoint works as configuration, without patching the source. |
| Repo indexing | `repo_indexing` | features | enum | — | higher | 4 | How much structure the harness has about your code before the first token: nothing, live search, a parsed symbol map, a persistent vector index, or an index read alongside live search. Ranked by richness of the substrate, not by output quality — a richer substrate is not automatically a better answer for your repo. |
| Plan mode | `plan_mode` | features | tristate | — | higher | 5 | A distinct read-only mode producing a plan you approve before any file is written. 'Partial' means the tool plans internally but offers no explicit approval gate. |
| Checkpoint & undo | `checkpointing` | features | tristate | — | higher | 5 | Can you roll the working tree back to a point mid-session without reaching for git yourself? 'Partial' means git-commit-based recovery only. |
| Headless / CI | `headless_ci` | features | tristate | — | higher | 6 | A documented non-interactive mode that takes a prompt, runs to completion and exits with a usable status — the prerequisite for putting the agent in a pipeline. |
| Local models | `local_models` | features | tristate | — | higher | 4 | Documented support for a locally served model (Ollama, llama.cpp, vLLM) as the primary agent model. 'Partial' means it connects but agentic tool use is unreliable. |
| Where it stops | `stops_at` | agentic | score | — | higher | 10 | The furthest rung the tool reaches out of the box with no scripts of yours. 1: suggests diffs you apply by hand. 2: edits files in your working tree. 3: runs commands and tests and iterates on the failures. 4: commits, pushes a branch and opens a pull request through a first-class path. 5: merges to the default branch or deploys with no human in the loop. Invoking gh because you told it to is not rung 4. Note the live range on this page is 3–4: every scored harness edits files and runs commands, and nothing ships rung 5, so this column separates 'stops at your working tree' from 'reaches a pull request' and nothing finer. Rung 3 covers a wide band — Aider with --test-cmd iterating on failures and an IDE agent running commands under per-action approval both sit there. |
| MCP | `mcp_support` | agentic | tristate | — | higher | 6 | First-class Model Context Protocol client support: stdio and remote servers configurable per project, without a plugin or a fork. |
| Subagents | `subagents` | agentic | tristate | — | higher | 6 | Can the agent spawn child agents with their own context window and toolset, and collect their results? The main lever for keeping long tasks inside a context budget. |
| Hooks | `hooks` | agentic | tristate | — | higher | 4 | User-defined commands fired on lifecycle events — before a tool call, after an edit, on session end — that can block or rewrite the action. 'Partial' means notification-only hooks that cannot veto. |
| Skills / commands | `skills_commands` | agentic | tristate | — | higher | 5 | Reusable, version-controlled prompt units checked into the repo — slash commands, skills, recipes or modes — that every team member picks up automatically. |
| Background agents | `background_agents` | agentic | tristate | — | higher | 6 | Can you fire off a task that keeps running once the client is closed — on vendor infrastructure or a detached local runner — and check back later? |
| Opens PRs | `pr_authoring` | agentic | tristate | — | higher | 7 | A first-class path to a pull request: a built-in command, a vendor-published GitHub App with its own identity, or a hosted runner. 'Partial' means only via an official CI action you wire into your own workflows with no App behind it. The App-versus-Action line is about identity — who the branch is pushed as — not about how much YAML you touch. |
| Permissions | `permission_model` | governance | enum | — | higher | 7 | The strongest control available without extra tooling — available, not necessarily on by default, so read the cell note for the default. 'OS sandbox' means the harness itself ships a real filesystem and network boundary (Seatbelt, Landlock, a container); an auto-approve allowlist alone is convenience, not containment. The top two options tie deliberately: a vendor-hosted VM and a local kernel sandbox are two answers to the same question, one trading auditability for isolation and the other the reverse, and we will not pretend to rank them. |
| BYOK | `byok` | governance | tristate | — | higher | 7 | Can you point the harness at your own provider account and pay that provider directly, with full functionality? 'Partial' means BYOK exists but disables features or is plan-gated. |
| Licence | `licence` | governance | enum | — | higher | 5 | Licence of the harness itself, not the model behind it. 'Source-available' means readable but not freely forkable or redistributable. |
| Pricing model | `pricing_model` | pricing | enum | — | higher | 6 | How you are billed for the harness, ranked by cost predictability rather than by cheapness. 'Opaque credits' means a vendor-defined unit whose conversion to tokens is unpublished or subject to change. |
| Entry price | `entry_price` | pricing | currency | /seat/mo | lower | 6 | Cheapest paid plan that includes agentic coding, per seat per month at the vendor's headline rate. 0 means the harness itself is free and you pay the model provider directly. |
| Token markup | `gateway_markup` | pricing | tristate | — | lower | 5 | Does the vendor resell model tokens above provider list price, or behind a credit unit that hides the conversion? 'No' means you can pay the model provider directly at list on the harness's default path — an optional first-party gateway or credit pack you are free to ignore does not change the answer. 'Partial' means BYOK exists but the product assumes its own gateway. 'Yes' means there is no BYOK escape hatch at all. |
| GitHub stars | `github_stars` | traction | number | — | higher | 2 | Stars on the primary open-source repository, rounded to the nearest thousand. Null for closed-source harnesses, where no comparable repo exists. |
| Terminal-Bench | `terminal_bench` | traction | number | % | higher | 3 | Best publicly reported Terminal-Bench accuracy for THIS HARNESS, recorded only where the harness, the model and the benchmark version are all identified in the source. A score produced by the benchmark's own reference agent (Terminus) is a fact about the model, not about anybody's harness, and does not belong here. Read it alongside the 'Bench model' column or not at all. The column currently ships empty; see the methodology note for why. |
| Bench model | `terminal_bench_model` | traction | text | — | n/a | 0 | The model and benchmark version that produced the Terminal-Bench figure. A harness score without this is meaningless: swapping the model moves the number by tens of points. |
| Positioning | `positioning` | marketing | text | — | n/a | 0 | How the vendor positions the product in one line, paraphrased from their own front page — useful for spotting where the marketing and the behaviour diverge. |
| First release | `first_release` | timeline | date | — | n/a | 0 | Date the harness first shipped publicly — first public release, preview or GA announcement — not the company's founding date. |

## Presets

| Preset | id | What it optimises for | Weights | Ranked URL |
| --- | --- | --- | --- | --- |
| Most autonomous | `most-autonomous` | How far down the ladder it goes without you: PRs, background runs, subagents, headless operation. | stops_at:10, background_agents:8, pr_authoring:8, subagents:6, headless_ci:6, plan_mode:4, permission_model:3, hooks:3, entry_price:1 | https://toolweight.dev/compare/coding-agents?w=stops_at:10,background_agents:8,pr_authoring:8,subagents:6,headless_ci:6,plan_mode:4,permission_model:3,hooks:3,entry_price:1 |
| Best BYOK / open source | `byok-open-source` | Your key, your models, your fork. Weighted for licence, provider breadth and freedom from a token gateway. | byok:10, licence:9, model_breadth:9, local_models:8, gateway_markup:7, mcp_support:4, headless_ci:3, github_stars:2 | https://toolweight.dev/compare/coding-agents?w=byok:10,licence:9,model_breadth:9,local_models:8,gateway_markup:7,mcp_support:4,headless_ci:3,github_stars:2 |
| Cheapest predictable cost | `cheapest-predictable` | Optimises for a number you can put in a budget, not a credit balance that moves. | entry_price:10, pricing_model:9, gateway_markup:8, byok:5, local_models:4, licence:3 | https://toolweight.dev/compare/coding-agents?w=entry_price:10,pricing_model:9,gateway_markup:8,byok:5,local_models:4,licence:3 |
| Best for large repos | `large-repos` | Context strategy, planning before editing, and the ability to undo when it gets the architecture wrong. | repo_indexing:9, plan_mode:8, subagents:8, checkpointing:7, skills_commands:6, headless_ci:4, stops_at:4, permission_model:3 | https://toolweight.dev/compare/coding-agents?w=repo_indexing:9,plan_mode:8,subagents:8,checkpointing:7,skills_commands:6,headless_ci:4,stops_at:4,permission_model:3 |

## Verdict

Start from the framing that makes this category legible: agent = model + harness. The model supplies raw capability. The harness supplies everything that turns capability into finished work — the tool loop, the context strategy, the permission gate, the retry-on-failing-test behaviour, the thing that stops it wandering off after twenty minutes. Hand the same frontier model to two harnesses and you get wildly different completion rates on the same repo. That is why a benchmark number only earns a place on this page when the harness, the model and the benchmark version are all named — and why the Terminal-Bench column below is currently empty rather than populated with the model scores everyone else reprints. A harness score with no harness attached is a marketing artefact, not a measurement.

The field that actually separates these tools is where does it stop? We score it 1–5 on a fixed ladder: suggests → edits files → runs tests → opens PR → merges and deploys. Almost every comparison stops at feature checklists and never asks how far down that ladder the tool goes without a human. The answer is sobering, and it is narrower than the ladder suggests: every scored harness here sits at rung 3 or rung 4, so in practice the column separates "stops at your working tree" from "reaches a pull request" and nothing finer. Claude Code, Codex CLI, opencode, Cursor, Devin and GitHub Copilot reach rung 4 — a branch pushed and a pull request opened through a path the vendor ships. Nothing on this page ships at rung 5. Copilot's coding agent cannot approve its own PR by design; Devin's ceiling is a review request. Anyone selling "autonomous deployment" is describing a CI pipeline you wired yourself, sitting downstream of a rung-4 agent.

There are two camps and they are drifting apart. The vendor-coupled harnesses — Claude Code, Codex CLI, Gemini CLI, Devin, Grok Build — are built against one model family's quirks, so they ship agentic features first: subagents, hooks, sandboxing, cloud runners. Amp belongs beside them for the same practical reason with a different mechanism: it is not coupled to one vendor so much as opaque about which it uses, because there is no model picker and multiple vendors sit behind it. The provider-agnostic ones — opencode, Cline, Goose, Aider, Zed, Qwen Code, Kilo Code — trail on features by a quarter or two but survive vendor pricing changes, run local models, and never leave you renegotiating your tooling because someone re-tiered a subscription. If your team is one procurement decision away from switching model vendors, take the agnostic one and accept the lag — opencode in particular now reaches a pull request through its own GitHub App, so the feature gap is narrower than it was.

The pricing hides more than the features do. Three models are in play: BYOK tokens (you pay the provider, the harness is free — opencode, Aider, Goose, Zed, Cline, Qwen Code), a flat subscription with soft limits (Claude Code on Pro or Max, Codex on ChatGPT plans), and credits (Windsurf, Devin, Amp). Credits are the one to watch. A credit is an abstraction over tokens whose conversion rate the vendor controls and can change, which makes month-to-month cost genuinely unforecastable for an agent that might burn ten times more context on a bad day. Copilot's premium requests are the same problem in different clothing. If you need a number you can put in a budget, a subscription or your own API key are the only two honest answers.

Expect this page to be wrong faster than any other on the site. Our intended cadence here is a full re-verification every fourteen days, and we are not currently meeting it: every dated cell below was last checked on 15 January 2026, so the table is roughly six months old and you should treat pricing and feature cells as leads to confirm rather than as current fact. We would rather show you the dates and the gap than quietly restamp them. In the eighteen months to that pass, Windsurf changed hands once — after an OpenAI acquisition collapsed and Google licensed the technology and hired the leadership, Cognition bought what remained — Aider's release cadence slowed to a trickle, GitHub rebuilt Copilot around a multi-agent control plane, and Grok Build appeared in July 2026 with essentially nothing verifiable published. pi.dev arrived after that pass and is not on the roster below; a row of dashes reads as a bad result rather than as absent evidence, so it stays in prose as one to watch until someone here has actually shipped code with it. Pick tools whose exit cost is low: a harness that reads AGENTS.md, takes your API key and leaves your repo unchanged costs you a weekend to replace. One that owns your credits, your index and your PR flow does not.

## The autonomy ladder, rung by rung

Rung 1 is suggests: it proposes a diff or a snippet and you apply it. Rung 2 is edits files: it writes directly to your working tree. Rung 3 is runs commands and tests: it executes the build and test loop and iterates on the failures it sees. Rung 4 is opens a pull request: it commits, pushes a branch and raises a PR through a first-class path. Rung 5 is merges and deploys: it lands work on the default branch or triggers a release with no human in the loop.

The interesting gap is between 3 and 4, and it is organisational rather than technical. Any harness with shell access can run gh pr create. What rung 4 actually requires is that the vendor has thought about identity — whose token pushes the branch, what CI runs, what happens on a failed check, whether the agent can respond to review comments. GitHub Copilot's coding agent is the clearest example: it runs in Actions, pushes under a bot identity, and is structurally barred from approving its own work. Devin and Cursor's background agents solve the same problem with a hosted VM and their own identity. Claude Code and opencode solve it with published GitHub Apps that answer a mention on an issue, which is why an MIT-licensed terminal harness and a proprietary one land on the same rung — the licence has nothing to do with it.

Note also how little of the ladder is actually in play. Nothing on this page scores 1 or 2: shipping a coding agent in 2026 means writing to the working tree, and the tools that only suggest diffs are autocomplete products in a different category. Nothing scores 5 either. So the killer field is really a two-value sort, and rung 3 hides a wide band inside it — Aider driving a test command and fixing what it breaks is doing more unattended work than an IDE agent that pauses for approval on every command, and this column will not tell them apart. Read it with the permissions and headless columns rather than alone.

The gap between 4 and 5 is nobody's to close unilaterally. Merging is a policy decision that lives in branch protection rules, not in a harness. Treat any tool claiming rung 5 as claiming to have been given credentials, and audit it accordingly.

## Pricing traps

The flat subscription is the most honest deal on this page, but read the limits. Every subscription-based harness enforces a rolling usage window, and the ceiling is expressed in vendor-specific units that do not map cleanly onto tokens. Heavy agentic use — long sessions, big repos, subagents — burns through those windows far faster than chat does, and the answer when you hit one is either wait or move to metered billing.

Credits are worse for planning. Windsurf, Devin and Amp all price in units the vendor defines. The unit economics can be perfectly fair and still be unforecastable, because the vendor can re-price the conversion between a credit and a token when the underlying model price changes, and you find out afterwards. Copilot's premium-request multipliers have the same shape. If someone in finance needs a number for next quarter, a per-seat subscription or your own provider key are the only two things you can defend.

BYOK looks cheapest and often is, but it moves the variance onto your API bill rather than removing it. A harness that re-reads a large file on every turn costs multiples of one that caches aggressively, and the difference shows up in your provider invoice rather than the tool's price page. If you are running BYOK at team scale, meter it per repo for a fortnight before you extrapolate, and check whether the harness supports prompt caching against your provider at all.

## How to actually choose

Three decision paths cover most teams. If the work is well-specified tickets on a repo with good tests, buy autonomy: Claude Code or Codex CLI in headless mode behind a PR, or Copilot's coding agent if you already live in GitHub and want the identity problem solved for you. Optimise for rung 4, background execution and a sandbox you trust.

If the work is exploratory or architectural, buy ergonomics instead. Cursor and Windsurf exist because reviewing a large agentic diff inside an editor with real navigation beats reading it in a terminal, and both maintain a persistent embeddings index that grep-based harnesses cannot fake on a million-line monorepo. They are not alone in that: Kilo Code indexes too, and GitHub Copilot and Devin read an index alongside live search, which is a richer substrate again. What Cursor has that the others do not is that index sitting inside the editor you are reviewing in. Zed is the interesting third option: a fast editor that hosts other agents over the Agent Client Protocol, so you keep your harness choice open while getting an editor's review surface.

If you are constrained by procurement, data residency or a fear of lock-in, take a provider-agnostic open-source harness. opencode if you want a modern TUI and the broadest provider coverage, Goose if MCP is already central to your stack, Cline if your team is VS Code-native, Aider if you want the smallest auditable thing that works. You will be a quarter behind on features. You will also be able to point every one of them at a different model provider on a Tuesday afternoon.

Whatever you pick, write AGENTS.md, pin a test command, and keep the sandbox on. Those three decisions outlast the tool.

## Provenance — every cell, every source

### opencode {#opencode}

Provider-agnostic open-source TUI with a client/server split and LSP awareness.

|  |  |
| --- | --- |
| Site | https://opencode.ai |
| Docs | https://opencode.ai/docs/ |
| Repo | https://github.com/sst/opencode |
| Company | SST |
| Founded | 2025 |
| Open source | Yes (MIT) |
| Profile | https://toolweight.dev/tools/opencode |
| Score (default weights) | 84.8 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | CLI, web | Vendor-claimed | 2026-01-15 | https://opencode.ai/docs/ | Terminal TUI plus a shareable web view of sessions. | #opencode-surface |
| Default model | None — you choose a provider at first run | Inferred | 2026-01-15 | — | — | #opencode-default_model |
| Model breadth | any provider / router | Vendor-claimed | 2026-01-15 | https://opencode.ai/docs/providers/ | Resolves models through a shared registry; dozens of providers work as config rather than code. | #opencode-model_breadth |
| Repo indexing | AST / LSP repo map | Community-reported | — | — | LSP servers give it symbol-level awareness on top of agentic search. | #opencode-repo_indexing |
| Plan mode | ● | Community-reported | — | — | — | #opencode-plan_mode |
| Checkpoint & undo | ◐ | Community-reported | — | — | Session-level revert rather than a full working-tree snapshot system. | #opencode-checkpointing |
| Headless / CI | ● | Inferred | 2026-01-15 | — | — | #opencode-headless_ci |
| Local models | ● | Inferred | 2026-01-15 | — | — | #opencode-local_models |
| Where it stops | 4 | Vendor-claimed | — | https://opencode.ai/docs/github/ | Corrected upward: opencode github install sets up the published opencode-agent GitHub App, which answers a /opencode mention on an issue or PR by working in a new branch and submitting the pull request. That is the same class of first-class path Claude Code is credited for, and grading it lower because the project is open source would be a different rule for the same fact. | #opencode-stops_at |
| MCP | ● | Inferred | 2026-01-15 | — | — | #opencode-mcp_support |
| Subagents | ● | Inferred | 2026-01-15 | — | — | #opencode-subagents |
| Hooks | ◐ | Community-reported | — | — | The plugin API covers some lifecycle events. | #opencode-hooks |
| Skills / commands | ● | Inferred | 2026-01-15 | — | — | #opencode-skills_commands |
| Background agents | ◐ | Inferred | — | — | The client/server split lets the agent run on a remote box, but there is no hosted runner. | #opencode-background_agents |
| Opens PRs | ● | Vendor-claimed | — | https://opencode.ai/docs/github/ | github.com/apps/opencode-agent, installed by opencode github install. The run itself executes in your GitHub Actions runners, so there is no hosted runner here — but the App identity is what this column grades. | #opencode-pr_authoring |
| Permissions | granular allowlist | Vendor-claimed | 2026-01-15 | https://opencode.ai/docs/permissions/ | Per-tool allow/ask/deny rules, but no OS-level sandbox. | #opencode-permission_model |
| BYOK | ● | Inferred | 2026-01-15 | — | — | #opencode-byok |
| Licence | MIT | Vendor-claimed | 2026-01-15 | https://github.com/sst/opencode | — | #opencode-licence |
| Pricing model | BYOK tokens only | Inferred | 2026-01-15 | — | — | #opencode-pricing_model |
| Entry price | $0 /seat/mo | Inferred | 2026-01-15 | — | — | #opencode-entry_price |
| Token markup | ○ | Inferred | — | — | BYOK at provider list is the default path. The project also sells an optional first-party gateway, but so do Cline, Zed and Kilo Code, and all four are graded the same here — penalising only opencode for it was the inconsistency this column existed to avoid. | #opencode-gateway_markup |
| GitHub stars | 25,000 | Community-reported | — | — | Rounded and growing fast — treat as order-of-magnitude. | #opencode-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #opencode-terminal_bench |
| Bench model | — | Unknown | — | — | — | #opencode-terminal_bench_model |
| Positioning | The open-source AI coding agent built for the terminal. | Vendor-claimed | — | https://opencode.ai | — | #opencode-positioning |
| First release | 2025-06-01 | Inferred | — | — | Approximate; the project moved fast through several rewrites. | #opencode-first_release |

**Verdict.** The strongest answer for teams who refuse to couple their tooling to one model vendor: provider support is a config line, and the client/server split is genuinely useful for running agents on a remote box. It is also the only MIT-licensed harness here that reaches a pull request, through its own GitHub App. What it still lacks is an OS sandbox — the permission model is per-tool allow/ask/deny rules, which is control rather than containment.

**Pick it when**

- Teams switching model providers often, or comparing them head-to-head
- Running the agent on a big remote machine and driving it from a laptop
- Anyone who wants an MIT-licensed harness with subagents and a PR path

### Claude Code {#claude-code}

Anthropic's terminal-first agent, with IDE, web and GitHub Action surfaces.

|  |  |
| --- | --- |
| Site | https://claude.com/product/claude-code |
| Docs | https://docs.claude.com/en/docs/claude-code/overview |
| Company | Anthropic |
| Founded | 2025 |
| Open source | No |
| Profile | https://toolweight.dev/tools/claude-code |
| Score (default weights) | 80.0 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | CLI, IDE extension, web, GitHub-native | Vendor-claimed | 2026-01-15 | https://docs.claude.com/en/docs/claude-code/overview | — | #claude-code-surface |
| Default model | Latest Claude Opus/Sonnet, switchable with /model | Inferred | — | — | The specific point release rotates every few months; the family is the durable fact. | #claude-code-default_model |
| Model breadth | one vendor + custom endpoint | Vendor-claimed | — | https://docs.claude.com/en/docs/claude-code/third-party-integrations | Claude models only — but ANTHROPIC_BASE_URL is a documented path to an LLM gateway or corporate proxy of your choosing, alongside Bedrock and Vertex. The endpoint is yours; the models on the other end are still Anthropic's, which is what separates this tier from multi-vendor. Codex CLI and Qwen Code are graded here on the same rule. | #claude-code-model_breadth |
| Repo indexing | agentic grep | Community-reported | — | — | No embeddings index by design — it searches on demand rather than pre-indexing. | #claude-code-repo_indexing |
| Plan mode | ● | Inferred | 2026-01-15 | — | — | #claude-code-plan_mode |
| Checkpoint & undo | ● | Community-reported | — | — | Session rewind restores conversation and file state together. | #claude-code-checkpointing |
| Headless / CI | ● | Vendor-claimed | 2026-01-15 | https://docs.claude.com/en/docs/claude-code/sdk | — | #claude-code-headless_ci |
| Local models | ○ | Community-reported | — | — | No documented local-model path. Third-party proxies exist, but this column credits vendor-documented support only — the same rule that keeps Gemini CLI at no and puts GitHub Copilot at partial. | #claude-code-local_models |
| Where it stops | 4 | Inferred | — | — | Hosted cloud sessions clone the repo, push a branch and open the pull request with no workflow of yours, and the Claude GitHub App covers the in-repo path. Invoking gh is not what earns this rung — any harness with a shell can do that. With approvals disabled and a privileged token it will merge, but that is you removing the gate, not rung 5 shipping. | #claude-code-stops_at |
| MCP | ● | Vendor-claimed | 2026-01-15 | https://docs.claude.com/en/docs/claude-code/mcp | — | #claude-code-mcp_support |
| Subagents | ● | Vendor-claimed | 2026-01-15 | https://docs.claude.com/en/docs/claude-code/sub-agents | — | #claude-code-subagents |
| Hooks | ● | Vendor-claimed | 2026-01-15 | https://docs.claude.com/en/docs/claude-code/hooks | — | #claude-code-hooks |
| Skills / commands | ● | Vendor-claimed | 2026-01-15 | https://docs.claude.com/en/docs/claude-code/slash-commands | — | #claude-code-skills_commands |
| Background agents | ● | Vendor-claimed | — | https://code.claude.com/docs/en/claude-code-on-the-web | Hosted cloud sessions keep running after the browser closes. Backgrounded local tasks do not survive closing the client and are not what earns this cell. | #claude-code-background_agents |
| Opens PRs | ● | Vendor-claimed | — | https://code.claude.com/docs/en/github-actions | The Claude GitHub App (installed by /install-github-app) pushes and raises PRs under its own identity, and hosted cloud sessions do it with no CI of yours at all. Graded on the App and the hosted runner, not on the ability to shell out to gh. | #claude-code-pr_authoring |
| Permissions | allowlist + OS sandbox | Vendor-claimed | 2026-01-15 | https://docs.claude.com/en/docs/claude-code/iam | — | #claude-code-permission_model |
| BYOK | ● | Inferred | — | — | Point it at your own Anthropic, Bedrock or Vertex account and nothing is disabled or plan-gated, which is what this field asks. That the key can only buy Claude models is a model-breadth fact, scored in that column — counting it twice here would penalise the same limitation once per column. Gemini CLI, equally single-vendor, is graded the same way. | #claude-code-byok |
| Licence | proprietary | Inferred | 2026-01-15 | — | — | #claude-code-licence |
| Pricing model | subscription + token overage | Vendor-claimed | 2026-01-15 | https://www.anthropic.com/pricing | — | #claude-code-pricing_model |
| Entry price | $20 /seat/mo | Vendor-claimed | 2026-01-15 | https://www.anthropic.com/pricing | Pro tier; heavy agentic use realistically wants Max. | #claude-code-entry_price |
| Token markup | ○ | Inferred | — | — | API-key use bills at Anthropic list price. | #claude-code-gateway_markup |
| GitHub stars | — | Unknown | — | — | The public repo is an issue tracker rather than the harness source, so a star count would not be comparable to opencode's or Cline's. | #claude-code-github_stars |
| Terminal-Bench | — | Unknown | — | — | We previously carried 43.2% here. That figure was published for a Claude model running Terminal-Bench 1.0's own reference agent, not for Claude Code, so it was a model result in a harness column and we have removed it. No harness-attributed figure we can stand behind has replaced it. | #claude-code-terminal_bench |
| Bench model | — | Unknown | — | — | — | #claude-code-terminal_bench_model |
| Positioning | Anthropic's coding agent, in your terminal and wherever else you work. | Vendor-claimed | — | https://claude.com/product/claude-code | — | #claude-code-positioning |
| First release | 2025-02-24 | Community-reported | — | — | Research preview alongside Claude 3.7 Sonnet. | #claude-code-first_release |

**Verdict.** The most complete extensibility surface of any harness here — subagents, hooks, skills and MCP all first-class — at the cost of being locked to one model vendor. If Anthropic's pricing or availability is a business risk for you, that lock is the whole argument against it.

**Pick it when**

- Terminal-native teams who want subagents and hooks without building them
- Repos where an OS sandbox is a hard requirement for unattended runs
- Anyone already paying for Max who wants the subscription to cover agent use

### Codex CLI {#codex-cli}

OpenAI's open-source Rust agent, with the strongest local sandboxing on this page.

|  |  |
| --- | --- |
| Site | https://developers.openai.com/codex/cli |
| Docs | https://developers.openai.com/codex |
| Repo | https://github.com/openai/codex |
| Company | OpenAI |
| Founded | 2025 |
| Open source | Yes (Apache-2.0) |
| Profile | https://toolweight.dev/tools/codex-cli |
| Score (default weights) | 76.0 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | CLI, IDE extension, web, cloud delegate | Vendor-claimed | 2026-01-15 | https://developers.openai.com/codex | — | #codex-cli-surface |
| Default model | Latest GPT-5 Codex model | Inferred | — | — | Point release rotates; the Codex-tuned family is the constant. | #codex-cli-default_model |
| Model breadth | one vendor + custom endpoint | Vendor-claimed | 2026-01-15 | https://github.com/openai/codex/blob/main/docs/config.md | First-class for OpenAI; arbitrary OpenAI-compatible providers configurable, including local servers. | #codex-cli-model_breadth |
| Repo indexing | agentic grep | Community-reported | — | — | — | #codex-cli-repo_indexing |
| Plan mode | ◐ | Inferred | — | — | Plans internally and surfaces the plan, but there is no read-only approval gate before edits. | #codex-cli-plan_mode |
| Checkpoint & undo | ◐ | Community-reported | — | — | Sessions resume, but there is no working-tree rollback beyond git. | #codex-cli-checkpointing |
| Headless / CI | ● | Vendor-claimed | 2026-01-15 | https://developers.openai.com/codex/cli | codex exec is the non-interactive entry point. | #codex-cli-headless_ci |
| Local models | ● | Community-reported | — | — | Via the OpenAI-compatible provider config; tool-use reliability depends entirely on the local model. | #codex-cli-local_models |
| Where it stops | 4 | Inferred | — | — | The local CLI stops at rung 3; Codex cloud tasks push branches and open PRs. | #codex-cli-stops_at |
| MCP | ● | Vendor-claimed | 2026-01-15 | https://github.com/openai/codex/blob/main/docs/config.md | — | #codex-cli-mcp_support |
| Subagents | ○ | Community-reported | — | — | No first-class child-agent primitive at our last pass. | #codex-cli-subagents |
| Hooks | ◐ | Community-reported | — | — | Notification hooks exist; they cannot veto a tool call. | #codex-cli-hooks |
| Skills / commands | ◐ | Community-reported | — | — | Custom prompt files plus AGENTS.md, short of a full skills system. | #codex-cli-skills_commands |
| Background agents | ● | Inferred | 2026-01-15 | — | — | #codex-cli-background_agents |
| Opens PRs | ● | Inferred | 2026-01-15 | — | — | #codex-cli-pr_authoring |
| Permissions | allowlist + OS sandbox | Vendor-claimed | 2026-01-15 | https://github.com/openai/codex | Seatbelt on macOS, Landlock on Linux, with approval modes layered on top. | #codex-cli-permission_model |
| BYOK | ● | Inferred | 2026-01-15 | — | — | #codex-cli-byok |
| Licence | Apache-2.0 | Vendor-claimed | 2026-01-15 | https://github.com/openai/codex | — | #codex-cli-licence |
| Pricing model | subscription + token overage | Inferred | 2026-01-15 | — | Included with ChatGPT paid plans, or metered against an API key. | #codex-cli-pricing_model |
| Entry price | $20 /seat/mo | Vendor-claimed | 2026-01-15 | https://openai.com/chatgpt/pricing/ | — | #codex-cli-entry_price |
| Token markup | ○ | Inferred | — | — | — | #codex-cli-gateway_markup |
| GitHub stars | 42,000 | Community-reported | — | — | Rounded; stars move weekly. | #codex-cli-github_stars |
| Terminal-Bench | — | Unknown | — | — | We previously carried 42.8% from the Terminal-Bench 1.0 era. It is superseded by 2.0, unsourced in our own file, and the harness it was run under was never stated — so it is out until we can name harness, model and benchmark version together. | #codex-cli-terminal_bench |
| Bench model | — | Unknown | — | — | — | #codex-cli-terminal_bench_model |
| Positioning | A coding agent that runs locally, in your terminal. | Vendor-claimed | — | https://developers.openai.com/codex/cli | — | #codex-cli-positioning |
| First release | 2025-04-16 | Community-reported | — | — | Original TypeScript release; rewritten in Rust later that year. | #codex-cli-first_release |

**Verdict.** The best containment story of any local harness — Seatbelt and Landlock are real boundaries, not an allowlist with good marketing. Weaker than Claude Code on orchestration primitives: no subagents, notification-only hooks, thinner custom-command support.

**Pick it when**

- Unattended local runs where a real OS sandbox is non-negotiable
- Teams already on ChatGPT business plans wanting agent use covered
- Anyone who wants an Apache-2.0 harness they can audit and fork

### Goose {#goose}

Block's Apache-2.0 agent, MCP-native from the start, as both a CLI and a desktop app.

|  |  |
| --- | --- |
| Site | https://block.github.io/goose/ |
| Docs | https://block.github.io/goose/docs/ |
| Repo | https://github.com/block/goose |
| Company | Block |
| Founded | 2025 |
| Open source | Yes (Apache-2.0) |
| Profile | https://toolweight.dev/tools/goose |
| Score (default weights) | 75.7 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | CLI, standalone editor | Vendor-claimed | 2026-01-15 | https://block.github.io/goose/docs/ | A CLI plus a desktop app. | #goose-surface |
| Default model | None — you configure a provider on first run | Inferred | 2026-01-15 | — | — | #goose-default_model |
| Model breadth | any provider / router | Vendor-claimed | 2026-01-15 | https://block.github.io/goose/docs/getting-started/providers | — | #goose-model_breadth |
| Repo indexing | agentic grep | Inferred | — | — | — | #goose-repo_indexing |
| Plan mode | ● | Community-reported | — | — | A dedicated plan mode ships in the CLI. | #goose-plan_mode |
| Checkpoint & undo | ○ | Inferred | — | — | — | #goose-checkpointing |
| Headless / CI | ● | Inferred | 2026-01-15 | — | goose run executes a recipe or instruction non-interactively. | #goose-headless_ci |
| Local models | ● | Inferred | 2026-01-15 | — | — | #goose-local_models |
| Where it stops | 3 | Inferred | — | — | Edits and runs commands; PR authoring only if you wire up an MCP server for it. | #goose-stops_at |
| MCP | ● | Inferred | 2026-01-15 | — | MCP-native — extensions simply are MCP servers. | #goose-mcp_support |
| Subagents | ● | Community-reported | — | — | — | #goose-subagents |
| Hooks | ◐ | Community-reported | — | — | — | #goose-hooks |
| Skills / commands | ● | Inferred | 2026-01-15 | — | Recipes are shareable, parameterised task definitions. | #goose-skills_commands |
| Background agents | ◐ | Inferred | — | — | — | #goose-background_agents |
| Opens PRs | ○ | Inferred | — | — | — | #goose-pr_authoring |
| Permissions | allowlist + OS sandbox | Community-reported | — | — | Corrected upward for consistency: permission modes from chat-only to fully automatic, plus a macOS Seatbelt sandbox with an egress proxy shipped by Goose itself, off by default. That is the same arrangement Gemini CLI is credited for, and this column grades the strongest boundary available rather than the default one. On Linux there is no built-in sandbox, so containerise it yourself for unattended work. | #goose-permission_model |
| BYOK | ● | Inferred | 2026-01-15 | — | — | #goose-byok |
| Licence | Apache-2.0 | Vendor-claimed | 2026-01-15 | https://github.com/block/goose | — | #goose-licence |
| Pricing model | BYOK tokens only | Inferred | 2026-01-15 | — | — | #goose-pricing_model |
| Entry price | $0 /seat/mo | Inferred | 2026-01-15 | — | — | #goose-entry_price |
| Token markup | ○ | Inferred | 2026-01-15 | — | — | #goose-gateway_markup |
| GitHub stars | 20,000 | Community-reported | — | — | Rounded. | #goose-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #goose-terminal_bench |
| Bench model | — | Unknown | — | — | — | #goose-terminal_bench_model |
| Positioning | An open-source, extensible AI agent that goes beyond code suggestions. | Vendor-claimed | — | https://block.github.io/goose/ | — | #goose-positioning |
| First release | 2025-01-28 | Community-reported | — | — | Block's open-source release of the rewritten agent. | #goose-first_release |

**Verdict.** The most MCP-committed harness on the page — if your organisation has already built internal MCP servers, Goose turns them into an agent's toolset with no glue. Block's backing makes it a safer open-source bet than most, but it stops at your working tree.

**Pick it when**

- Organisations with an existing fleet of internal MCP servers
- Recipes: parameterised, shareable tasks run non-interactively
- Teams wanting an Apache-2.0 agent with a desktop app for non-terminal users

### Cursor {#cursor}

VS Code fork with a real codebase index, background cloud agents and a CLI.

|  |  |
| --- | --- |
| Site | https://cursor.com |
| Docs | https://docs.cursor.com |
| Company | Anysphere |
| Founded | 2022 |
| Funding | Series C+ |
| Open source | No |
| Profile | https://toolweight.dev/tools/cursor |
| Score (default weights) | 75.5 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | standalone editor, CLI, web, cloud delegate | Vendor-claimed | 2026-01-15 | https://docs.cursor.com | — | #cursor-surface |
| Default model | Cursor's in-house Composer model, with frontier models selectable | Community-reported | — | — | — | #cursor-default_model |
| Model breadth | multi-vendor | Inferred | 2026-01-15 | — | Anthropic, OpenAI, Google and in-house models through Cursor's gateway. | #cursor-model_breadth |
| Repo indexing | embeddings index | Vendor-claimed | 2026-01-15 | https://docs.cursor.com/context/codebase-indexing | A genuine persistent vector index, and the reason it holds up on large repos. Not unique here: Windsurf and Kilo Code also index, and Copilot and Devin pair an index with live search, which this column ranks higher again. | #cursor-repo_indexing |
| Plan mode | ● | Community-reported | — | — | — | #cursor-plan_mode |
| Checkpoint & undo | ● | Inferred | 2026-01-15 | — | — | #cursor-checkpointing |
| Headless / CI | ● | Community-reported | — | — | The Cursor CLI supports non-interactive runs. | #cursor-headless_ci |
| Local models | ○ | Inferred | — | — | — | #cursor-local_models |
| Where it stops | 4 | Inferred | — | — | Background agents run on Cursor's infrastructure and open pull requests. | #cursor-stops_at |
| MCP | ● | Inferred | 2026-01-15 | — | — | #cursor-mcp_support |
| Subagents | ◐ | Community-reported | — | — | — | #cursor-subagents |
| Hooks | ● | Community-reported | — | — | Lifecycle hooks added during 2025. | #cursor-hooks |
| Skills / commands | ● | Inferred | 2026-01-15 | — | Repo-scoped rules files and custom commands. | #cursor-skills_commands |
| Background agents | ● | Inferred | 2026-01-15 | — | — | #cursor-background_agents |
| Opens PRs | ● | Inferred | 2026-01-15 | — | — | #cursor-pr_authoring |
| Permissions | allowlist + OS sandbox | Community-reported | — | — | Auto-run allowlist plus a sandboxed terminal mode; weaker than Codex's kernel-level containment. | #cursor-permission_model |
| BYOK | ◐ | Community-reported | — | — | You can supply provider keys, but several agent features assume Cursor's own gateway. | #cursor-byok |
| Licence | proprietary | Inferred | 2026-01-15 | — | — | #cursor-licence |
| Pricing model | subscription + token overage | Vendor-claimed | 2026-01-15 | https://cursor.com/pricing | — | #cursor-pricing_model |
| Entry price | $20 /seat/mo | Vendor-claimed | 2026-01-15 | https://cursor.com/pricing | — | #cursor-entry_price |
| Token markup | ◐ | Community-reported | — | — | Cursor states usage-based spend is billed at provider rates for most models; it has carried a margin in the past. Verify before budgeting. | #cursor-gateway_markup |
| GitHub stars | — | Unknown | — | — | Closed source. | #cursor-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #cursor-terminal_bench |
| Bench model | — | Unknown | — | — | — | #cursor-terminal_bench_model |
| Positioning | The AI code editor, built to make you extraordinarily productive. | Vendor-claimed | — | https://cursor.com | — | #cursor-positioning |
| First release | 2023-03-01 | Community-reported | — | — | Approximate. | #cursor-first_release |

**Verdict.** A real persistent codebase index inside the editor you review in, which is exactly what a million-line monorepo needs and what grep-based harnesses cannot fake. It is not the only index here — Windsurf and Kilo Code embed too, and Copilot and Devin read an index alongside live search — but it is the best-integrated one. You pay for it in lock-in: the index, the gateway and the agent identity are all Cursor's, and BYOK is a second-class path.

**Pick it when**

- Large monorepos where agentic grep runs out of context before it finds anything
- Teams who want to review agentic diffs in an editor rather than a terminal
- Shops wanting background PR-opening agents without wiring up CI

### GitHub Copilot (Agent HQ) {#github-copilot}

Copilot's coding agent plus a control plane for running third-party agents on your repos.

|  |  |
| --- | --- |
| Site | https://github.com/features/copilot |
| Docs | https://docs.github.com/en/copilot |
| Company | GitHub |
| Founded | 2021 |
| Open source | No |
| Profile | https://toolweight.dev/tools/github-copilot |
| Score (default weights) | 73.7 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | GitHub-native, IDE extension, CLI, web, cloud delegate | Vendor-claimed | 2026-01-15 | https://docs.github.com/en/copilot | — | #github-copilot-surface |
| Default model | Selectable across OpenAI, Anthropic and Google models | Inferred | 2026-01-15 | — | — | #github-copilot-default_model |
| Model breadth | multi-vendor | Inferred | 2026-01-15 | — | — | #github-copilot-model_breadth |
| Repo indexing | hybrid index + agentic | Inferred | 2026-01-15 | — | GitHub already indexes the repo for code search; the agent reads from that plus live search. | #github-copilot-repo_indexing |
| Plan mode | ◐ | Community-reported | — | — | — | #github-copilot-plan_mode |
| Checkpoint & undo | ◐ | Inferred | — | — | The agent's work is a branch, so reverting is a git operation. | #github-copilot-checkpointing |
| Headless / CI | ● | Inferred | 2026-01-15 | — | The coding agent runs inside GitHub Actions by design. | #github-copilot-headless_ci |
| Local models | ◐ | Vendor-claimed | — | https://code.visualstudio.com/docs/copilot/customization/language-models | Corrected: VS Code documents adding a local Ollama model through Manage Models, so this is not a no. It is partial rather than yes because a local model only appears for agent work if it supports tool calling, which many do not — exactly the unreliability this field's partial describes. | #github-copilot-local_models |
| Where it stops | 4 | Vendor-claimed | 2026-01-15 | https://docs.github.com/en/copilot/using-github-copilot/coding-agent | Rung 4 is the deliberate ceiling: the agent pushes to a branch and opens a PR, and is structurally barred from approving its own work. | #github-copilot-stops_at |
| MCP | ● | Inferred | 2026-01-15 | — | — | #github-copilot-mcp_support |
| Subagents | ◐ | Inferred | — | — | Agent HQ dispatches third-party agents rather than spawning child agents of its own. | #github-copilot-subagents |
| Hooks | — | Unknown | — | — | — | #github-copilot-hooks |
| Skills / commands | ● | Inferred | 2026-01-15 | — | Repo-level custom instructions and prompt files. | #github-copilot-skills_commands |
| Background agents | ● | Inferred | 2026-01-15 | — | — | #github-copilot-background_agents |
| Opens PRs | ● | Inferred | 2026-01-15 | — | — | #github-copilot-pr_authoring |
| Permissions | vendor-hosted sandbox | Inferred | 2026-01-15 | — | Runs in a GitHub-hosted Actions runner, so nothing executes on your machine, and under a bot identity inside your existing branch protections. This column ranks a vendor-hosted boundary level with a local kernel sandbox rather than below it: you get isolation without visibility into it, which is a trade rather than a deficit. | #github-copilot-permission_model |
| BYOK | ◐ | Community-reported | — | — | BYOK exists for some models and plans; the coding agent assumes GitHub's own billing. | #github-copilot-byok |
| Licence | proprietary | Inferred | 2026-01-15 | — | — | #github-copilot-licence |
| Pricing model | subscription + token overage | Vendor-claimed | 2026-01-15 | https://github.com/features/copilot/plans | Seat price plus premium requests above the included allowance. | #github-copilot-pricing_model |
| Entry price | $10 /seat/mo | Vendor-claimed | 2026-01-15 | https://github.com/features/copilot/plans | — | #github-copilot-entry_price |
| Token markup | ◐ | Inferred | — | — | Premium-request multipliers vary by model and are not a published token conversion. | #github-copilot-gateway_markup |
| GitHub stars | — | Unknown | — | — | Closed source. | #github-copilot-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #github-copilot-terminal_bench |
| Bench model | — | Unknown | — | — | — | #github-copilot-terminal_bench_model |
| Positioning | Mission control for every agent working on your repositories. | Vendor-claimed | — | https://github.com/features/copilot | — | #github-copilot-positioning |
| First release | 2021-06-29 | Community-reported | — | — | Original Copilot preview; Agent HQ was announced in October 2025. | #github-copilot-first_release |

**Verdict.** The only vendor that has properly solved agent identity: bot accounts, branch protections, and an agent that cannot approve its own pull request. Agent HQ also means you need not choose — it dispatches Claude Code and Codex against the same repo. Premium-request billing is the opaque part.

**Pick it when**

- Enterprises needing audit trails and existing branch protections respected
- Running several vendors' agents on one repo without separate integrations
- Teams whose review process already lives entirely in GitHub

### Kilo Code {#kilo-code}

Open-source VS Code agent in the Cline/Roo lineage, with an orchestrator mode and a CLI.

|  |  |
| --- | --- |
| Site | https://kilocode.ai |
| Repo | https://github.com/Kilo-Org/kilocode |
| Company | Kilo Code |
| Open source | Yes (Apache-2.0) |
| Profile | https://toolweight.dev/tools/kilo-code |
| Score (default weights) | 72.8 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | IDE extension, CLI | Community-reported | — | — | VS Code extension first; a CLI followed. | #kilo-code-surface |
| Default model | — | Unknown | — | — | — | #kilo-code-default_model |
| Model breadth | any provider / router | Community-reported | — | — | Inherits broad provider support from the Cline/Roo lineage. | #kilo-code-model_breadth |
| Repo indexing | embeddings index | Community-reported | — | — | — | #kilo-code-repo_indexing |
| Plan mode | ● | Community-reported | — | — | The mode system includes architect and orchestrator modes. | #kilo-code-plan_mode |
| Checkpoint & undo | ● | Community-reported | — | — | — | #kilo-code-checkpointing |
| Headless / CI | ◐ | Inferred | — | — | Via the CLI; maturity unverified. | #kilo-code-headless_ci |
| Local models | ● | Community-reported | — | — | — | #kilo-code-local_models |
| Where it stops | 3 | Inferred | — | — | Edits and runs commands in the IDE terminal; no first-class PR path we could verify. | #kilo-code-stops_at |
| MCP | ● | Community-reported | — | — | — | #kilo-code-mcp_support |
| Subagents | ● | Community-reported | — | — | Orchestrator mode delegates to specialised sub-modes. | #kilo-code-subagents |
| Hooks | — | Unknown | — | — | — | #kilo-code-hooks |
| Skills / commands | ● | Community-reported | — | — | Custom modes and rules files. | #kilo-code-skills_commands |
| Background agents | ○ | Inferred | — | — | — | #kilo-code-background_agents |
| Opens PRs | ○ | Inferred | — | — | — | #kilo-code-pr_authoring |
| Permissions | granular allowlist | Inferred | — | — | Auto-approve settings per action class, as in Cline; no OS sandbox. | #kilo-code-permission_model |
| BYOK | ● | Community-reported | — | — | — | #kilo-code-byok |
| Licence | Apache-2.0 | Community-reported | — | https://github.com/Kilo-Org/kilocode | — | #kilo-code-licence |
| Pricing model | BYOK tokens only | Inferred | — | — | Free extension with optional first-party credits. | #kilo-code-pricing_model |
| Entry price | $0 /seat/mo | Inferred | — | — | — | #kilo-code-entry_price |
| Token markup | ○ | Inferred | — | — | BYOK at provider list is the default path, which is what this column asks. It also sells first-party credits whose margin we have not verified — the same optional arrangement opencode, Cline and Zed have, and all four are graded the same. | #kilo-code-gateway_markup |
| GitHub stars | 9,000 | Community-reported | — | — | Rounded, low confidence. | #kilo-code-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #kilo-code-terminal_bench |
| Bench model | — | Unknown | — | — | — | #kilo-code-terminal_bench_model |
| Positioning | Open-source AI coding agent for VS Code, with everything included. | Vendor-claimed | — | https://kilocode.ai | — | #kilo-code-positioning |
| First release | 2025-03-01 | Inferred | — | — | Approximate — we have not verified the first public release date. | #kilo-code-first_release |

**Verdict.** A features-merged descendant of Cline and Roo Code that ships faster than either, with orchestrator mode as the genuine differentiator. The commercial side — credits, markup, roadmap — is the least documented of any open-source tool here, which is why this row carries nulls.

**Pick it when**

- VS Code teams who want mode-based orchestration without leaving the IDE
- People who liked Roo Code and want a more actively developed descendant

### Gemini CLI {#gemini-cli}

Apache-2.0 terminal agent from Google with an unusually generous free tier.

|  |  |
| --- | --- |
| Site | https://google-gemini.github.io/gemini-cli/ |
| Repo | https://github.com/google-gemini/gemini-cli |
| Company | Google |
| Founded | 2025 |
| Open source | Yes (Apache-2.0) |
| Profile | https://toolweight.dev/tools/gemini-cli |
| Score (default weights) | 72.6 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | CLI, IDE extension, GitHub-native | Vendor-claimed | 2026-01-15 | https://github.com/google-gemini/gemini-cli | — | #gemini-cli-surface |
| Default model | Latest Gemini Pro | Inferred | — | — | Falls back to a Flash model when the Pro quota is exhausted. | #gemini-cli-default_model |
| Model breadth | one vendor | Inferred | — | — | Gemini models via API key or Vertex; no other vendors upstream. Users report a base-URL override that would put this a tier higher, but we could not find first-party documentation for one, and this column credits documented endpoints only. | #gemini-cli-model_breadth |
| Repo indexing | agentic grep | Community-reported | — | — | — | #gemini-cli-repo_indexing |
| Plan mode | ◐ | Community-reported | — | — | Planning behaviour exists but the approval gate is weaker than Cline's or Claude Code's. | #gemini-cli-plan_mode |
| Checkpoint & undo | ● | Vendor-claimed | 2026-01-15 | https://github.com/google-gemini/gemini-cli | /restore reverts file changes made during the session. | #gemini-cli-checkpointing |
| Headless / CI | ● | Inferred | 2026-01-15 | — | — | #gemini-cli-headless_ci |
| Local models | ○ | Inferred | — | — | — | #gemini-cli-local_models |
| Where it stops | 3 | Inferred | — | — | The CLI edits and runs tests. Google ships an official Action but no GitHub App, so the branch is pushed by a workflow you install and maintain rather than by a first-party identity — the line this page draws between rung 3 and rung 4, and the same line that puts Claude Code and opencode above it. | #gemini-cli-stops_at |
| MCP | ● | Inferred | 2026-01-15 | — | — | #gemini-cli-mcp_support |
| Subagents | ◐ | Community-reported | — | — | Subagent support landed as an experimental feature; maturity unverified. | #gemini-cli-subagents |
| Hooks | — | Unknown | — | — | — | #gemini-cli-hooks |
| Skills / commands | ● | Inferred | 2026-01-15 | — | Custom slash commands defined in TOML and checked into the repo. | #gemini-cli-skills_commands |
| Background agents | ◐ | Inferred | — | — | Via the GitHub Action; Google's separate async agent is a different product. | #gemini-cli-background_agents |
| Opens PRs | ◐ | Inferred | — | https://github.com/google-github-actions/run-gemini-cli | Official GitHub Action, installed by /setup-github into your own workflows; there is no Gemini CLI GitHub App. Its documented workflows also lean towards reviewing and triaging rather than authoring, which is why this is partial rather than yes. | #gemini-cli-pr_authoring |
| Permissions | allowlist + OS sandbox | Inferred | 2026-01-15 | — | Optional Docker, Podman or macOS Seatbelt sandbox shipped by the harness, off by default. This column grades the strongest boundary available rather than the default one, which is why Goose — an optional Seatbelt sandbox, also off by default — is graded identically. | #gemini-cli-permission_model |
| BYOK | ● | Inferred | 2026-01-15 | — | — | #gemini-cli-byok |
| Licence | Apache-2.0 | Vendor-claimed | 2026-01-15 | https://github.com/google-gemini/gemini-cli | — | #gemini-cli-licence |
| Pricing model | subscription + token overage | Inferred | — | — | The headline free tier is a vendor-provided quota on a personal Google account, not your key — so this is not BYOK-only. Above the quota you either bring an API key or buy a Code Assist seat, which is a subscription with metered overage. Qwen Code's free quota is the same shape but has no seat behind it, so it stays encoded as BYOK. | #gemini-cli-pricing_model |
| Entry price | $0 /seat/mo | Vendor-claimed | 2026-01-15 | https://github.com/google-gemini/gemini-cli | The free tier is real and generous; paid Code Assist seats are roughly $19. | #gemini-cli-entry_price |
| Token markup | ○ | Inferred | — | — | — | #gemini-cli-gateway_markup |
| GitHub stars | 75,000 | Community-reported | — | — | Rounded; one of the fastest-starred developer repos of 2025. | #gemini-cli-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #gemini-cli-terminal_bench |
| Bench model | — | Unknown | — | — | — | #gemini-cli-terminal_bench_model |
| Positioning | An open-source AI agent that brings Gemini into your terminal. | Vendor-claimed | — | https://google-gemini.github.io/gemini-cli/ | — | #gemini-cli-positioning |
| First release | 2025-06-25 | Community-reported | — | https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/ | — | #gemini-cli-first_release |

**Verdict.** The cheapest credible way to run an agent every day — the free tier is not a trial. In exchange you get a harness a step behind Claude Code and Codex on orchestration, and a PR path that lives in a separate GitHub Action.

**Pick it when**

- Solo developers and students who want daily agent use at zero cost
- Teams already on Vertex who want one billing relationship
- Anyone wanting an Apache-2.0 base to fork, as Qwen Code did

### Qwen Code {#qwen-code}

Apache-2.0 Gemini CLI fork tuned for Qwen3-Coder, with a large free daily quota.

|  |  |
| --- | --- |
| Site | https://qwenlm.github.io/qwen-code-docs/ |
| Repo | https://github.com/QwenLM/qwen-code |
| Company | Alibaba |
| Founded | 2025 |
| Open source | Yes (Apache-2.0) |
| Profile | https://toolweight.dev/tools/qwen-code |
| Score (default weights) | 66.6 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | CLI | Vendor-claimed | 2026-01-15 | https://github.com/QwenLM/qwen-code | — | #qwen-code-surface |
| Default model | Latest Qwen3-Coder model | Inferred | 2026-01-15 | — | — | #qwen-code-default_model |
| Model breadth | one vendor + custom endpoint | Inferred | 2026-01-15 | — | Tuned for Qwen but speaks OpenAI-compatible endpoints, so routers and local servers work. | #qwen-code-model_breadth |
| Repo indexing | agentic grep | Inferred | — | — | Inherited from Gemini CLI. | #qwen-code-repo_indexing |
| Plan mode | ◐ | Inferred | — | — | — | #qwen-code-plan_mode |
| Checkpoint & undo | ● | Inferred | — | — | Inherits Gemini CLI's restore mechanism. | #qwen-code-checkpointing |
| Headless / CI | ● | Inferred | 2026-01-15 | — | — | #qwen-code-headless_ci |
| Local models | ● | Community-reported | — | — | Open-weight Qwen models, plus any OpenAI-compatible local server. | #qwen-code-local_models |
| Where it stops | 3 | Inferred | — | — | Edits files and runs commands locally; no PR path. | #qwen-code-stops_at |
| MCP | ● | Inferred | — | — | Inherited from the upstream fork. | #qwen-code-mcp_support |
| Subagents | — | Unknown | — | — | Upstream Gemini CLI shipped experimental subagents; we have not verified whether the fork carries them, and asserting partial at unknown confidence was the one cell on this page claiming a value it could not support. | #qwen-code-subagents |
| Hooks | — | Unknown | — | — | — | #qwen-code-hooks |
| Skills / commands | ● | Inferred | — | — | TOML custom commands, as upstream. | #qwen-code-skills_commands |
| Background agents | ○ | Inferred | — | — | — | #qwen-code-background_agents |
| Opens PRs | ○ | Inferred | — | — | — | #qwen-code-pr_authoring |
| Permissions | granular allowlist | Inferred | — | — | Approval modes inherited from Gemini CLI. The upstream sandbox may well have come across with the fork, which would put this a tier higher alongside Gemini CLI and Goose, but we could not confirm it in the fork's own documentation and we grade the control we can confirm. | #qwen-code-permission_model |
| BYOK | ● | Inferred | 2026-01-15 | — | — | #qwen-code-byok |
| Licence | Apache-2.0 | Vendor-claimed | 2026-01-15 | https://github.com/QwenLM/qwen-code | — | #qwen-code-licence |
| Pricing model | BYOK tokens only | Inferred | 2026-01-15 | — | The free daily quota is a vendor-provided allowance on a Qwen account rather than your key — the same shape as Gemini CLI's. It stays encoded as BYOK because there is no paid seat behind it that we can name; above the quota you bring a key. Gemini CLI is encoded a tier lower precisely because it does sell a seat. | #qwen-code-pricing_model |
| Entry price | $0 /seat/mo | Inferred | 2026-01-15 | — | — | #qwen-code-entry_price |
| Token markup | ○ | Inferred | — | — | — | #qwen-code-gateway_markup |
| GitHub stars | 13,000 | Community-reported | — | — | Rounded, moderate confidence. | #qwen-code-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #qwen-code-terminal_bench |
| Bench model | — | Unknown | — | — | — | #qwen-code-terminal_bench_model |
| Positioning | A command-line coding agent tuned for the Qwen3-Coder models. | Vendor-claimed | — | https://qwenlm.github.io/qwen-code-docs/ | — | #qwen-code-positioning |
| First release | 2025-07-01 | Community-reported | — | — | Approximate. | #qwen-code-first_release |

**Verdict.** Forking Gemini CLI was the right call — it inherits a mature harness for free and spends its effort on model integration. The clearest route to strong open-weight models in an agent loop, and the free quota makes daily use viable outside US and EU price brackets.

**Pick it when**

- Running open-weight coding models without building a harness
- Regions or budgets where frontier API pricing is the blocker
- Air-gapped or self-hosted inference behind an OpenAI-compatible endpoint

### Grok Build {#grok-build}

xAI's coding harness, launched July 2026 — on this page but not yet verified.

|  |  |
| --- | --- |
| Site | https://x.ai |
| Company | xAI |
| Open source | No |
| Profile | https://toolweight.dev/tools/grok-build |
| Score (default weights) | 66.5 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | — | Unknown | — | — | — | #grok-build-surface |
| Default model | — | Unknown | — | — | — | #grok-build-default_model |
| Model breadth | — | Unknown | — | — | — | #grok-build-model_breadth |
| Repo indexing | — | Unknown | — | — | — | #grok-build-repo_indexing |
| Plan mode | — | Unknown | — | — | — | #grok-build-plan_mode |
| Checkpoint & undo | — | Unknown | — | — | — | #grok-build-checkpointing |
| Headless / CI | — | Unknown | — | — | — | #grok-build-headless_ci |
| Local models | — | Unknown | — | — | — | #grok-build-local_models |
| Where it stops | — | Unknown | — | — | Not scored until we have run it. Launch-post claims are not evidence for this field. | #grok-build-stops_at |
| MCP | — | Unknown | — | — | — | #grok-build-mcp_support |
| Subagents | — | Unknown | — | — | — | #grok-build-subagents |
| Hooks | — | Unknown | — | — | — | #grok-build-hooks |
| Skills / commands | — | Unknown | — | — | — | #grok-build-skills_commands |
| Background agents | — | Unknown | — | — | — | #grok-build-background_agents |
| Opens PRs | — | Unknown | — | — | — | #grok-build-pr_authoring |
| Permissions | — | Unknown | — | — | — | #grok-build-permission_model |
| BYOK | — | Unknown | — | — | — | #grok-build-byok |
| Licence | — | Unknown | — | — | — | #grok-build-licence |
| Pricing model | — | Unknown | — | — | — | #grok-build-pricing_model |
| Entry price | — | Unknown | — | — | — | #grok-build-entry_price |
| Token markup | — | Unknown | — | — | — | #grok-build-gateway_markup |
| GitHub stars | — | Unknown | — | — | — | #grok-build-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #grok-build-terminal_bench |
| Bench model | — | Unknown | — | — | — | #grok-build-terminal_bench_model |
| Positioning | — | Unknown | — | — | — | #grok-build-positioning |
| First release | 2026-07-01 | Community-reported | — | — | July 2026 per public announcements; we have not verified the exact date. | #grok-build-first_release |

**Verdict.** Listed because omitting it would misrepresent the roster, scored nowhere because we have not run it. Check back at the next verification pass; until then, read the blank row as missing evidence rather than a poor result.

**Pick it when**

- Nothing we can responsibly recommend yet

### Cline {#cline}

Open-source VS Code and JetBrains agent built around an explicit plan/act split.

|  |  |
| --- | --- |
| Site | https://cline.bot |
| Docs | https://docs.cline.bot |
| Repo | https://github.com/cline/cline |
| Company | Cline |
| Founded | 2024 |
| Open source | Yes (Apache-2.0) |
| Profile | https://toolweight.dev/tools/cline |
| Score (default weights) | 64.8 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | IDE extension, CLI | Vendor-claimed | 2026-01-15 | https://docs.cline.bot | VS Code and JetBrains; a CLI arrived in late 2025. | #cline-surface |
| Default model | None — you pick a provider at setup | Inferred | 2026-01-15 | — | — | #cline-default_model |
| Model breadth | any provider / router | Vendor-claimed | 2026-01-15 | https://docs.cline.bot/provider-config/ | — | #cline-model_breadth |
| Repo indexing | agentic grep | Community-reported | — | — | Reads files on demand with a tree-sitter-assisted overview; no persistent vector index. | #cline-repo_indexing |
| Plan mode | ● | Inferred | 2026-01-15 | — | The Plan/Act split is the product's defining feature. | #cline-plan_mode |
| Checkpoint & undo | ● | Inferred | 2026-01-15 | — | Per-message workspace snapshots you can restore. | #cline-checkpointing |
| Headless / CI | ◐ | Community-reported | — | — | The CLI enables scripted use; CI ergonomics are less proven than Claude Code's or Codex's. | #cline-headless_ci |
| Local models | ● | Inferred | 2026-01-15 | — | — | #cline-local_models |
| Where it stops | 3 | Inferred | — | — | Edits files and runs terminal commands with approval; no first-class PR path. | #cline-stops_at |
| MCP | ● | Inferred | 2026-01-15 | — | Includes a marketplace, and can build a server for you on request. | #cline-mcp_support |
| Subagents | ○ | Community-reported | — | — | — | #cline-subagents |
| Hooks | ○ | Community-reported | — | — | — | #cline-hooks |
| Skills / commands | ● | Community-reported | — | — | Workflows and rules files checked into the repo. | #cline-skills_commands |
| Background agents | ○ | Inferred | — | — | — | #cline-background_agents |
| Opens PRs | ○ | Inferred | — | — | — | #cline-pr_authoring |
| Permissions | granular allowlist | Inferred | 2026-01-15 | — | Per-action auto-approve with a configurable ceiling; no OS sandbox. | #cline-permission_model |
| BYOK | ● | Inferred | 2026-01-15 | — | — | #cline-byok |
| Licence | Apache-2.0 | Vendor-claimed | 2026-01-15 | https://github.com/cline/cline | — | #cline-licence |
| Pricing model | BYOK tokens only | Inferred | 2026-01-15 | — | — | #cline-pricing_model |
| Entry price | $0 /seat/mo | Inferred | 2026-01-15 | — | — | #cline-entry_price |
| Token markup | ○ | Community-reported | — | — | BYOK at provider list is the default path. The optional Cline account is publicly positioned as pass-through pricing; we have not audited it, and the grade does not depend on that audit — an optional first-party gateway does not move this cell for Cline, opencode, Zed or Kilo Code. | #cline-gateway_markup |
| GitHub stars | 50,000 | Community-reported | — | — | Rounded. | #cline-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #cline-terminal_bench |
| Bench model | — | Unknown | — | — | — | #cline-terminal_bench_model |
| Positioning | Autonomous coding agent in your IDE, with your API key. | Vendor-claimed | — | https://cline.bot | — | #cline-positioning |
| First release | 2024-07-01 | Community-reported | — | — | Approximate; originally released as Claude Dev. | #cline-first_release |

**Verdict.** The plan/act split remains the clearest interaction model in the category — you approve an approach, not a diff. It is the safest default for VS Code teams who want BYOK, but it stays inside the editor: no subagents, no hooks, no PR path.

**Pick it when**

- VS Code and JetBrains teams who want BYOK without leaving the IDE
- Reviewers who want to approve the plan before any file changes
- MCP-heavy setups that benefit from the server marketplace

### DIY harness {#diy-harness}

Your own loop over a model API with an agent SDK — the build-it-yourself reference point.

|  |  |
| --- | --- |
| Site | https://toolweight.dev/compare/coding-agents |
| Company | DIY harness |
| Open source | Yes |
| Profile | https://toolweight.dev/tools/diy-harness |
| Score (default weights) | 59.8 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | CLI | Inferred | — | — | Whatever you build it as. | #diy-harness-surface |
| Default model | Whichever you wire up | Inferred | — | — | — | #diy-harness-default_model |
| Model breadth | any provider / router | Inferred | — | — | — | #diy-harness-model_breadth |
| Repo indexing | manual context only | Inferred | — | — | Until you build something better, which is most of the work. | #diy-harness-repo_indexing |
| Plan mode | ○ | Inferred | — | — | — | #diy-harness-plan_mode |
| Checkpoint & undo | ○ | Inferred | — | — | — | #diy-harness-checkpointing |
| Headless / CI | ● | Inferred | — | — | It is a script; headless is the default. | #diy-harness-headless_ci |
| Local models | ● | Inferred | — | — | — | #diy-harness-local_models |
| Where it stops | — | Unknown | — | — | There is no ceiling — it goes exactly as far as you build, and you own every rung. Not scored, because ranking your own code against shipped products would be meaningless. | #diy-harness-stops_at |
| MCP | ◐ | Inferred | — | — | Most agent SDKs ship an MCP client. | #diy-harness-mcp_support |
| Subagents | ◐ | Inferred | — | — | — | #diy-harness-subagents |
| Hooks | ● | Inferred | — | — | It is your code; every line is a hook. | #diy-harness-hooks |
| Skills / commands | ○ | Inferred | — | — | — | #diy-harness-skills_commands |
| Background agents | ◐ | Inferred | — | — | — | #diy-harness-background_agents |
| Opens PRs | ◐ | Inferred | — | — | — | #diy-harness-pr_authoring |
| Permissions | applies everything | Inferred | — | — | Unless you build a permission layer, which almost nobody does properly. | #diy-harness-permission_model |
| BYOK | ● | Inferred | — | — | — | #diy-harness-byok |
| Licence | — | Unknown | — | — | Yours. | #diy-harness-licence |
| Pricing model | BYOK tokens only | Inferred | — | — | — | #diy-harness-pricing_model |
| Entry price | $0 /seat/mo | Inferred | — | — | Zero licence cost, non-zero engineering cost — budget a fortnight before it is useful and a quarter before it is safe. | #diy-harness-entry_price |
| Token markup | ○ | Inferred | — | — | — | #diy-harness-gateway_markup |
| GitHub stars | — | Unknown | — | — | — | #diy-harness-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #diy-harness-terminal_bench |
| Bench model | — | Unknown | — | — | — | #diy-harness-terminal_bench_model |
| Positioning | The reference point: what you get for a few hundred lines and an API key. | Inferred | — | — | — | #diy-harness-positioning |
| First release | — | Unknown | — | — | — | #diy-harness-first_release |

**Verdict.** Right for narrow, repeated jobs — a codemod runner, a test-backfill bot — where a general harness wastes most of its context rediscovering conventions you could have hardcoded. Wrong for open-ended engineering, where you will spend a quarter rebuilding permissions, checkpointing and context management worse than the incumbents.

**Pick it when**

- One repeated task with a known shape and a tight tool surface
- Environments where no third-party harness can be installed
- Understanding what the commercial harnesses are actually doing for you

### Zed {#zed}

GPL-licensed Rust editor whose agent panel can host Claude Code, Codex and Gemini CLI.

|  |  |
| --- | --- |
| Site | https://zed.dev |
| Docs | https://zed.dev/docs/ai/overview |
| Repo | https://github.com/zed-industries/zed |
| Company | Zed |
| Founded | 2021 |
| Open source | Yes (GPL-3.0) |
| Profile | https://toolweight.dev/tools/zed |
| Score (default weights) | 58.0 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | standalone editor | Vendor-claimed | 2026-01-15 | https://zed.dev/docs/ai/overview | — | #zed-surface |
| Default model | None — configure a provider, or sign in for hosted models | Inferred | 2026-01-15 | — | — | #zed-default_model |
| Model breadth | any provider / router | Vendor-claimed | 2026-01-15 | https://zed.dev/docs/ai/llm-providers | — | #zed-model_breadth |
| Repo indexing | AST / LSP repo map | Inferred | — | — | The editor's own LSP and tree-sitter infrastructure feeds the agent panel. | #zed-repo_indexing |
| Plan mode | ◐ | Community-reported | — | — | The agent panel's read-only Ask profile discusses and plans without touching files, but moving to a writing profile is a mode switch rather than approving a plan the agent then executes. Graded like Aider's architect mode: planning without an approval gate. | #zed-plan_mode |
| Checkpoint & undo | ● | Community-reported | — | — | Agent edits appear as reviewable, revertable changes in the editor. | #zed-checkpointing |
| Headless / CI | ○ | Inferred | — | — | — | #zed-headless_ci |
| Local models | ● | Inferred | 2026-01-15 | — | — | #zed-local_models |
| Where it stops | 3 | Inferred | — | — | The agent panel has a terminal tool, so it edits and runs commands. External agents hosted over ACP go further on their own terms. | #zed-stops_at |
| MCP | ● | Inferred | 2026-01-15 | — | Context servers are MCP servers. | #zed-mcp_support |
| Subagents | ○ | Inferred | — | — | No child-agent primitive. The Agent Client Protocol lets Zed host another agent's whole loop, which is a different and genuinely useful thing, but it is not Zed spawning children and collecting their results — so it belongs in the verdict rather than in this cell. | #zed-subagents |
| Hooks | ○ | Inferred | — | — | — | #zed-hooks |
| Skills / commands | ◐ | Community-reported | — | — | Rules files and slash commands. | #zed-skills_commands |
| Background agents | ○ | Inferred | — | — | — | #zed-background_agents |
| Opens PRs | ○ | Inferred | — | — | — | #zed-pr_authoring |
| Permissions | granular allowlist | Inferred | — | — | Per-tool confirmation in the agent panel; no OS sandbox. | #zed-permission_model |
| BYOK | ● | Inferred | 2026-01-15 | — | — | #zed-byok |
| Licence | GPL-3.0 | Vendor-claimed | 2026-01-15 | https://github.com/zed-industries/zed | — | #zed-licence |
| Pricing model | BYOK tokens only | Inferred | 2026-01-15 | — | Free with your own key; a paid tier covers hosted models. | #zed-pricing_model |
| Entry price | $0 /seat/mo | Inferred | 2026-01-15 | — | — | #zed-entry_price |
| Token markup | ○ | Inferred | — | — | BYOK at provider list is the default path, not a downgrade. The paid hosted-model tier is the same optional first-party arrangement opencode, Cline and Kilo Code have, and all four are graded the same. | #zed-gateway_markup |
| GitHub stars | 62,000 | Community-reported | — | — | Rounded. | #zed-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #zed-terminal_bench |
| Bench model | — | Unknown | — | — | — | #zed-terminal_bench_model |
| Positioning | The editor for humans and AI, written in Rust. | Vendor-claimed | — | https://zed.dev | — | #zed-positioning |
| First release | 2023-03-22 | Community-reported | — | — | Editor launch; the agent panel arrived in 2025. | #zed-first_release |

**Verdict.** The hedge in this category: a fast GPL editor that hosts other people's agents over ACP, so your harness choice stays reversible while you keep a proper review surface. Weak as an agent in its own right — a read-only Ask profile rather than a real plan-and-approve gate, no subagents, no PR path, no headless mode.

**Pick it when**

- Driving Claude Code or Gemini CLI from an editor instead of a terminal
- Teams who want a genuinely open-source editor with local-model support

### Aider {#aider}

Minimal terminal pair-programmer with a tree-sitter repo map and automatic git commits.

|  |  |
| --- | --- |
| Site | https://aider.chat |
| Docs | https://aider.chat/docs/ |
| Repo | https://github.com/Aider-AI/aider |
| Company | Aider |
| Founded | 2023 |
| Open source | Yes (Apache-2.0) |
| Profile | https://toolweight.dev/tools/aider |
| Score (default weights) | 57.0 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | CLI | Vendor-claimed | 2026-01-15 | https://aider.chat/docs/ | — | #aider-surface |
| Default model | None — set by --model or environment keys | Inferred | 2026-01-15 | — | — | #aider-default_model |
| Model breadth | any provider / router | Vendor-claimed | 2026-01-15 | https://aider.chat/docs/llms.html | — | #aider-model_breadth |
| Repo indexing | AST / LSP repo map | Vendor-claimed | 2026-01-15 | https://aider.chat/docs/repomap.html | The tree-sitter repo map is the original good idea in this category, and still one of the cheapest ways to give a model a whole-codebase view. | #aider-repo_indexing |
| Plan mode | ◐ | Inferred | — | — | Architect mode splits a reasoning model from an editing model, but there is no approve-the-plan gate. | #aider-plan_mode |
| Checkpoint & undo | ● | Inferred | 2026-01-15 | — | Every accepted change is a git commit; /undo reverts it. | #aider-checkpointing |
| Headless / CI | ● | Inferred | 2026-01-15 | — | — | #aider-headless_ci |
| Local models | ● | Inferred | 2026-01-15 | — | — | #aider-local_models |
| Where it stops | 3 | Inferred | — | — | With --test-cmd and --lint it runs the loop and fixes failures, then commits. No PR path. | #aider-stops_at |
| MCP | ○ | Community-reported | — | — | Long-standing gap; the tool predates MCP and development has slowed. | #aider-mcp_support |
| Subagents | ○ | Community-reported | — | — | — | #aider-subagents |
| Hooks | ○ | Community-reported | — | — | — | #aider-hooks |
| Skills / commands | ◐ | Inferred | — | — | Conventions files and built-in slash commands, but no reusable custom commands. | #aider-skills_commands |
| Background agents | ○ | Inferred | — | — | — | #aider-background_agents |
| Opens PRs | ○ | Inferred | 2026-01-15 | — | — | #aider-pr_authoring |
| Permissions | prompts every action | Inferred | 2026-01-15 | — | Confirms edits and shell commands; --yes disables that entirely. No sandbox. | #aider-permission_model |
| BYOK | ● | Inferred | 2026-01-15 | — | — | #aider-byok |
| Licence | Apache-2.0 | Vendor-claimed | 2026-01-15 | https://github.com/Aider-AI/aider | — | #aider-licence |
| Pricing model | BYOK tokens only | Inferred | 2026-01-15 | — | — | #aider-pricing_model |
| Entry price | $0 /seat/mo | Inferred | 2026-01-15 | — | — | #aider-entry_price |
| Token markup | ○ | Inferred | 2026-01-15 | — | — | #aider-gateway_markup |
| GitHub stars | 37,000 | Community-reported | — | — | Rounded. | #aider-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #aider-terminal_bench |
| Bench model | — | Unknown | — | — | — | #aider-terminal_bench_model |
| Positioning | AI pair programming in your terminal. | Vendor-claimed | — | https://aider.chat | — | #aider-positioning |
| First release | 2023-05-01 | Community-reported | — | — | Approximate. | #aider-first_release |

**Verdict.** Still the most auditable harness here, and the repo map is a better idea than much of what replaced it — but the project has visibly slowed while the category sprinted past on MCP, subagents and sandboxing. Pick it for minimalism, not for keeping up.

**Pick it when**

- Scripted, repeatable edits where you want a git commit per change
- Local or unusual model endpoints other harnesses will not talk to
- Anyone who wants to read the whole harness in an afternoon

### Windsurf {#windsurf}

Agentic IDE built around Cascade, now owned by Cognition after a turbulent 2025.

|  |  |
| --- | --- |
| Site | https://windsurf.com |
| Company | Cognition |
| Founded | 2021 |
| Open source | No |
| Profile | https://toolweight.dev/tools/windsurf |
| Score (default weights) | 53.5 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | standalone editor, IDE extension | Vendor-claimed | 2026-01-15 | https://windsurf.com | — | #windsurf-surface |
| Default model | Windsurf's in-house SWE model, with frontier models selectable | Community-reported | — | — | — | #windsurf-default_model |
| Model breadth | multi-vendor | Inferred | 2026-01-15 | — | — | #windsurf-model_breadth |
| Repo indexing | embeddings index | Inferred | 2026-01-15 | — | Codeium's retrieval engine predates the agent and is the strongest inherited asset. | #windsurf-repo_indexing |
| Plan mode | ● | Community-reported | — | — | — | #windsurf-plan_mode |
| Checkpoint & undo | ● | Community-reported | — | — | — | #windsurf-checkpointing |
| Headless / CI | ○ | Inferred | — | — | — | #windsurf-headless_ci |
| Local models | ○ | Inferred | — | — | — | #windsurf-local_models |
| Where it stops | 3 | Inferred | — | — | Cascade edits and runs commands in the editor; PR involvement is review-side rather than authoring. | #windsurf-stops_at |
| MCP | ● | Inferred | 2026-01-15 | — | — | #windsurf-mcp_support |
| Subagents | — | Unknown | — | — | — | #windsurf-subagents |
| Hooks | — | Unknown | — | — | — | #windsurf-hooks |
| Skills / commands | ● | Community-reported | — | — | Rules and workflow files. | #windsurf-skills_commands |
| Background agents | ◐ | Community-reported | — | — | — | #windsurf-background_agents |
| Opens PRs | ◐ | Community-reported | — | — | Review-side integration is stronger than authoring. | #windsurf-pr_authoring |
| Permissions | granular allowlist | Inferred | — | — | Command allowlists inside the editor; no OS sandbox we could verify. | #windsurf-permission_model |
| BYOK | ◐ | Community-reported | — | — | Available on some plans and models, not as a general escape hatch. | #windsurf-byok |
| Licence | proprietary | Inferred | 2026-01-15 | — | — | #windsurf-licence |
| Pricing model | opaque credits | Vendor-claimed | 2026-01-15 | https://windsurf.com/pricing | Prompt credits; the credit-to-token conversion is vendor-defined. | #windsurf-pricing_model |
| Entry price | $15 /seat/mo | Vendor-claimed | 2026-01-15 | https://windsurf.com/pricing | — | #windsurf-entry_price |
| Token markup | ● | Inferred | — | — | Credits abstract over tokens; you cannot pay a provider directly at list. | #windsurf-gateway_markup |
| GitHub stars | — | Unknown | — | — | Closed source. | #windsurf-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #windsurf-terminal_bench |
| Bench model | — | Unknown | — | — | — | #windsurf-terminal_bench_model |
| Positioning | The agentic IDE where you and the agent stay in flow together. | Vendor-claimed | — | https://windsurf.com | — | #windsurf-positioning |
| First release | 2024-11-13 | Community-reported | — | — | Windsurf Editor launch; Codeium's plugins are older. | #windsurf-first_release |

**Verdict.** Cascade's editor awareness is genuinely good and the retrieval engine is mature, but the 2025 ownership churn — an aborted OpenAI deal, a Google licensing carve-out, then acquisition by Cognition — is a real continuity risk. Credit pricing makes monthly cost hard to forecast.

**Pick it when**

- Developers who want the agent tracking what they are editing, not just what they typed
- Teams already invested in Codeium's retrieval and enterprise deployment

### Devin {#devin}

Fully delegated cloud engineer: file a task in Slack or the web app, get a PR back.

|  |  |
| --- | --- |
| Site | https://devin.ai |
| Company | Cognition |
| Founded | 2023 |
| Funding | Series C+ |
| Open source | No |
| Profile | https://toolweight.dev/tools/devin |
| Score (default weights) | 48.9 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | web, cloud delegate | Vendor-claimed | 2026-01-15 | https://devin.ai | Web app plus Slack; there is no local client. | #devin-surface |
| Default model | Undisclosed — Cognition-hosted, including in-house SWE models | Community-reported | — | — | — | #devin-default_model |
| Model breadth | no model choice | Inferred | — | — | — | #devin-model_breadth |
| Repo indexing | hybrid index + agentic | Community-reported | — | — | Maintains its own repo understanding across sessions; the mechanism is not published. | #devin-repo_indexing |
| Plan mode | ● | Community-reported | — | — | Produces a plan you can edit before it starts. | #devin-plan_mode |
| Checkpoint & undo | ○ | Inferred | — | — | Work happens in its VM; your recourse is the pull request diff. | #devin-checkpointing |
| Headless / CI | ◐ | Community-reported | — | — | An API exists for dispatching sessions; that is delegation, not a CI binary. | #devin-headless_ci |
| Local models | ○ | Inferred | 2026-01-15 | — | — | #devin-local_models |
| Where it stops | 4 | Inferred | — | — | Opens a pull request and responds to review comments. Merging stays yours. | #devin-stops_at |
| MCP | — | Unknown | — | — | — | #devin-mcp_support |
| Subagents | ○ | Inferred | — | — | It runs several independent sessions in parallel, which is concurrency rather than delegation. This column asks whether the agent spawns child agents with their own context and collects their results, and parallel sessions do not report back into a parent. | #devin-subagents |
| Hooks | ○ | Inferred | — | — | — | #devin-hooks |
| Skills / commands | ◐ | Community-reported | — | — | Persistent knowledge and playbooks rather than repo-checked commands. | #devin-skills_commands |
| Background agents | ● | Inferred | 2026-01-15 | — | Everything is a background agent — that is the product. | #devin-background_agents |
| Opens PRs | ● | Inferred | 2026-01-15 | — | — | #devin-pr_authoring |
| Permissions | vendor-hosted sandbox | Inferred | 2026-01-15 | — | Its own VM with shell, editor and browser: strong isolation from your machine, no visibility into the boundary. | #devin-permission_model |
| BYOK | ○ | Inferred | 2026-01-15 | — | — | #devin-byok |
| Licence | proprietary | Inferred | 2026-01-15 | — | — | #devin-licence |
| Pricing model | opaque credits | Vendor-claimed | 2026-01-15 | https://devin.ai/pricing | Priced in ACUs; the tokens-per-ACU relationship is not published. | #devin-pricing_model |
| Entry price | $20 /seat/mo | Vendor-claimed | 2026-01-15 | https://devin.ai/pricing | Entry plan; real usage on non-trivial tasks runs well above this. | #devin-entry_price |
| Token markup | ● | Inferred | — | — | — | #devin-gateway_markup |
| GitHub stars | — | Unknown | — | — | Closed source. | #devin-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #devin-terminal_bench |
| Bench model | — | Unknown | — | — | — | #devin-terminal_bench_model |
| Positioning | An AI software engineer you delegate tickets to. | Vendor-claimed | — | https://devin.ai | — | #devin-positioning |
| First release | 2024-03-12 | Community-reported | — | — | Announced March 2024; general availability December 2024. | #devin-first_release |

**Verdict.** The clearest expression of full delegation: no local client, no model picker, a pull request or nothing. A real fit for well-specified tickets on a repo with good tests, and a poor one for anything exploratory. ACU pricing means you learn the cost afterwards.

**Pick it when**

- Backlogs of small, well-specified tickets nobody wants to pick up
- Teams who want work dispatched from Slack rather than a terminal

### Amp {#amp}

Sourcegraph's opinionated agent with no model picker and an ad-supported free tier.

|  |  |
| --- | --- |
| Site | https://ampcode.com |
| Company | Sourcegraph |
| Open source | No |
| Profile | https://toolweight.dev/tools/amp |
| Score (default weights) | 44.2 / 100 |

| Field | Value | Confidence | Verified | Source | Note | Anchor |
| --- | --- | --- | --- | --- | --- | --- |
| Surface | CLI, IDE extension, web | Vendor-claimed | 2026-01-15 | https://ampcode.com | — | #amp-surface |
| Default model | Chosen by Amp — there is no model picker | Vendor-claimed | 2026-01-15 | https://ampcode.com | Deliberate: Sourcegraph moves everyone to whatever is currently best. | #amp-default_model |
| Model breadth | no model choice | Inferred | 2026-01-15 | — | Multiple vendors are used internally; none are user-selectable. | #amp-model_breadth |
| Repo indexing | agentic grep | Community-reported | — | — | — | #amp-repo_indexing |
| Plan mode | ◐ | Community-reported | — | — | — | #amp-plan_mode |
| Checkpoint & undo | ◐ | Community-reported | — | — | — | #amp-checkpointing |
| Headless / CI | ● | Community-reported | — | — | The CLI supports scripted runs. | #amp-headless_ci |
| Local models | ○ | Inferred | 2026-01-15 | — | — | #amp-local_models |
| Where it stops | 3 | Inferred | — | — | Edits and runs commands locally; no first-class PR path. | #amp-stops_at |
| MCP | ● | Inferred | 2026-01-15 | — | — | #amp-mcp_support |
| Subagents | ● | Inferred | 2026-01-15 | — | Includes a dedicated higher-reasoning subagent for hard problems. | #amp-subagents |
| Hooks | — | Unknown | — | — | — | #amp-hooks |
| Skills / commands | ◐ | Community-reported | — | — | — | #amp-skills_commands |
| Background agents | ◐ | Community-reported | — | — | — | #amp-background_agents |
| Opens PRs | ○ | Inferred | — | — | — | #amp-pr_authoring |
| Permissions | granular allowlist | Inferred | — | — | Command approval settings; no OS sandbox. | #amp-permission_model |
| BYOK | ○ | Inferred | 2026-01-15 | — | — | #amp-byok |
| Licence | proprietary | Inferred | 2026-01-15 | — | — | #amp-licence |
| Pricing model | opaque credits | Vendor-claimed | — | https://ampcode.com | Paid use is pay-as-you-go credits with no BYOK escape hatch, which is how you are billed once you are working, so that is what this cell encodes. The ad-supported free tier is real and genuinely novel, but it is the entry ramp rather than the billing model. Harnesses that do offer BYOK — opencode, Cline, Zed, Kilo Code — are encoded as BYOK for the same reason. | #amp-pricing_model |
| Entry price | $0 /seat/mo | Inferred | 2026-01-15 | — | No seat fee — you top up credits, or use the ad-supported tier. | #amp-entry_price |
| Token markup | ● | Inferred | — | — | All tokens are resold; there is no BYOK escape hatch. | #amp-gateway_markup |
| GitHub stars | — | Unknown | — | — | Closed source. | #amp-github_stars |
| Terminal-Bench | — | Unknown | — | — | — | #amp-terminal_bench |
| Bench model | — | Unknown | — | — | — | #amp-terminal_bench_model |
| Positioning | An agentic coding tool that always runs the best model, chosen for you. | Vendor-claimed | — | https://ampcode.com | — | #amp-positioning |
| First release | 2025-05-01 | Inferred | — | — | Approximate. | #amp-first_release |

**Verdict.** Removing the model picker is a defensible product decision — most people choose badly and then blame the harness — but it means you control neither cost nor provider, and an ad-supported tier is an odd thing to sit next to a proprietary codebase. Subagent quality is genuinely good.

**Pick it when**

- Teams who would rather not run a model-selection debate every quarter
- Sourcegraph shops wanting shared, linkable agent threads

## Methodology

Every cell here comes from vendor documentation, the tool's own repository, or hands-on use, and each carries its provenance. Where we are reading a pricing page we mark it vendor-claimed with the URL. Where we are inferring from adjacent behaviour, or making a judgement call like a score, we mark it inferred. Where the fact is widely reported by users but not documented, it is community. Where we do not know — and in a category moving this fast that is often — the cell is null and renders as a dash rather than a guess. Closed-source harnesses have null GitHub stars because no comparable repository exists, not because nobody stars them.

The verify cadence for this page is fourteen days, and the dated cells below currently sit well outside it: the last full pass was 15 January 2026. We publish the dates rather than refresh them, because a date is a claim about work someone did, and moving one without redoing the check is the cheapest lie a comparison site can tell. Read every date as the last time a human actually looked.

The killer field, where does it stop?, is scored on a fixed five-rung ladder and always at the highest rung the tool reaches out of the box: rung 4 requires a first-class path to a pull request — a built-in command, a vendor-published GitHub App with its own identity, or a hosted runner — not merely the ability to invoke gh because you asked it to run a shell command. Any harness with shell access can be scripted up a rung; that is a property of your scripts, not the product. A vendor-published Action you wire into your own workflows, with no App identity behind it, is graded partial rather than a full rung, and that rule is applied to first-party and third-party harnesses alike.

The Terminal-Bench column ships empty, and we would rather that than the alternative. The published figures we could trace either name a model and a benchmark version without naming a harness, or were produced by the benchmark's own reference agent — which makes them evidence about the model, not about anybody's harness, and importing them into a harness column is exactly the laundering this page exists to argue against. Terminal-Bench 1.0 results are also superseded by 2.0 and not comparable to it, and the gaps between the top entries were smaller than one task on an eighty-task benchmark, which is not a ranking. An empty column is the honest state of this evidence until we run the benchmark ourselves against pinned harness versions.

## FAQ

### Does the harness matter more than the model?

Below the frontier, no — a weak model fails regardless of harness. At the frontier, yes. Once the model can do the task, completion rate is decided by context strategy, tool design, how failures are fed back, and whether the loop stops cleanly. The same model in Claude Code and in a bare chat window are not the same product, which is why agent = model + harness is the only useful framing.

### Which coding agents can open a pull request on their own?

Claude Code (its hosted cloud sessions, and the Claude GitHub App installed by /install-github-app), opencode (the opencode-agent GitHub App, which answers a mention on an issue and comes back with a branch and a PR), Codex CLI's cloud tasks, Cursor's background agents, GitHub Copilot's coding agent, and Devin. That is rung 4 on our ladder. Gemini CLI has an official Action but no App, and its documented workflows lean on review and triage rather than authoring, so we grade it partial. Everything else — Cline, Aider, Goose, Zed, Qwen Code, Kilo Code — stops at editing and running tests on your machine.

### Can any of them merge and deploy without a human?

Not out of the box, and treat any claim otherwise as a description of your own CI. Copilot's agent is explicitly forbidden from approving its own pull request. Devin stops at review. Claude Code and Codex do whatever their permissions allow, so with a privileged token and approvals disabled they will merge — but that is you removing the gate, not the product shipping rung 5.

### What is the cheapest way to run a coding agent all day?

Either a flat subscription with soft limits (Claude Code on a Max plan, Codex on a ChatGPT Pro plan) or a free harness with your own key: opencode, Aider, Goose, Cline, Zed. Gemini CLI and Qwen Code both have genuinely usable free tiers tied to a personal account. Avoid credit-based pricing if you need to forecast, because the conversion between a credit and a token is the vendor's to change.

### Are Terminal-Bench scores comparable between harnesses?

Only when the harness version, the model and the benchmark version are all stated — and that column is currently empty on this page, because nothing we could trace met the bar. Terminal-Bench 2.0 results are not comparable to 1.0, a harness can move several points on the same model between releases, and a figure produced by the benchmark's own reference agent is a model result that says nothing about any harness. Differences of half a point on an eighty-task benchmark are also a fraction of one task, not a ranking. We would rather show a blank column than sort a table on that.

### Is it safe to let an agent run shell commands unattended?

Only inside a sandbox with a real filesystem and network boundary. Codex CLI (Seatbelt on macOS, Landlock on Linux) and Claude Code ship OS-level sandboxing; Gemini CLI and Goose ship one too, but off by default, so check the cell note before you assume it is on; Devin and Copilot's coding agent run in vendor-hosted VMs instead, which we rank level with a local kernel sandbox rather than below it. Most IDE extensions offer only an auto-approve allowlist, which is a convenience feature rather than a security boundary. For anything unattended, run it in a container or a sandbox provider.

### Should my team standardise on one harness?

Standardise the repo-level configuration, not the harness. AGENTS.md, MCP server definitions and a documented test command are portable across nearly everything on this page; skills, hooks and rules files mostly are not. That way an engineer who prefers Zed and one who lives in Claude Code get the same project context, and swapping harnesses next quarter costs a config change rather than a migration.

## Recent changes

| Date | Kind | Event | Tools | Source |
| --- | --- | --- | --- | --- |
| 2025-01-28 | launch | **Block open-sources Goose** — Block released Goose as an Apache-2.0 agent built around MCP from the start, with extensions implemented as MCP servers rather than a bespoke plugin API. It was among the first harnesses to treat the protocol as its entire tool surface. | goose | https://github.com/block/goose |
| 2025-04-16 | launch | **OpenAI open-sources Codex CLI** — Codex CLI shipped as an Apache-2.0 local agent, later rewritten in Rust with OS-level sandboxing — Seatbelt on macOS, Landlock on Linux. It remains the strongest containment story of any local harness on this page. | codex-cli | https://github.com/openai/codex |
| 2025-06-25 | launch | **Gemini CLI launches with a free daily quota** — Google shipped an Apache-2.0 terminal agent with a free tier unlocked by a personal Google account and no card. It reset the floor for what a coding agent costs, and became the base Qwen Code forked a month later. | gemini-cli, qwen-code | https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/ |
| 2025-07-14 | funding | **Cognition acquires Windsurf after the OpenAI deal collapses** — An OpenAI acquisition fell through, Google licensed the technology and hired the leadership, and Cognition bought what remained. Windsurf and Devin ended up under one owner inside a fortnight — the sharpest reminder that harness vendors are not stable ground. | windsurf, devin | — |
| 2025-10-28 | launch | **GitHub announces Agent HQ** — GitHub reframed Copilot as a control plane: a mission-control surface in github.com for dispatching Copilot's own coding agent alongside third-party agents including Claude Code and Codex, all running under bot identities inside existing branch protections. | github-copilot, claude-code, codex-cli, devin | https://github.blog/ |
| 2026-07-01 | launch | **Grok Build appears** — xAI entered the category in July 2026. We have not evaluated it and have deliberately left its row blank rather than restate launch claims. It is the only tool to join this roster since the last full verification pass in January 2026, and the only launch our own dates place inside the preceding twelve months — so treat the 'a new entrant every quarter' framing you will read elsewhere, including in earlier versions of this page, as unsupported by anything we have recorded. | grok-build | — |

## Sources

| Source | Last verified |
| --- | --- |
| https://docs.claude.com/en/docs/claude-code/overview | 2026-01-15 |
| https://docs.claude.com/en/docs/claude-code/third-party-integrations | — |
| https://docs.claude.com/en/docs/claude-code/sdk | 2026-01-15 |
| https://docs.claude.com/en/docs/claude-code/mcp | 2026-01-15 |
| https://docs.claude.com/en/docs/claude-code/sub-agents | 2026-01-15 |
| https://docs.claude.com/en/docs/claude-code/hooks | 2026-01-15 |
| https://docs.claude.com/en/docs/claude-code/slash-commands | 2026-01-15 |
| https://code.claude.com/docs/en/claude-code-on-the-web | — |
| https://code.claude.com/docs/en/github-actions | — |
| https://docs.claude.com/en/docs/claude-code/iam | 2026-01-15 |
| https://www.anthropic.com/pricing | 2026-01-15 |
| https://claude.com/product/claude-code | — |
| https://developers.openai.com/codex | 2026-01-15 |
| https://github.com/openai/codex/blob/main/docs/config.md | 2026-01-15 |
| https://developers.openai.com/codex/cli | 2026-01-15 |
| https://github.com/openai/codex | 2026-01-15 |
| https://openai.com/chatgpt/pricing/ | 2026-01-15 |
| https://github.com/google-gemini/gemini-cli | 2026-01-15 |
| https://github.com/google-github-actions/run-gemini-cli | — |
| https://google-gemini.github.io/gemini-cli/ | — |
| https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/ | — |
| https://opencode.ai/docs/ | 2026-01-15 |
| https://opencode.ai/docs/providers/ | 2026-01-15 |
| https://opencode.ai/docs/github/ | — |
| https://opencode.ai/docs/permissions/ | 2026-01-15 |
| https://github.com/sst/opencode | 2026-01-15 |
| https://opencode.ai | — |
| https://github.com/Kilo-Org/kilocode | — |
| https://kilocode.ai | — |
| https://docs.cline.bot | 2026-01-15 |
| https://docs.cline.bot/provider-config/ | 2026-01-15 |
| https://github.com/cline/cline | 2026-01-15 |
| https://cline.bot | — |
| https://docs.cursor.com | 2026-01-15 |
| https://docs.cursor.com/context/codebase-indexing | 2026-01-15 |
| https://cursor.com/pricing | 2026-01-15 |
| https://cursor.com | — |
| https://windsurf.com | 2026-01-15 |
| https://windsurf.com/pricing | 2026-01-15 |
| https://aider.chat/docs/ | 2026-01-15 |
| https://aider.chat/docs/llms.html | 2026-01-15 |
| https://aider.chat/docs/repomap.html | 2026-01-15 |
| https://github.com/Aider-AI/aider | 2026-01-15 |
| https://aider.chat | — |
| https://devin.ai | 2026-01-15 |
| https://devin.ai/pricing | 2026-01-15 |
| https://ampcode.com | 2026-01-15 |
| https://zed.dev/docs/ai/overview | 2026-01-15 |
| https://zed.dev/docs/ai/llm-providers | 2026-01-15 |
| https://github.com/zed-industries/zed | 2026-01-15 |
| https://zed.dev | — |
| https://block.github.io/goose/docs/ | 2026-01-15 |
| https://block.github.io/goose/docs/getting-started/providers | 2026-01-15 |
| https://github.com/block/goose | 2026-01-15 |
| https://block.github.io/goose/ | — |
| https://docs.github.com/en/copilot | 2026-01-15 |
| https://code.visualstudio.com/docs/copilot/customization/language-models | — |
| https://docs.github.com/en/copilot/using-github-copilot/coding-agent | 2026-01-15 |
| https://github.com/features/copilot/plans | 2026-01-15 |
| https://github.com/features/copilot | — |
| https://github.com/QwenLM/qwen-code | 2026-01-15 |
| https://qwenlm.github.io/qwen-code-docs/ | — |

## Related comparisons

- [LLM APIs](https://toolweight.dev/compare/llm-apis) — Which frontier LLM API should I build on?
- [Sandbox providers](https://toolweight.dev/compare/sandbox-providers) — Which sandbox provider should I run untrusted or agent-generated code on?
- [Browser APIs](https://toolweight.dev/compare/browser-automation-apis) — Which hosted browser automation API should I use for AI agents and scraping?
- [Convex alternatives](https://toolweight.dev/compare/convex-alternatives) — What are the best alternatives to Convex, and how hard is each one to leave?

## Licence and attribution

Data from toolweight (https://toolweight.dev), licensed CC-BY-4.0.

- Licence: [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/)
- Canonical HTML: https://toolweight.dev/compare/coding-agents
- Machine-readable: https://toolweight.dev/compare/coding-agents.md · https://toolweight.dev/api/v1 · https://toolweight.dev/mcp
- toolweight takes no affiliate revenue and sells no placements. Corrections: https://toolweight.dev/suggest
