Aider
以 Git 和 Repo Map 为核心的终端 AI Pair Programming 工具。
项目概述
Aider 在终端中与模型协作编辑本地代码,使用 Repo Map 理解大型仓库,并通过自动提交、撤销、Lint 和测试形成可审查的修改循环。
Aider 是采用 Apache-2.0 许可证的开源 AI Pair Programming 工具,主要在终端中运行并直接修改本地 Git 仓库。开发者可以显式把文件加入对话,也可以让 Aider 借助 Repo Map 从整个仓库选取相关上下文。它会展示模型生成的代码改动,默认自动提交 AI 修改,并可使用 /diff 和 /undo 审查或撤销。Aider 通过 LiteLLM 连接多家云模型和本地 OpenAI 兼容模型,还提供 Code、Ask、Architect、Help 等对话模式、自动 Lint/Test、图像与网页上下文、语音输入和实验性浏览器界面。
主要特点
Aider 把模型生成、仓库上下文、代码编辑和 Git 历史组合为一个紧凑的终端协作流程。
终端 Pair Programming
直接在 Shell 中与模型讨论和修改代码,可从命令行指定文件,也能在会话中使用 /add、/read-only 和 /drop 管理上下文。
Repo Map
利用 Tree-sitter 提取仓库中的关键类、函数、类型和调用签名,以较少 Token 向模型提供跨文件结构信息。
Git 自动提交与撤销
默认把每轮 AI 修改保存为带说明的 Git Commit,可用 /diff 查看变化、用 /undo 撤销最近一次 Aider 提交。
多种对话模式
Code 模式直接修改代码,Ask 模式只讨论,Architect 模式由规划模型提出方案、编辑模型落实改动,Help 模式解答使用问题。
广泛的模型支持
通过 LiteLLM 连接 OpenAI、Anthropic、Gemini、DeepSeek、OpenRouter、Bedrock 等服务,也可使用 Ollama 或兼容 API 的本地模型。
自动 Lint 与测试
编辑后可运行内置或自定义 Linter,并通过 /test、test-cmd 和 auto-test 把失败输出交给模型继续修复。
多种编辑格式
根据模型能力选择 Diff、Whole、Architect/Editor 等编辑策略,使推理模型与代码编辑模型可以各自承担合适角色。
丰富的输入方式
除文本和文件外,还能加入网页、图像、剪贴板内容与语音输入,并提供实验性浏览器界面和编辑器集成方式。
适用场景
适合喜欢在终端中工作、希望每轮 AI 修改都有清晰 Git 记录,并愿意主动控制文件上下文的开发者。
小步功能开发
选择少量相关文件,用连续对话完成实现、调整和测试,并通过独立 Commit 保留每一步变更。
跨文件重构
借助 Repo Map 理解符号和依赖关系,在不把整个仓库塞入上下文的情况下修改调用方与实现。
代码理解与方案讨论
先使用 Ask 模式分析现状和比较方案,确认方向后切回 Code 模式落实修改。
推理与编辑模型协作
在 Architect 模式中让强推理模型制定方案,再由擅长精确编辑的模型生成文件改动。
测试驱动修复
配置项目的 Lint、编译和测试命令,让 Aider 根据失败输出反复修正语法、类型和行为问题。
配置与文档维护
除源代码外,也可编辑 Markdown、Dockerfile、Shell 配置和其他文本文件,并利用 Git 审查改动。
优点与注意事项
技术选型不仅要看能力,也要理解它带来的团队成本。
主要优点
Aider 擅长的地方
- Git 原生工作流让 AI 修改容易审查、比较和撤销
- Repo Map 能以紧凑形式提供大型仓库的关键结构
- 文件加入与只读上下文机制让开发者明确控制编辑范围
- Code、Ask 和 Architect 模式支持从讨论到落地的渐进协作
- LiteLLM 覆盖大量云模型、聚合服务与本地模型
- 自动 Lint 和测试可把生成、验证、修复串成短反馈循环
需要注意
采用前应考虑的问题
Aider 默认自动提交模型修改,也可能先提交已有的 Dirty Changes。团队若有严格 Commit 规范,应提前调整 auto-commits 和 dirty-commits。
Aider 默认使用 --no-verify 创建提交;依赖 pre-commit 校验的项目应启用 git-commit-verify,或在合并前单独运行完整检查。
限制聊天文件和保留 Git 历史不等于沙箱。执行命令、访问外部路径或处理不可信仓库时,仍应使用低权限账户或容器。
并非所有兼容模型都能稳定生成 Aider 所需的编辑格式;本地或较弱模型可能只输出代码文本,却无法可靠修改文件。
Architect 与 Editor 通常会产生两次模型请求,可能提高质量,但也会增加延迟、Token 消耗和模型配置复杂度。
加入过多完整文件会增加费用并干扰模型;Repo Map 也不保证包含所有业务细节,应按任务选择可编辑与只读文件。
Aider 依赖较多且部分版本固定,直接安装到业务项目环境可能发生冲突;官方建议使用 aider-install、uv 或 pipx 隔离。
对话文件、Repo Map、错误输出和提示可能离开本机。使用私有代码前应核对 Provider 的数据政策,妥善保存 API Key。
快速开始
将 Aider 安装到独立 Python 环境,配置模型凭据,然后在 Git 仓库中选择需要修改的文件开始对话。
bashpython -m pip install aider-install
aider-install
aider --versionbashexport ANTHROPIC_API_KEY="<your-api-key>"
cd your-project
aider --model sonnetbashaider src/app.ts src/app.test.ts
# 也可以启动后在对话中输入
/add src/app.ts
/read-only package.json
/tokensbash# 以下命令在 Aider 会话中输入
/ask 解释当前认证流程,不要修改文件
/code 按刚才的方案增加令牌过期处理
/architect 重构这一模块并保持公开 API 不变yaml# .aider.conf.yml
auto-lint: true
lint-cmd: npm run lint
auto-test: true
test-cmd: npm test
git-commit-verify: true
auto-commits: true
dirty-commits: falsebash# 以下命令在 Aider 会话中输入
/diff
/test npm test
/undo
# 离开 Aider 后仍可使用普通 Git
git log --oneline -5下一步:Aider 默认会自动提交 AI 改动,并可能先提交工作区中已有的未提交修改。首次在现有仓库中使用前,请先查看 git status,并根据团队流程配置 auto-commits、dirty-commits 和 git-commit-verify。
类似项目
这些项目也能在本地代码仓库中执行 AI 辅助开发,但在自主工具调用、客户端形态和 Git 工作流方面有所不同。
Aider vs OpenCode
Aider 和 OpenCode 都是开源、多模型的本地编码工具。Aider 更像围绕 Git、显式文件上下文和代码编辑优化的终端 Pair Programmer;OpenCode 则提供更完整的 Agent 工具调用、权限系统和多客户端平台。
| 比较维度 | Aider | OpenCode |
|---|---|---|
| 核心定位 | Git 原生的终端 AI Pair Programming | 跨终端、桌面和 IDE 的 AI Coding Agent |
| 主要界面 | 终端,另有实验性浏览器界面 | TUI、Desktop、IDE、Web 与 Server |
| 仓库上下文 | 显式聊天文件 + Tree-sitter Repo Map | 文件工具、搜索、LSP、项目规则与 Agent 上下文 |
| 工作模式 | Code、Ask、Architect、Help | Build、Plan、自定义 Agent 与 Subagent |
| 变更记录 | 默认每轮自动 Git Commit,可直接 /undo | 会话 Diff、Undo/Redo 与项目 Git 工作区 |
| 模型生态 | LiteLLM + OpenAI 兼容本地模型 | AI SDK + Models.dev,支持 75+ Provider |
| 扩展能力 | 配置、模型元数据、Lint/Test 和输入工具 | MCP、Plugins、Custom Tools、Commands 与 Server API |
| 更适合 | 希望小步编辑并用 Git 精确审查每轮修改 | 需要自主工具循环、细粒度权限和多客户端集成 |
如果你偏好在终端中明确选择文件、逐轮审查 Diff,并让每次 AI 修改自动进入 Git 历史,Aider 的工作流非常直接;如果你需要 Plan、Subagent、MCP、权限规则、桌面或 IDE 客户端,OpenCode 的平台能力更完整。两者都应先在非关键分支试用,并为命令执行、敏感文件和外部服务设置明确边界。
资料核验
版本、维护信息与本页采用的官方资料来源。
本页依据 Aider 官方安装、使用、Repo Map、Git、Chat Modes、Lint/Test、模型与配置文档整理。PyPI 包版本、主要语言、许可证和维护状态通过 PyPI 与 GitHub 官方 API 核验。
官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 5 月 22 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。