Claude Code, opencode, Aider, Cline — how harnesses differ

They all read your project and edit code. The differences are in how much they ask, how much they spend, and where they live.

3 min · · Updated · harness · сравнение · инструменты

There are plenty of agent tools for development now, and their descriptions look alike: "reads your project, edits code, runs tests". The differences are real, they just show up after a week of use rather than in the README.

Where the tool lives

The first and most practical split: terminal or editor.

In the terminal: Claude Code, opencode, Aider, Goose. A separate program next to your editor. Upside — independent of what you write code in, and it works the same over ssh on a server. Downside — you see edits as a diff in a terminal rather than in a familiar interface.

In the editor: Cline, Roo Code, Continue, and the built-in JetBrains assistants. Changes appear directly in files, highlighted, revertible the usual way. Downside — you're tied to that editor.

The choice is a matter of taste, but it shapes the rest: terminal tools tend to be more aggressively autonomous, editor ones more cautious.

How much it asks

The second difference you feel immediately. Some agents show every change and wait for confirmation; others complete the task and present the result.

Both are sensible in context. On someone else's code or in production, per-step confirmation saves you. On your own project under git it turns into tedious clicking — you can always revert a commit.

Most tools let you tune the autonomy level. Spend ten minutes on it the first day: the default rarely matches what you actually want.

How much it spends

Here the differences are severalfold, and rarely discussed.

An agent sends the model the whole accumulated conversation on every step. Tools differ in how carefully they handle that: whether they trim old steps, compress command output, or haul the entire project into context just in case.

Practical advice: after the first day, look at spend broken down by model. If one task cost far more than you expected, the model is probably not the reason — the amount of context being shuttled back and forth is.

Which models it supports

Nearly all of the above work with any compatible API, and that is their main advantage over closed assistants. Setup is an address and a key:

bash
ANTHROPIC_BASE_URL=https://api.zukko.pro
ANTHROPIC_AUTH_TOKEN=fetch_your_key

For OpenAI-compatible tools, the address takes a /v1 suffix. The exception is opencode: it works through the AI SDK, which appends only /messages, so it needs https://api.zukko.pro/v1 even for the anthropic provider. A Zukko key works in both formats, so you can change tools without changing provider, and models without changing tools.

That matters more than it sounds. Being locked into one assistant with one model inside means you can neither try an alternative nor push the routine work onto something cheaper.

What to pick

If you live in the terminal and on servers, take a terminal agent. If all your work is in the editor and you want to see changes with your own eyes, take an extension.

Either way, try two or three properly, on a real task. A day of use tells you more than any comparison, because the differences here are mostly in how the process feels rather than in a feature list.

zukko

Pay 25×
less

for Claude Code & ChatGPT

One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.

Get API keyDocumentation

api.zukko.pro · fetch_*

Comparing agent harnesses for development · Zukko