The commit-per-change model
Most AI coding tools ask you to review a diff in their own interface and then trust that what was written matches what you approved. Aider skips that layer: the change lands in git, and git is the record.
The practical consequences are worth spelling out.
Nothing is ever silently overwritten. If a change was wrong, it is a revert, not an archaeology exercise.
You can work on a dirty tree safely. Aider commits its own changes separately from yours, so your uncommitted work is not entangled with its.
The history becomes granular. Ten instructions produce ten commits. Many teams squash before merging, and that is a normal workflow rather than a problem — but a reviewer looking at the branch will see the sequence.
Auto-commit can be disabled if this does not suit you, at which point you lose the main reason to choose Aider over its competitors.
The repository map, and what it is for
A codebase is larger than a model’s context window. Aider’s answer is a repository map: a condensed view of the project’s structure — files, and the key symbols each defines — built with tree-sitter and included in the prompt.
The model does not see every file, but it knows a `UserRepository` exists in a particular module and can ask for it. That is what lets it work sensibly in a large project while only being handed a handful of files in full.
The map is generated from static analysis, so it is accurate about structure and silent about behaviour. It tells the model where things are, not what they do — which is why explicitly adding the two or three files that matter still produces better results than relying on the map alone.
Adding files, which is the skill
You control context by adding files to the session. This is the main difference from Claude Code, which explores and decides for itself.
The trade is real in both directions. Choosing files yourself is more work and produces tighter, cheaper context; letting a tool decide is less work and costs more tokens on exploration. Neither is obviously right.
What matters practically: results degrade quietly when the relevant file is missing. The model will write something plausible that duplicates or contradicts code it could not see. Recognising which files matter for a change is a real skill, and Aider assumes you have it.
The test-fix loop
Aider can run a command after each change — typically a test suite or a linter — and feed failures back to the model to fix.
This converts “write this function” into a loop that terminates at passing tests rather than at plausible-looking code, and it is the single most valuable configuration in the tool. Code that compiles and passes is a far higher bar than code that reads correctly, and it catches a whole class of confident errors.
It also costs tokens on every iteration, so a flaky test suite is expensive as well as annoying.
Choosing and mixing models
Aider brings no model. You supply an API key — Anthropic, OpenAI, DeepSeek, others — or point it at a local endpoint such as Ollama.
It also supports an architect/editor split: one model reasons about the change and a second, cheaper model applies the edit. On large refactors this can cut cost meaningfully, because reasoning and mechanical editing have different requirements and the expensive model need not do both.
Local models work better here than in most agentic tools, because Aider’s loop is tighter and less context-hungry — but a small local model will still struggle with anything architectural.
What has to be true before you start
- Python, installed via pip or a package installer.
- A git repository. Aider expects one and will offer to create it; the entire review model depends on it.
- An API key, or a local endpoint. The cost is paid to the model provider, not to Aider.
- Comfort with a terminal. There is no graphical interface and none is planned.
- Optionally a `CONVENTIONS.md` added to the session, which is the closest equivalent to a persistent project instruction file.
Scope, and what it deliberately leaves alone
Aider edits code in an existing project. It is not an IDE, has no autocomplete, does not deploy anything, and does not build an application from a prompt — Bolt.new and Lovable occupy that space.
It is also not autonomous. It works one instruction at a time, shows what it changed, and expects you to be reading the diffs. That is a design position rather than a missing feature, and it is why some developers prefer it to agents that run for twenty minutes unsupervised.
The developers it suits
Developers who already live in a terminal and have an editor they will not abandon — Vim, Emacs, JetBrains, anything.
Refactoring and maintenance work particularly: renaming across files, adding tests, upgrading a dependency, applying a pattern consistently. Tasks where the intent is clear and the value is in not typing it.
Anyone who wants to choose their own model, control cost precisely, or run against a local endpoint.
And people who distrust opaque agents. Everything Aider does is visible in git, which is a genuinely different relationship with the tool.
What the git-first design buys
- Every change is a commit — review and rollback use tools you already know.
- Model independence, including local endpoints and cost-saving model splits.
- Editor independence. It integrates with nothing, which is why it works with everything.
- Test-driven loops that terminate at passing rather than plausible.
- The repository map, giving bearings in a large project cheaply.
- Apache 2.0 licensed, with cost limited to the API you choose.
Where it frustrates
- Terminal only, and no inline completion — which is what most people mean by an AI coding tool.
- You must add the right files. The map helps; missing context still degrades output quietly.
- Token cost rises with context, and a long session on a large repository is not free.
- Commit noise that many teams will want squashed.
- Quality tracks the model. Aider is a harness; a weaker model produces weaker code through it.
- Requires git, which rules out working in a directory that is not a repository.
Nothing to unwind
There is no proprietary state anywhere. Your code is in git, the commits are ordinary commits, and `CONVENTIONS.md` is plain markdown.
Uninstall it and the repository is indistinguishable from one where a person made those commits — which is, in a real sense, the point of the design.
Tools in the same shape
- Claude Code — also terminal-based and agentic, finds its own context, one provider only.
- Cline — a comparable agent inside VS Code, with plan/act separation.
- Cursor IDE — a full editor with the assistant built in, at the cost of switching editors.
- GitHub Copilot — inline completion in your existing IDE, a different interaction model entirely.
Compiled from Aider’s documentation and public sources. We have not hands-on tested this tool. Last reviewed 16 August 2026.