A comparison of AI coding agents that refuses to rot.
No model versions. No prices. No context-window sizes. No benchmark tables. Yes, that is most of what a comparison usually contains. It is also the exact list of things that will be wrong by the time you finish reading one. We left them out on purpose, and there is a linter in CI that stops us putting them back in a weak moment.
What is left is the part that stays true for years: the shape of each tool.
Search for "best AI coding agent" and you get a ranked list. It is confident, it is three months stale, and it was written by someone who has never seen your codebase. Two of those three are fixable; the third is why rankings are the wrong shape for this question.
Every tool here has the same shape:
- It reads your project.
- It proposes changes.
- It applies them to real files.
- You review what happened.
That shape is the thing worth learning — once you have it, switching tools costs an afternoon rather than a month. So the comparison is not "which is best" but "which seat do you want to sit in".
| Shape | Where it lives | It suits you if |
|---|---|---|
| Terminal | a shell in your project folder | you want the agent next to git, tests, package managers and deploys |
| Editor | a panel inside your editor | you already live in an editor and want changes shown in place |
| Remote | someone else's machine | your work is well-specified up front and you review other people's code anyway |
This is ergonomics, not quality. It is also the single biggest predictor of whether the tool is still open on your machine in a month, or whether you went back to typing things yourself out of quiet spite.
Some setups show a plan and wait for approval before touching anything. Others go ahead and let you read the diff afterwards. Neither is correct in general. If you are new, more checkpoints teach you faster — you see the intent before you see the damage.
- Benchmark scores measure performance on standardised puzzles. Your codebase is not a standardised puzzle. Your codebase is a haunted house with a deadline.
- Which lab made it. They leapfrog each other roughly every time you finish forming an opinion.
- What is trending. The obvious winner of six months ago is today's coin flip, and today's obvious winner has read this sentence and is not worried, which is its own kind of warning.
Each page answers the same four questions: what shape it is, what workflow it pushes you toward, what transfers when you leave it, and where to read the numbers we deliberately do not repeat.
| Tool | Shape | Page |
|---|---|---|
| Claude Code | terminal | tools/claude-code.md |
| Codex | terminal + remote | tools/codex.md |
| Gemini CLI | terminal | tools/gemini-cli.md |
| Cursor | editor | tools/cursor.md |
| Grok | model family with coding surfaces | tools/grok.md |
| Kimi | model family with coding surfaces | tools/kimi.md |
matrix.md — the same tools as rows of workflow properties (can it run your tests? does it plan before editing? where do diffs appear?) rather than scores.
news.md — the one place dates are allowed, because a machine maintains it: the latest announcement from each vendor, refreshed weekly.
Reading is not the answer, and yes, we are aware of the irony of writing that here. Take one real task from a project you have — a bug fix, a small feature, a rename across a few files — and give it to two candidates with identical context. Then compare three things:
- Did it work?
- Did you understand what it did?
- How much did you have to correct it?
The second one is the sleeper. An agent that produces working code you cannot follow is worse for you, today, than one that produces clumsier code you can read — because the clumsy version is the one you can still fix at 2am when it matters.
Comparisons do not die with a bang. The vendor ships something, the page keeps confidently saying the old thing, and nobody notices for a year — least of all the author, who has moved on to a new repository with a new README.
So a GitHub Action runs weekly: checks every outbound link, reads each vendor's own feed,
and opens an issue when an announcement looks like it contradicts a page here. news.md is
regenerated by the same job. Nothing on this list depends on anyone remembering anything,
which is the only maintenance strategy with a track record.
A free, hands-on course on the same subject — including a browser terminal you can type into — lives at zero2vibecode.com. The decision framework above is distilled from its Which AI Coding Tool? track.
Corrections welcome — "you have described my tool wrongly", from someone who builds it, is the best kind of issue and gets fixed the same day. See CONTRIBUTING.md. The short version: a pull request adding a version number, a price or a benchmark gets declined on principle rather than on accuracy. It is not that we doubt your number. It is that your number has a shelf life and we are running a place without a fridge.
Prose: CC BY 4.0. Automation: MIT.