Search iThub

Search tools, categories and collections. Type at least two characters.

Explore all tools
↑ ↓ to explore resultsEnter to open · Esc to close

Aider

Terminal AI pair programmer that edits files in your git repo with cloud or local LLMs and commits each change

Visit website Save

Open-source command-line tool for editing code with LLMs inside a local git repository. It builds a repository map, applies model edits to files, commits each change, runs linters and tests, and works with most hosted and local models.

Pricing
Open source
Deployment
Windows / macOS / Linux app
Platforms
Windows, macOS, Linux
49,996stars5,143forks
2views
Updated

What is Aider?

Aider is an open-source command-line tool for pair programming with large language models inside a local git repository. You start aider in a project directory, name the files that should change and describe the task in a chat prompt. Aider sends the request to the configured model together with selected code context, applies the returned edits to the files on disk and commits each change to git with a generated message. It works on new projects as well as existing codebases, and the model documentation covers hosted APIs, OpenAI-compatible endpoints and local runners.

The project is published by Aider AI LLC, which the FAQ describes as the company behind the tool, and GitHub releases are authored by maintainer Paul Gauthier. The repository was created in May 2023 and the source is licensed under Apache-2.0. Each entry in the release history states how much of the new code aider wrote itself; the figure is computed with a git blame script over source files and was 88% for version 0.86.0.

Aider is distributed as the aider-chat Python package. The installation guide recommends aider-install, uv or pipx, which keep aider in its own environment and fetch a separate Python 3.12 when needed; one-line scripts based on the uv installers exist for macOS, Linux and Windows PowerShell. The current PyPI package declares Python 3.10 to 3.12. Two Docker images are documented: paulgauthier/aider with the core and paulgauthier/aider-full with optional extras such as the browser UI, interactive help and Playwright scraping. The docs warn that system package managers often install aider with incorrect dependencies.

The latest GitHub release is v0.86.0, published August 9, 2025. It added support for the GPT-5 model family across OpenAI, Azure and OpenRouter, Grok-4 and Kimi K2 model names, clearer /clear and /undo output, and a bump to litellm 1.75.0. Version 0.86.1 added a reasoning effort setting for GPT-5, and a 0.86.2 package followed on PyPI in February 2026. The release history lists further main-branch changes not yet in a tagged release, including Claude 4.5 and 4.6 aliases, Gemini 3 preview models, GPT-5.1 to 5.4 settings, an /ok shortcut and repository map tags for Fortran, Haskell, Julia and Zig. Commits continued into May 2026, while tagged releases have slowed compared with the monthly cadence of early 2025.

Aider is written in Python and reaches model providers through LiteLLM. Its repository map is built from tree-sitter tags and ranked with a graph algorithm, and edits come back in one of several text edit formats such as search/replace blocks, whole files or unified diffs. Aider does not include a hosted model, a managed cloud service or a sandbox for shell commands: you supply API keys or a local model, and commands it proposes run on your machine after confirmation. The browser interface is labelled experimental, and the Python scripting interface is described as unsupported and subject to change.

Inside the application

Aider screenshots

Explore the interface. Open a screenshot to view it at full size.

Aider terminal session: request to change hello to goodbye, a search and replace edit block for hello.py, then the applied edit and an aider commit
Aider screenshot 1

Official aider screenshot of a chat request, the edit block it produced and the automatic git commit. It shows an older edit block style.

Aider in a macOS terminal creating snake_game.py, then asking to run pip install pygame and python snake_game.py with yes or no prompts, plus token and cost totals
Shell command confirmation

Official screenshot of aider proposing shell commands, each confirmed before it runs, with per-message token and cost output.

Python Flask file in VS Code with the comment Use math.factorial instead. AI! inside a factorial function
AI comment in an editor

Official image from the IDE documentation: an AI! comment that aider picks up when running with --watch-files.

OpenRouter web chat with o1-preview receiving copied code context on the left, and an aider terminal with --copy-paste and DeepSeek on the right
Copy and paste with a web chat

Official screenshot of the copy and paste workflow between a web chat model and aider in the terminal (aider 0.67 development build).

Aider browser interface on localhost with app.py added to the chat, a search and replace block adding a factorial endpoint, and a commit summary
Experimental browser UI

Official screenshot of the experimental aider --browser interface editing and committing a local file.

Source: official Aider project page.

Key capabilities

  • Chat-driven code edits in the terminal Run aider file1 file2 and describe a change at the prompt; aider shows the diffs it applies to those files. Only files added to the chat are edited, either from the command line or with /add, and new file names can be given for files aider should create. The usage guide advises adding just the files a task needs, because extra files cost tokens and can confuse the model.
  • Automatic git commits and undo Every edit aider makes is committed with a descriptive message written by the weak model, following Conventional Commits by default. Uncommitted work in a dirty file is committed separately first so your changes and the model's changes stay apart. /undo discards the last aider commit, /diff shows changes since your last message, and --no-auto-commits or --no-git turn the behaviour off. The git integration page lists all switches.
  • Commit attribution Since 0.85 aider adds a Co-authored-by trailer to its commits by default; older versions appended "(aider)" to the git author and committer names, which can still be enabled explicitly. Options such as --attribute-commit-message-author add an "aider: " prefix to messages instead. Pre-commit hooks are skipped unless --git-commit-verify is set, which teams with hook-based checks should note.
  • Repository map Aider sends a compact map of the whole repository with each request: file names, key classes and functions and their signatures. The map is built from tree-sitter tags and trimmed with a graph ranking to fit a token budget set by --map-tokens, 1,024 tokens by default, which aider can exceed when no files are in the chat. The repository map documentation explains the ranking.
  • Broad language coverage The README cites support for more than 100 languages, and the languages page lists which have built-in linting and which have repository map support, with parsers supplied by tree-sitter-language-pack. Languages without a tags file still work for editing, only without map context. Recent releases added map support for MATLAB, Clojure and OCaml.
  • Chat modes: code, ask, architect and help Code mode edits files, ask mode discusses the code without changing it, and help mode answers questions about aider itself. Architect mode sends the request to a main model for a proposal and then to an editor model that turns it into file edits, which costs two requests. Modes switch per message with /ask or /architect, or persistently with /chat-mode; see chat modes.
  • Many model providers Aider connects to OpenAI, Anthropic, Gemini, DeepSeek, xAI, Groq, Cohere, Azure, Amazon Bedrock, Vertex AI, OpenRouter, GitHub Copilot tokens and any OpenAI-compatible API. Model aliases such as sonnet or gemini point at current versions, and /model switches during a session. The docs warn that models weaker than GPT-3.5 may fail to return usable edits.
  • Local models Ollama, LM Studio and other servers with an OpenAI-compatible API can serve models on your own hardware, with prompts and code staying local. Quality depends heavily on the model; the LLM leaderboards show how models score on aider's polyglot benchmark of 225 Exercism exercises in six languages.
  • Edit formats Models return changes as whole files, search/replace blocks (diff and diff-fenced), unified diffs, or editor-diff and editor-whole for architect mode. Aider picks a format per model and --edit-format overrides it. A mismatched format is a common cause of edits that fail to apply.
  • Lint and test loop After each edit aider runs a built-in linter for supported languages or a command set with --lint-cmd, and can run tests with /test or --test-cmd. When the command exits non-zero, the output goes back to the model to fix. Formatters that exit non-zero after reformatting need a wrapper script, as described in linting and testing.
  • AI comments from any editor With --watch-files, aider watches the repository for one-line comments ending in AI! to request a change or AI? to ask a question, in #, // or -- style. This lets you trigger aider from VS Code, JetBrains IDEs, Vim or any editor without a plugin, as the IDE page shows.
  • Shell commands with confirmation Aider can suggest shell commands such as installing a package or running a program, and asks "Run shell command?" before each one. /run executes a command and can add its output to the chat. There is no sandbox, so commands run with your user permissions.
  • Images, web pages and voice Vision-capable models accept screenshots and mockups through /add or /paste. /web scrapes a URL into markdown, with Playwright as an optional dependency for JavaScript pages. /voice records speech and transcribes it into a prompt, after the optional audio dependencies are installed.
  • Copy and paste with web chats /copy-context copies the added files, read-only files and repository map to the clipboard for use in a web chat, and --copy-paste applies edits pasted back. This suits workplaces that allow a model only through a web interface, with a cheaper API model applying the edits.
  • Prompt caching and conventions --cache-prompts structures requests so providers such as Anthropic and DeepSeek can cache the system prompt, read-only files and repository map, and --cache-keepalive-pings keeps the cache warm. Coding rules go in a file such as CONVENTIONS.md loaded read-only with --read, or permanently through .aider.conf.yml.
  • Configuration and scripting Settings come from command-line flags, AIDER_ environment variables, a .env file or .aider.conf.yml, documented in the configuration reference. --message runs one instruction and exits, which allows shell loops over many files, and --yes answers prompts. A Python Coder class can be scripted, but the docs state that API is unsupported and may change.
  • Experimental browser UI aider --browser starts a local web interface with file selection, URL import and chat history, editing and committing the same local repository. It needs the browser extra or the full Docker image and is labelled experimental.
  • Installation on macOS, Linux and Windows On macOS and Linux run curl -LsSf https://aider.chat/install.sh | sh; on Windows the PowerShell command downloads install.ps1. Alternatives are python -m pip install aider-install followed by aider-install, uv tool install aider-chat, pipx, or the Docker images, where /run executes inside the container and voice needs host audio access.
Advertisements

Where Aider fits

Making a scoped change in an existing repository

Commit or stash your own work, start aider in the repository root with the files that need changing, and describe the change. Use ask mode first for anything non-trivial, agree on an approach, then switch to code mode and say "go ahead". Review each diff aider prints and the resulting commit with your normal git tools. If an edit is wrong, /undo removes that commit. Check that aider did not touch files outside the chat and that the commit message matches the change.

Fixing lint and test failures in a loop

Set --lint-cmd per language and --test-cmd to your test runner, or call /test during a session. Aider feeds failing output back to the model and attempts a fix. Keep the test command fast and deterministic, because each failure costs a model request. Watch for the model changing tests instead of code, and cap long fix loops by reviewing after a few attempts.

Working with an expensive reasoning model and a cheaper editor

Architect mode pairs a strong planning model with an editor model that writes the file edits, for example a reasoning model as architect and a cheaper chat model as editor. Set --architect, --model and --editor-model, and pick editor-diff or editor-whole formats as recommended. Compare token costs shown after each message, since two requests are made per turn, and use the leaderboards to choose pairs.

Running aider with local models

Point aider at an Ollama or LM Studio server, or any OpenAI-compatible endpoint, with a model name such as ollama_chat/ plus the model. Ollama defaults to a 2k context window and silently drops overflow, so check the window aider sets or fix one with num_ctx in the model settings; the repository map and added files must fit. Expect lower edit success with small models; if edits fail to apply, try another edit format or a larger model. This keeps code and prompts on your own hardware.

Batch edits from scripts and CI

Use aider --message "..." file in a shell loop to apply the same instruction to many files, with --yes for non-interactive runs and --dry-run to preview. Run on a dedicated branch so every change lands as a separate commit that can be reviewed in a pull request. Pin the aider version and model name, because model aliases and defaults change between releases.

Requesting changes from your editor

Start aider --watch-files in a terminal next to VS Code, a JetBrains IDE or Vim, then write a comment such as "add error handling AI!" where the change belongs. Aider collects all AI comments, edits the files and removes the comments. Save the file to trigger it, keep the terminal visible to confirm prompts, and use the terminal chat for undo and context management.

Install

curl -LsSf https://aider.chat/install.sh | sh

Reviews of Aider

No reviews yet

Be the first to share your experience with Aider.

Loading review form…

Alternatives to Aider

Compare Aider with these tools →