Browser AI coding tools force constant copy-paste and hide what changed. You want an AI pair programming terminal that edits files in your repo, commits the diff, and lets you /undo like any other git operation. This guide gets Aider 0.86.2 installed, configured, and verified – nothing else.
Aider is Apache-2.0, CLI-only, and bills nothing beyond the LLM API you already use. Home and source: aider.chat · Aider-AI/aider.
System requirements before you install
No local model weights. Thin client. Mismatched Python kills more installs than bad keys. Match the table before you paste anything.
| Item | Minimum | Recommended |
|---|---|---|
| OS | Linux, macOS, or Windows | Same; WSL2 on Windows if you want POSIX git with less friction |
| Python (package itself) | 3.10-3.12 per PyPI for aider-chat 0.86.2 | Let aider-install/uv provision isolated 3.12 |
| Host Python for bootstrap | 3.8+ enough to run pip/uv installers (as of the official install page) | Any recent 3.x with pip |
| Git | Optional but crippled without it | Git 2.x with user.name / user.email set |
| RAM / disk | Normal laptop baseline | Room for the isolated env + optional Playwright browser |
| Network | Outbound HTTPS to your LLM provider + PyPI | Stable link; large repo maps cost tokens, not local GPU |
aider-chat 0.86.2 on PyPI declares Requires-Python: >=3.10, <3.13. Default python is 3.13? Don’t raw-pip into it – the isolated path below parks a dedicated 3.12 for Aider only. Raw pip on 3.13 fails; aider-install/uv succeeds. That’s the whole trap.
Official download sources (ignore random mirrors)
- Primary package: PyPI
aider-chat– 0.86.2 (uploaded Feb 12, 2026) - Bootstrap helper: PyPI
aider-install(pulls uv, then the tool env) - Docs:aider.chat/docs/install.html
- Docker Hub:
paulgauthier/aiderandpaulgauthier/aider-full - Code: github.com/Aider-AI/aider
Skip SourceForge mirrors and brew-first blog posts. Dependency pins from Homebrew/AUR/ports are a frequent ImportError source – the install docs steer you to aider-install, uv, or pipx instead.
Install Aider 0.86.2 (recommended path)
Project’s preferred path: two commands, isolated env, auto Python 3.12 when needed.
# 1) Bootstrap helper (tiny; depends on uv)
python -m pip install aider-install
# 2) Install aider-chat into uv's tool environment
aider-install
Under the hood that’s roughly uv tool install --force --python python3.12 aider-chat@latest, plus a PATH shim. New terminal (or source your rc) so aider resolves.
One-liners if you want zero prior Python setup
Mac & Linux (install docs):
curl -LsSf https://aider.chat/install.sh | sh
# or: wget -qO- https://aider.chat/install.sh | sh
Windows PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://aider.chat/install.ps1 | iex"
Alternatives (brief)
- uv directly:
uv tool install --force --python python3.12 --with pip aider-chat@latest - pipx:
pipx install aider-chat(docs list Python 3.9-3.12 for this route) - pip in a venv:
python -m pip install -U --upgrade-strategy only-if-needed aider-chat– keep it out of your app venv - Docker (from repo root):
docker pull paulgauthier/aiderthendocker run -it --user $(id -u):$(id -g) --volume $(pwd):/app paulgauthier/aider --openai-api-key $OPENAI_API_KEY– git identity must already exist in the repo; full flags on the Docker install page
Pro tip: Already shipping a Python app? Never drop
aider-chatinto that project venv. Aider pins litellm/httpx tightly; your app pins will collide. Isolation is the point of aider-install/uv/pipx.
First-time configuration (minimum viable)
Git + one provider key. Inside a repo is best; Aider offers git init if you forgot.
# Git identity (required for clean commits, especially Docker)
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
# Pick ONE provider - examples:
export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-...
export DEEPSEEK_API_KEY=...
Persist keys the way config docs intend. A .env in home or repo root loads home → git root → cwd:
# ~/.env or ./.env in the project
ANTHROPIC_API_KEY=sk-ant-...
# or OPENAI_API_KEY=...
# or DEEPSEEK_API_KEY=...
Optional defaults in ~/.aider.conf.yml:
model: sonnet
dark-mode: true
auto-commits: true
The catch: YAML is documented for OpenAI/Anthropic keys only. DeepSeek, OpenRouter, and friends go in .env, the shell, or --api-key provider=key. Wrong bucket looks like a broken binary. It isn’t.
Later extras: playwright install --with-deps chromium for /web; PortAudio for /voice (brew install portaudio or sudo apt-get install libportaudio2).
Verify the AI pair programming terminal works
aider --version
# Expect aider 0.86.x (0.86.2 if you just pulled latest from PyPI)
Smoke test:
mkdir -p ~/aider-smoke && cd ~/aider-smoke
git init
echo '# smoke' > README.md
git add README.md && git commit -m "init"
aider --model deepseek --api-key deepseek=$DEEPSEEK_API_KEY
# or: aider --model sonnet
# or: aider --model o3-mini --api-key openai=$OPENAI_API_KEY
At the chat prompt, add one sentence to README, accept the edit, then git log -1 outside. Auto-commit should show. /exit when done.
Turns out the binary missing from PATH is common on Windows and locked-down shells – fail-safe is python -m aider --version (same entry point the aider-not-found troubleshooting page documents).
Funny how a tool this capable still hinges on PATH and a single env var – once those two click, the rest feels almost boring.
Common install errors and fixes
Real failures from GitHub issues and Reddit – not lab fiction.
aider: command not found/ PowerShell “not recognized” – PATH missed uv’s tool bin. New shell, orpython -m aider. Reinstall via aider-install/uv/pipx so the shim lands.ImportError/ “requires somepackage==X but you have Y” – mixed global env or system package manager build. Uninstall the broken copy; put Aider back with aider-install oruv tool install --force --python python3.12 aider-chat@latest.- Plain pip on Python 3.13 refuses the wheel – upper bound is <3.13 on 0.86.2. Use uv/aider-install for the isolated 3.12 tool env.
- 401 / invalid API key on first message – install is fine. Wrong env name, trailing newline from copy-paste, or a non-OpenAI/Anthropic key stuck only in YAML. Move it to
.env, reopen the terminal. - Docker edits OK but
/run pytestfails – volume maps the repo in, but/runexecutes inside the container. Install runners in the image, or test on the host after you exit. - Weird behavior on folders with no git history – accept the init prompt or
git initbefore you blame the model.
Upgrade and uninstall
# Built-in
aider --upgrade
# Force-refresh uv tool install (common community pattern)
uv tool install --force --python python3.12 --with pip aider-chat@latest
# pipx users
pipx upgrade aider-chat
After you bump, skim HISTORY – 0.86.x added GPT-5 family support, a reasoning_effort setting, and temperature off by default for that family.
Official uninstall docs are thin. Community path that works:
uv tool uninstall aider-chat
python -m pip uninstall -y aider-install
# pipx:
pipx uninstall aider-chat
# Optional - only if you want keys gone too:
# rm ~/.aider.conf.yml ~/.env
# Docker:
docker rmi paulgauthier/aider paulgauthier/aider-full
Project leftovers: .aider* chat files (often gitignored). Delete if you don’t want the history hanging around.
FAQ
Which install method should I use in 2026?
pip install aider-install && aider-install (or the curl/ps1 one-liner). Isolates deps and pins Python 3.12. Homebrew is a last resort, not a first click.
Do I need Docker for the AI pair programming terminal?
Only if you refuse host Python tooling or want a disposable sandbox. Mount from the git root, set user.name/user.email in that repo, and treat every /run as container-local – your host pytest isn’t there. Solo metal install via uv is less ceremony for most people.
Why does Aider care so much about git during install verification?
People treat missing auto-commits like an install bug. It isn’t. The safety model is “every AI edit is a commit you can diff and reset,” not a sidebar Accept button. No git means no clean /undo, no review habit, no machine-written history you can revert in one command. If the folder has no .git, init one before you judge the tool.
What happens if you only ever run the smoke repo and never point Aider at code you actually ship? You learn the commands – not whether the workflow sticks. Open a real project, export one key, run aider --version, touch two files you own.