aider
**Aider** is an **open-source AI pair programming tool that runs in the terminal and directly reads and writes files in your Git repository** — enabling conversational coding where you describe changes in plain English ("Add a login form to app.py"), the AI reads the existing code, generates precise edits as diffs, and commits them with meaningful messages, making it the most practical open-source alternative to Cursor for developers who prefer terminal-based workflows.
**What Is Aider?**
- **Definition**: A command-line AI coding assistant that connects to your Git repo, understands your codebase context, and makes multi-file edits through natural language conversation — showing you exact diffs before applying changes.
- **Git-Native**: Aider is deeply integrated with Git — it reads your repo structure, understands file relationships through imports and references, and creates atomic commits with descriptive messages for every change.
- **Multi-Model Support**: Works with GPT-4, GPT-4o, Claude 3.5 Sonnet, Opus, local models via Ollama, and any OpenAI-compatible API — swap models with `aider --model claude-3.5-sonnet`.
- **Real-Time Editing**: Changes are applied immediately to your files — you can run tests, check the result, and continue the conversation with "that broke the login test, fix it."
**How Aider Works**
| Step | Action | Example |
|------|--------|---------|
| 1. **Start** | `aider --model gpt-4` in your project | Opens conversational session |
| 2. **Add files** | `/add src/auth.py src/routes.py` | Adds files to AI context |
| 3. **Request** | "Add JWT authentication to the login route" | Plain English instruction |
| 4. **AI generates** | Shows unified diff with additions/removals | Review before applying |
| 5. **Apply + commit** | Changes written to files, Git commit created | Atomic, reversible changes |
| 6. **Iterate** | "The tests fail, can you fix the token expiry?" | Conversational refinement |
**Key Features**
- **Diff-Based Editing**: Aider uses structured diff formats (search/replace blocks) — ensuring precise, targeted edits rather than rewriting entire files. This minimizes unintended changes.
- **Repo Map**: Automatically builds a map of your repository's file structure, imports, and class/function definitions — giving the AI architectural context without manually specifying every file.
- **Voice Mode**: `aider --voice` enables voice-to-code — describe changes verbally and Aider transcribes and implements them.
- **Linting + Testing**: Optionally runs linters and test suites after each edit — automatically feeding errors back to the AI for correction.
- **Image Support**: Share screenshots of UIs or error messages — Aider sends them to vision-capable models for context.
**Aider vs. Other AI Coding Tools**
| Tool | Interface | Context | File Editing | Best For |
|------|-----------|---------|-------------|----------|
| **Aider** | Terminal (CLI) | Git repo-wide | Direct file writes + git commits | Terminal-native developers |
| Cursor | IDE (VS Code fork) | Codebase-wide | In-editor edits | IDE-focused developers |
| GitHub Copilot | IDE extension | Current file + neighbors | Inline suggestions | Autocomplete |
| GPT Engineer | CLI (one-shot) | Project description | Full project generation | Greenfield projects |
| Continue | IDE extension | Configurable context | In-editor edits | Open-source Copilot |
**Aider is the most practical open-source AI pair programming tool for terminal-centric developers** — combining conversational coding with Git-native file editing, multi-model flexibility, and repo-wide context understanding to deliver an AI coding experience that rivals commercial IDE-based solutions from the command line.