Comparison

Claude Code vs Relay

Anthropic calls Claude Code a harness too, and it is a good one. The difference is not persistence or autonomy — it is who supplies the model, and whether the thing that says "done" is a script or a model.

Facts checked against official docs on 2026-09-08

What Claude Code is

Claude Code is Anthropic’s agentic coding tool — in its own words, "the agentic harness around Claude: it provides the tools, context management, and execution environment that turn a language model into an agent". It runs in the terminal, VS Code, JetBrains, a desktop app and the browser, installs with one command, and is covered by a Claude subscription or Console account, with Bedrock, Claude Platform on AWS, Google Cloud and Microsoft Foundry as alternative providers. Background sessions started with `claude --bg` run under a supervisor that outlives the shell; file edits are snapshotted for `/rewind`; and the Agent SDK exposes the same loop as a library.

Pricing: Covered by a Claude plan rather than sold separately: Pro $17/mo on an annual subscription ($200 up front) or $20 monthly; Team Standard $20 per seat/month billed annually; Max listed only as "From $100 per month". Usage limits are shared between Claude and Claude Code. Alternatively billed per token through the API. As of 2026-09-08.

Side by side

Claude CodeRelay
Which modelsClaude. Every documented provider path — Console, Bedrock, AWS, Google Cloud, Foundry, an LLM gateway — serves Claude models.Any of 31 provider namespaces, or a Claude, Copilot or ChatGPT subscription by OAuth. Provider neutrality is the architecture, not a setting.
Survives a closed terminalYes. `claude --bg` runs under a supervisor that needs no terminal open, managed with agents/attach/logs/stop. Sessions are local: preserved across sleep, stopped by a shutdown. Agent view is labelled a research preview.Yes. Background agents with list, attach, stop, rename, send and schedule. Same limit: local to the machine.
What decides a run is finished`/goal` wraps a session-scoped Stop hook in which a small fast model — Haiku by default — judges the condition after each turn. A deterministic Stop hook can run your script and block the turn until it passes, but Claude Code overrides the hook and ends the turn after a bounded number of attempts.`--autonomous-gate <command>`: your shell command, its exit code, retried a number you set. No model is asked whether the work is done.
Undo below gitFile contents are snapshotted before every edit; `Esc Esc` or `/rewind` restores them, and checkpoints survive resuming a conversation.No equivalent. Git is the granularity.
Harness sourceProprietary — the repository LICENSE reserves all rights and hosts distribution, plugins and issues rather than the harness source.Also not published today. Relay ships an MIT LICENSE in the package and links no public repository, so treat licence parity as unestablished.
Price shapeBundled with the model subscription; one vendor, one bill, usage shared with chat.$0 local, $15 per signed-in developer for team features, inference billed separately by your provider.

Where Claude Code is the better tool

  • Surface reach on one engine: terminal, VS Code, JetBrains, desktop, web and mobile, sharing the same settings and MCP servers. Relay is a terminal program.
  • File-level undo. Snapshots before every edit and `/rewind` — Relay has nothing below git.
  • Compaction that reloads rather than truncates: on compact it re-reads recently touched files and re-injects skills, instead of summarising and moving on.
  • A graded permission model — a classifier reviewing actions, allowlisted tools, an explicit manual default — rather than a single autonomy switch with budgets.
  • Harness and model are designed together and ship on the same cadence. Relay’s bring-your-own-key stance forecloses that by construction.
  • Enterprise deployment as a solved path: Bedrock, AWS, Google Cloud, Foundry, managed org-wide settings.
  • Ecosystem depth: MCP, hooks, skills, plugins, subagents, an Agent SDK in two languages, and documentation that attributes behaviour changes to specific versions.

The honest take

Start with what is not true, because Relay’s own positioning has leaned on it: Claude Code does not die when you close the terminal, and it is not unverified. `claude --bg` outlives the shell, and Anthropic ships `/goal`, Stop hooks and verification subagents. Anthropic also documents wrapping Claude Code as a supported pattern, which makes "rival" the wrong word for most of this page. Two differences survive scrutiny. The first is the gate: `/goal` asks a model whether the condition is met, and a deterministic Stop hook is overridden after a bounded number of attempts — whereas a Relay completion gate is your command and its exit code, retried on your terms, with no model consulted. Anthropic’s own best-practices page states the underlying problem plainly: Claude stops when the work looks done, and without a check it can run tests it never verified. The second is provider neutrality, which is architectural rather than a preference: every Claude Code path leads to Claude. If you are happy on Claude and want the deepest, best-documented agent for it, use Claude Code — and if you want an exit-code gate or a different model next quarter, that is what a separate harness is for.

Sources

Run the harness yourself — one command, your own model key, no account: curl -fsSL https://relayevals.com/harness/install.sh | bash. Quickstart · What is a coding agent harness? · Pricing