Pricing
- Pricing model
- BYOK tokens only
- Entry price (/seat/mo)
- $0 /seat/mo
- Token markup
- No
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.
Price is one group of 3 fields out of 26. Everything else — features, limits, portability, how well any of it works for agents — is on the full coding agents compared: claude code vs codex cli vs cursor vs the rest comparison.
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.
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.
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.
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.