Aider实战:4步安装AI编程助手,命令行写全栈项目
一、为什么你需要 Aider你有没有遇到过这种场景一个简单的 CRUD 接口切文件、写代码、调格式来回折腾了 20 分钟或者改一个 Bug在 5 个文件之间跳来跳去最后发现少改了一个地方。传统 IDE 的 AI 补全插件Copilot、Codeium 等解决了一部分问题但它们的模式是你写代码AI 给你补——本质上你还是那个敲键盘的人。Aider 的思路完全相反你说需求AI 直接改你的代码并且每一步修改都是一次 git commit随时可以回滚。Aider 是一个终端里的 AI 结对编程工具由 Paul Gauthier前 Inktomi CTO一人独立开发GitHub 已斩获 **42,000 Star**Apache 2.0 开源协议。它的核心能力可以用一句话概括在终端输入自然语言AI 直接修改你本地 git 仓库里的多个文件。它支持 GPT-4o、Claude Sonnet、DeepSeek、本地 Ollama 模型等几乎所有主流 LLM覆盖 Python / JavaScript / TypeScript / Go / Rust / Java 等 100 编程语言。更关键的是它和 Git 的深度绑定——每次 AI 修改代码都会自动产生一个独立 commit你可以像翻书一样回看每一次变更。代码改坏了一个/undo就回退。这个设计直接消除了AI 瞎改代码的恐惧心理让你敢把真实项目的文件交给它编辑。和同类工具对比Aider 有几个不可替代的优势**Copilot / Cursor**嵌入 IDE 的 Tab 补全你仍是主要编辑者Aider 是 AI 直接动手改文件**ChatGPT / Claude 网页版**需要手动复制粘贴代码且无法感知项目全貌Aider 能读取整个 git 仓库的上下文**Claude Code / Codex CLI**同为终端 AI 编程工具但 Aider 开源更早、社区更活跃、模型兼容性更广下面我们从零开始4 步把它装好、配好、跑起来。二、环境准备在开始前确保你的机器满足以下条件| 依赖 | 版本要求 | 检查命令 ||------|---------|---------|| Python | ≥ 3.9推荐 3.10 |python --version|| Git | 任意版本 |git --version|| LLM API Key | OpenAI / Anthropic / DeepSeek | 去官网申请 | **没有 API Key 怎么办** Aider 内置了 OpenRouter 接入能力首次启动时会引导你使用 OpenRouter 的免费/付费通道无需提前准备 Key。三、步骤一安装 AiderAider 提供了多种安装方式推荐使用pip一键安装Windows / macOS / Linux 通用。# 推荐方式pip 直接安装 python -m pip install -U --upgrade-strategy only-if-needed aider-chat运行结果Collecting aider-chat Downloading aider_chat-0.77.0-py3-none-any.whl (12.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.8/12.8 MB 8.2 MB/s Collecting diskcache5.6.3 Downloading diskcache-5.6.3-py3-none-any.whl (45 kB) Installing collected packages: diskcache, aider-chat Successfully installed aider-chat-0.77.0 diskcache-5.6.3安装完成后验证aider --version运行结果aider 0.77.0 **备选方案**如果你习惯使用虚拟环境隔离依赖可以用 pipx install aider-chat 或 uv tool install aider-chatlatest效果相同但不会污染全局 Python 环境。四、步骤二配置 API 密钥Aider 本身不包含 AI 模型它需要连接到你选择的 LLM 服务。以下是三种主流配置方式方式一环境变量推荐# Linux / macOS export ANTHROPIC_API_KEYsk-ant-api03-your-key-here # Windows PowerShell $env:ANTHROPIC_API_KEY sk-ant-api03-your-key-here方式二命令行参数# 使用 Claude Sonnet推荐性价比最高 aider --model claude-sonnet-4-6 --api-key anthropicsk-ant-api03-your-key # 使用 GPT-4o aider --model gpt-4o --api-key openaisk-your-openai-key方式三.env 文件持久化在项目根目录或~/.aider/下创建.env文件# ~/.aider/.env ANTHROPIC_API_KEYsk-ant-api03-your-key-here # 或者 OPENAI_API_KEYsk-your-openai-key-here⚠️ **安全提示**务必把 .env 加入 .gitignore不要在公开仓库中暴露 API Key。此时运行aider --list-models openai/可以看到所有可用模型列表aider --list-models openai/运行结果节选openai/gpt-4o GPT-4o openai/gpt-4o-mini GPT-4o Mini openai/gpt-4-turbo GPT-4 Turbo openai/o1 o1 openai/o3-mini o3-mini五、步骤三启动 Aider 并完成第一个任务进入任意一个 git 仓库没有就新建一个直接运行aider# 创建一个测试项目 mkdir my-first-aider cd my-first-aider git init # 启动 Aider使用 Claude Sonnet aider --model claude-sonnet-4-6运行结果────────────────────────────────────────────────────────── Aider v0.77.0 Main model: claude-sonnet-4-6 Git repo: .git with 0 files Repo-map: using 1024 tokens, auto-refresh ────────────────────────────────────────────────────────── 看到提示符说明 Aider 已经在等待你的指令。现在试试第一个任务——让它生成一个 Flask Web 应用 创建一个基于 Flask 的待办事项 API包含添加、删除、列出三个接口数据存储在内存中Aider 会直接生成app.py# app.py —— Aider 自动生成的完整代码 from flask import Flask, request, jsonify app Flask(__name__) todos [] todo_id_counter 1 app.route(/todos, methods[GET]) def list_todos(): return jsonify(todos) app.route(/todos, methods[POST]) def add_todo(): global todo_id_counter data request.get_json() todo {id: todo_id_counter, title: data[title], done: False} todo_id_counter 1 todos.append(todo) return jsonify(todo), 201 app.route(/todos/int:todo_id, methods[DELETE]) def delete_todo(todo_id): global todos todos [t for t in todos if t[id] ! todo_id] return jsonify({message: deleted}), 200 if __name__ __main__: app.run(debugTrue)运行测试# 终端1启动服务 python app.py运行结果* Serving Flask app app * Debug mode: on * Running on http://127.0.0.1:5000# 终端2测试接口 curl -X POST http://127.0.0.1:5000/todos \ -H Content-Type: application/json \ -d {title: 学习Aider} curl http://127.0.0.1:5000/todos运行结果{id:1,title:学习Aider,done:false} [{done:false,id:1,title:学习Aider}]每一次修改Aider 都会自动执行git commit你可以随时用/undo回滚。六、步骤四多文件协作实战Aider 的核心优势在于多文件协同编辑。假设我们要给上面的待办事项 API 添加一个 HTML 前端页面。在 Aider 对话中直接说 创建一个 templates/index.html 的前端页面 用原生 JavaScript 调用 http://127.0.0.1:5000/todos 接口 展示待办列表支持添加和删除Aider 自动生成templates/index.html并同步修改app.py以渲染该模板# app.py 新增的模板渲染部分 from flask import render_template # Aider 自动补充导入 app.route(/) def index(): return render_template(index.html)!-- templates/index.html —— Aider 自动生成的前端页面 -- !DOCTYPE html html langzh-CN head meta charsetUTF-8 title待办事项/title style body { font-family: Arial, sans-serif; max-width: 600px; margin: 50px auto; } .todo-item { display: flex; justify-content: space-between; padding: 10px; border-bottom: 1px solid #eee; } button { background: #e74c3c; color: white; border: none; padding: 5px 10px; cursor: pointer; border-radius: 3px; } /style /head body h1 待办事项/h1 input typetext idtitleInput placeholder输入新待办... button onclickaddTodo() stylebackground:#2ecc71;margin-left:5px;添加/button div idtodoList/div script const API http://127.0.0.1:5000/todos; async function loadTodos() { const res await fetch(API); const todos await res.json(); document.getElementById(todoList).innerHTML todos.map( t div classtodo-item span${t.title}/span button onclickdelTodo(${t.id})删除/button /div ).join(); } async function addTodo() { const title document.getElementById(titleInput).value; if (!title) return; await fetch(API, { method: POST, headers: {Content-Type: application/json}, body: JSON.stringify({title}) }); document.getElementById(titleInput).value ; loadTodos(); } async function delTodo(id) { await fetch(${API}/${id}, {method: DELETE}); loadTodos(); } loadTodos(); /script /body /html重新启动app.py打开浏览器访问http://127.0.0.1:5000就能看到一个功能完整的待办事项应用了。七、常用命令速查Aider 在对话中内置了一套斜杠命令让你随时控制会话| 命令 | 作用 | 示例 ||------|------|------||/add| 将文件加入上下文 |/add src/api.py||/drop| 从上下文移除文件 |/drop src/utils.py||/undo| 撤销最后一次 AI 提交 |/undo||/diff| 查看最近一次修改的 diff |/diff||/run| 执行 shell 命令并查看输出 |/run pytest||/commit| 手动提交当前修改 |/commit||/voice| 切换到语音输入模式 |/voice||/help| 查看完整帮助 |/help|三种对话模式# 代码模式默认AI 直接修改代码 /chat-mode code # 架构师模式AI 先提方案你确认后再修改 /chat-mode architect # 问答模式AI 只回答问题不动代码 /chat-mode ask八、进阶配置自动 Lint 与自动测试在生产项目中让 Aider 在每次修改后自动运行 linter 和测试可以大幅减少引入的 Bug# Python 项目自动 ruff 检查 pytest 测试 aider --lint-cmd ruff check --fix --test-cmd pytest -x src/ # 前端项目自动 ESLint Jest aider --lint-cmd npx eslint --fix --test-cmd npx jest src/运行效果Applied edit to src/api.py ───────────────────────────────────────────── Running lint: ruff check --fix ............ ✓ passed Running test: pytest -x .................. ✓ 12 passed ───────────────────────────────────────────── Committed: feat: add user authentication middleware每次修改 → 自动 Lint → 自动测试 → 测试不通过则自动修复 → 全部通过后才提交。这套流程比很多团队的手动 Code Review 还严格。九、常见问题与避坑指南在实际使用过程中有几个高频踩坑点值得提前了解。9.1 No git repo found 错误Aider必须在 git 仓库中运行。如果你忘了git init会看到如下提示cd my-project aider运行结果Error: No git repository found. Aider requires a git repository to track changes. Please run: git init解决先执行git init至少做一次git add和git commit再启动 Aider。9.2 API 调用超时或限流国内网络访问 OpenAI / Anthropic API 可能会遇到连接超时。推荐两个方案# 方案1使用 DeepSeek国内可直接访问价格极低 export DEEPSEEK_API_KEYsk-your-deepseek-key aider --model deepseek --api-key deepseek$DEEPSEEK_API_KEY # 方案2配置代理 export HTTP_PROXYhttp://127.0.0.1:7890 export HTTPS_PROXYhttp://127.0.0.1:7890 aider --model claude-sonnet-4-69.3 文件太大导致 Token 超限如果你的项目文件特别大Aider 会自动用repo-map只提取关键符号信息而非加载整个文件。但有时仍需手动控制# 只加载核心文件忽略工具类和大文件 aider src/main.py src/handlers.py --model claude-sonnet-4-6会话内也可以用/drop移除不需要的文件来释放 token 预算。9.4 AI 改错了怎么恢复这正是 Aider 最让人安心的地方# 查看 Aider 的所有历史提交 git log --oneline # 在 Aider 对话中一键回滚最近一次修改 /undo # 回滚到指定提交 git reset --hard commit-hash每次修改都是一个独立 commitcommit message 由 AI 自动生成清晰描述了改了什么。十、总结Aider 的核心理念是在终端里用自然语言驱动代码变更——它不是一个代码补全插件而是一个能听懂需求、直接改代码、并自动管理 Git 历史的AI 协作者。无论是个人项目快速原型还是团队开发中的代码重构与测试编写它都能实实在在地节省时间。回顾这 4 个核心步骤**安装**pip install aider-chat一行搞定**配置**设置 API Key支持 OpenAI / Anthropic / DeepSeek / Ollama**首次使用**在 git 仓库中启动用自然语言生成完整应用**多文件协作**让 AI 同时编辑前后端多个文件保持一致性对于个人开发者Aider 是一个7×24 小时待命的 Code Reviewer 初级程序员对于团队它可以承担大量重复性的 CRUD、重构、测试编写工作。下一步建议你把它配到日常项目的Makefile里# Makefile .PHONY: aider aider: aider --model claude-sonnet-4-6 \ --lint-cmd ruff check --fix \ --test-cmd pytest -x \ src/然后每当需要加功能一句make aider输入你的需求剩下的交给 AI。 本文完成于 2026-07-08基于 Aider v0.77.0。由于 AI 工具迭代极快建议关注 [Aider 官网](https://aider.chat) 和 [GitHub 仓库](https://github.com/Aider-AI/aider) 获取最新信息。