
Aider:终端里的 Git 仓库结对编程 AI 助手|部署与使用全指南
项目仓库: https://github.com/Aider-AI/aider
开源协议:Apache 2.0 · 语言:Python · 交付形态:终端命令行工具
aider,另有 Docker 镜像 ·
模型接入:OpenAI、Anthropic、DeepSeek、OpenRouter、Gemini、Groq、OpenAI
兼容端点、本地 Ollama · 无独立 Web 服务端口 · 官方文档:aider.chat/docs
非官方声明:Aider 是开源社区项目,与 OpenAI、Anthropic、Google、DeepSeek 等模型厂商不存在隶属、授权或合作关系;文章中出现的模型名称仅用于说明兼容目标。模型 API Key、订阅账号与服务条款由对应厂商约束,使用者须自行确认项目代码外发合规边界。
1 项目简介
Aider 是一款运行在终端里的 AI 结对编程助手:在 Git 仓库目录中启动
aider,把需要修改的文件加入聊天,用自然语言描述需求,Aider
直接编辑这些文件,并在每条消息后按 Conventional Commits 规范自动提交到
Git,提交信息附带 (aider) 署名。它内置仓库地图(repo
map)感知整个代码库结构,支持 100 多种编程语言,可配合 IDE 的 watch
模式、图片与网页上下文、语音输入、自动 lint 与测试流程使用。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Aider(命令名 aider,PyPI 包
aider-chat) |
| 仓库地址 | github.com/Aider-AI/aider |
| 项目定位 | 终端内 Git 仓库结对编程 AI,对话即改代码、自动提交 Git |
| 开源协议 | Apache 2.0 |
| 主要语言 | Python |
| 交付形态 | 终端 CLI、Docker
镜像(paulgauthier/aider、paulgauthier/aider-full) |
| 部署方式 | aider-install / 一键脚本 / uv /
pipx / pip 安装;Docker 运行;源码开发 |
| 独立服务端口 | 无独立 Web 服务;本地模型复用 Ollama 默认端口
11434 |
| 配置文件 | 主目录或仓库根目录 .aider.conf.yml;环境变量
AIDER_*;.env 文件 |
| 官方文档 | aider.chat/docs |
| 模型排行榜 | aider.chat/docs/leaderboards |
1.2 适用场景
- 习惯终端与 Git 工作流的开发者,希望 AI 在真实仓库里边对话边改代码,每步改动都有可回退的 Git 提交。
- 多文件重构、补测试、修 Bug、写文档等需要模型先理解仓库结构再动手的任务。
- 在服务器、SSH 会话、容器等无图形界面环境中完成结对编程。
- 混合使用云端强模型与本地 Ollama 模型:敏感代码走本地,通用任务走云端。
- 通过 IDE watch 模式与现有编辑器配合:在编辑器里写 AI 注释触发 Aider 修改,无需切换应用。
1.3 能力边界(官方口径)
- 官方 README 自述为 “AI pair programming in your terminal”:在聊天中加入文件、让模型修改、按消息自动提交;自动生成仓库地图,支持 100+ 语言;可向聊天添加图片与网页,支持语音输入、lint 与测试。
- 项目本身不提供模型、API Key 与模型权重;模型能力、上下文窗口、工具调用与计费由所选提供者决定。官方推荐模型与完整兼容清单见 llms 文档 与 排行榜。
- 自动提交依赖 Git 仓库;非 Git 目录可通过
--no-git关闭 Git 集成,但将失去自动提交与历史回退能力。 - Aider 只负责把模型返回的差异落到文件并执行 Git 操作,不保证代码正确;lint、测试与人工评审仍是必要环节。
2 功能特性
2.1 对话式文件编辑与自动提交
- 在聊天中用
/add <file>把文件加入会话,Aider 只修改已加入聊天的文件;/drop <file>移出,/clear清空历史。 - 每条模型消息生成后自动创建 Git 提交:提交信息遵循 Conventional
Commits,正文说明改动,提交记录附带
(aider)署名;仓库初始为脏状态时先做一次 dirty commit 保存现有改动。 - 聊天内命令
/diff查看当前未提交差异,/undo撤销最近一次 Aider 提交,/commit手动提交,/git执行任意 Git 命令,/tokens查看 Token 用量。
2.2 仓库地图(Repo Map)
- 自动扫描仓库生成结构化地图,把最相关的文件、类与函数摘要送入模型上下文,帮助模型在大型代码库中定位代码。
- 可用
--map-tokens调整地图占用 Token 预算,--map-refresh manual改为手动刷新,--subtree-only只考虑当前子目录。
2.3 架构师模式(Architect)
--architect启用双模型协作:架构师模型负责规划方案,编辑模型负责落地代码;--auto-accept-architect自动接受架构师方案,--weak-model指定承担轻量任务的弱模型。
2.4 Lint、测试与 watch 模式
- 改动后可自动运行
lint(
--auto-lint,默认开启)与测试(--auto-test,默认关闭);--lint-cmd "python: flake8 --select=..."按语言指定命令,--test-cmd指定测试命令。 --watch-files监听文件中的 AI 编码注释,配合任意 IDE / 编辑器触发修改;--lint与--test可在退出前集中修复问题。
2.5 图片、网页与语音
- 聊天中可粘贴图片、拖拽截图,或用
/web <url>添加网页内容;网页抓取默认使用httpx,安装 Playwright Chromium 后可渲染 JS 页面。 /voice语音输入:Linux 需要 PortAudio(libportaudio2),macOS 用brew install portaudio,Windows 无需额外安装。
2.6 多模型与本地模型
- 云端:OpenAI(o1、o3-mini、GPT-4o 等)、Anthropic(Claude 3.7 Sonnet、Haiku 等)、DeepSeek(R1、Chat V3)、OpenRouter、Gemini、Groq 等;本地:Ollama、LM Studio 及任意 OpenAI 兼容端点。
- 模型通过
--model指定,也可用--alias给模型起别名;--edit-format控制差异格式(diff、diff-whole、udiff、edits等)。
3 官方界面预览
3.1 终端对话与统一差异
下图为官方文档中的终端界面:输入 “change hello to goodbye”,Aider
展示 hello.py 的 ORIGINAL / UPDATED
差异,落地修改后自动提交,并在提交信息中署名 (aider)。

3.2 IDE watch 模式
下图为官方文档中的编辑器配合场景:在代码注释中留下 AI 提示,Aider 监听文件变化后按注释完成修改,实现与现有编辑器的无缝配合。

4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | https://github.com/Aider-AI/aider | 源码、README 与历史 Issue |
| 官方文档 | https://aider.chat/docs/ | 安装、配置、模型、故障排查 |
| 安装指南 | aider.chat/docs/install.html | 各平台安装方式与 Python 版本要求 |
| 模型清单 | aider.chat/docs/llms.html | 支持的模型、提供者与环境变量 |
| 模型排行榜 | aider.chat/docs/leaderboards/ | 各模型编程能力实测排名 |
| 配置选项 | aider.chat/docs/config/options.html | 完整命令行参数参考 |
| PyPI | pypi.org/project/aider-chat | aider-chat 包发布页 |
| Docker 镜像 | hub.docker.com/r/paulgauthier/aider | 核心镜像与全量镜像 |
| Issues | github.com/Aider-AI/aider/issues | Bug 反馈与问题跟踪 |
5 前置要求与环境配置
5.1 软件前提
- Python:
pip直装路径支持 Python 3.9–3.12;核心包兼容 3.8–3.13,可选附加组件在不同版本上支持情况不同,具体以 install 文档 为准。 - Git:官方建议安装 Git,以获得仓库地图、自动提交与回退能力;安装指引见 git-guides/install-git。
- 模型凭据:OpenAI、Anthropic、DeepSeek、OpenRouter、Gemini 等任一提供者的 API Key;本地模型则需要本机运行 Ollama 等推理服务。
- 可选组件:Playwright Chromium(JS
网页抓取)、PortAudio(语音输入)、
git命令行工具。
5.2 硬件与系统建议
| 项目 | 说明 |
|---|---|
| 操作系统 | macOS、Linux、Windows(官方安装脚本与 python -m aider
均覆盖) |
| 内存 | 云端模型对本机内存要求低;本地模型按模型参数规模预留内存与显存 |
| 磁盘 | 安装包与依赖占用较小;本地模型权重单独预留空间 |
| 网络 | 访问所选模型提供者接口;本地模型无需出网调用云端 |
5.3 端口与目录
| 项 | 默认值 | 用途 |
|---|---|---|
11434 |
Ollama 本地推理服务 | 本地模型对接默认接口 |
.aider.conf.yml |
主目录或仓库根目录 | 持久化配置文件 |
.env |
仓库根目录 | 存放各提供者 API Key 与环境变量 |
.aiderignore |
仓库根目录 | 指定不纳入编辑范围的文件 |
6 方式一:本地 CLI 安装(推荐日常使用)
Aider 是终端桌面工具,无服务端部署形态;以下按官方安装文档给出本地安装路径。
6.1 推荐安装:aider-install(隔离环境)
python -m pip install aider-install
aider-installaider-install 会为 Aider 创建独立 Python
环境,避免与项目依赖冲突,是官方在依赖问题排查中推荐的安装方式。
6.2 一键脚本(macOS / Linux)
curl https://aider.chat/install.sh | shWindows PowerShell:
irm https://aider.chat/install.ps1 | iex安全提示:管道执行远程脚本前建议先下载脚本阅读内容;脚本行为与依赖以官方 install 文档 为准。
6.3 uv 安装
uv tool install --force --python python3.12 --with pip aider-chat@latest6.4 pipx 安装
pipx install aider-chat6.5 pip 直装(注意依赖隔离)
python -m pip install -U aider-chat官方提醒:Aider 锁定了部分依赖版本,直接
pip安装时不要随意升降级litellm等核心包;与 Python 项目自身依赖冲突时,优先改用aider-install、uv或pipx隔离环境。
6.6 首次启动与模型配置
# OpenAI
export OPENAI_API_KEY=your-openai-key
cd your-git-repo
aider
# 指定模型启动
aider --model gpt-4o
# DeepSeek
export DEEPSEEK_API_KEY=your-deepseek-key
aider --model deepseek-chat
# 本地 Ollama 模型
export OLLAMA_API_BASE=http://127.0.0.1:11434
aider --model ollama_chat/qwen2.5-coder:7bOllama 本地模型建议先调大上下文长度再启动服务:
export OLLAMA_CONTEXT_LENGTH=8192
ollama serve启动后在聊天中加入文件并描述需求:
> /add src/main.py
> 把 main.py 里的错误处理改成抛出带上下文的自定义异常7 方式二:Docker 运行与源码开发
7.1 Docker 核心镜像
docker pull paulgauthier/aider
# 在 Git 仓库根目录执行;当前目录映射到容器 /app
docker run -it --user $(id -u):$(id -g) \
--volume $(pwd):/app \
paulgauthier/aider \
--openai-api-key $OPENAI_API_KEY7.2 Docker 全量镜像
paulgauthier/aider-full
预装全部可选附加组件,包括交互式帮助、浏览器 GUI 与 Playwright
网页抓取支持;核心镜像首次访问这些功能时会现场安装,容器重建后需要重装。
docker pull paulgauthier/aider-full
docker run -it --user $(id -u):$(id -g) \
--volume $(pwd):/app \
paulgauthier/aider-full \
--openai-api-key $OPENAI_API_KEY7.3 容器内 Git 配置
容器不会继承宿主机全局 Git 配置,启动前在仓库内设置提交身份:
git config user.email "you@example.com"
git config user.name "Your Name"7.4 容器使用限制(官方口径)
- 聊天内
/run执行的 Shell 命令运行在容器内部,不是宿主机;跑项目测试、调用本机服务时需要把相应环境与依赖一并装入镜像。 /voice语音需要容器访问宿主机音频设备;镜像已预装libportaudio2,挂载音频设备的具体方式以官方 Docker 文档与宿主机系统为准。
7.5 从源码运行(开发者)
git clone https://github.com/Aider-AI/aider.git
cd aider
python -m pip install -e .
python -m aider开发依赖、测试与构建命令以仓库 CONTRIBUTING 与
requirements/ 目录最新说明为准。
8 配置项说明
8.1 配置来源与优先级
Aider 配置按以下顺序生效:命令行参数 → 环境变量 AIDER_*
→ .env 文件 → 配置文件
.aider.conf.yml。配置文件可放在主目录或当前 Git
仓库根目录;--env-file 指定 .env
路径,--config 指定配置文件路径。
8.2 .aider.conf.yml 示例
model: gpt-4o
weak-model: gpt-4o-mini
auto-commits: true
dirty-commits: true
auto-lint: true
map-tokens: 1024
dark-mode: true
lint-cmd:
- "python: ruff check --fix"
- "javascript: eslint --fix"
test-cmd:
- "pytest -x"YAML 键名与命令行参数同名;完整字段以 options 文档 为准。
8.3 API Key 配置方式
# 命令行
aider --openai-api-key sk-...
aider --anthropic-api-key sk-...
aider --api-key gemini=xxx
# 环境变量 / .env 文件
OPENAI_API_KEY=your-key
ANTHROPIC_API_KEY=your-key
GEMINI_API_KEY=foo
OPENROUTER_API_KEY=bar
DEEPSEEK_API_KEY=baz其他提供者通过 --api-key provider=<key>
设置,等价于写入 PROVIDER_API_KEY 环境变量;密钥不要提交到
Git 仓库。
8.4 常用参数速查
| 分组 | 参数 | 说明 |
|---|---|---|
| 模型 | --model MODEL |
主模型;--weak-model
指定轻量模型,--editor-model 指定编辑模型 |
| 模型 | --architect / --auto-accept-architect |
架构师模式;自动接受架构师方案 |
| 模型 | --reasoning-effort /
--thinking-tokens |
推理强度与思考 Token 预算 |
| 模型 | --openai-api-base / --openai-api-type /
--openai-api-version /
--openai-api-deployment-id |
OpenAI 兼容端点与 Azure 配置 |
| 模型 | --edit-format |
差异格式:diff、diff-whole、udiff、edits
等 |
| Git | --auto-commits / --no-auto-commits |
改动后自动提交(默认开启) |
| Git | --dirty-commits / --no-dirty-commits |
仓库初始脏状态先提交(默认开启) |
| Git | --git / --no-git |
是否查找 Git 仓库 |
| Git | --commit / --commit-prompt /
--dry-run |
退出前提交;自定义提交提示;空跑不改文件 |
| Git | --attribute-author /
--attribute-co-authored-by |
提交署名相关开关 |
| 仓库地图 | --map-tokens / --map-refresh /
--subtree-only |
地图预算、刷新策略、子目录限定 |
| Lint / 测试 | --lint / --lint-cmd /
--auto-lint |
集中 lint、按语言命令、改动后自动 lint |
| Lint / 测试 | --test-cmd / --auto-test /
--test |
测试命令、自动测试、退出前跑测试并修复 |
| 历史 | --chat-history-file /
--restore-chat-history |
历史文件与启动时恢复 |
| 输出 | --dark-mode / --light-mode /
--pretty / --stream |
终端配色与流式输出 |
| 集成 | --watch-files / --copy-paste /
--apply |
IDE watch 模式、剪贴板粘贴应用 |
| 其他 | --message / --exit /
--yes-always / -v |
单轮消息、退出、全程确认、详细日志 |
8.5 聊天内常用命令
| 命令 | 作用 |
|---|---|
/add <file> |
把文件加入聊天 |
/drop <file> |
把文件移出聊天 |
/diff |
查看当前未提交差异 |
/undo |
撤销最近一次 Aider 提交 |
/commit |
手动提交全部待提交改动 |
/git <cmd> |
在仓库中执行任意 Git 命令 |
/tokens |
查看当前 Token 用量 |
/clear |
清空聊天历史 |
/web <url> |
添加网页内容到聊天 |
/voice |
开启语音输入 |
/help |
查看聊天内命令列表 |
9 常用运维命令
# ---- 安装与版本 ----
aider --version # 查看版本
aider --check-update # 检查更新
aider --upgrade # 升级到最新版本
aider --just-check-update # 仅检查不更新
# ---- 单轮无头运行 ----
aider --message "Write unit tests for src/utils.py" --exit
aider --message "Fix the failing test" --auto-test --exit
# ---- 历史与配置 ----
# 配置文件:~/.aider.conf.yml 或仓库根 .aider.conf.yml
# 历史文件:--chat-history-file 指定,--restore-chat-history 启动恢复
aider --config ./aider-settings.yml --restore-chat-history
# ---- 仓库巡检 ----
aider --show-repo-map # 查看仓库地图
aider --show-prompts # 查看发送给模型的提示词(调试用)
aider --dry-run # 空跑,不修改文件更新依赖后若出现导入错误,优先重建隔离环境(aider-install
/ uv tool install / pipx install)。
10 常见故障排查
10.1
aider: command not found
- 安装脚本未把命令目录加入
PATH;可直接用python -m aider启动。 - 确认当前终端已重新打开或执行了 shell 配置重载;
pipx/uv安装后检查对应工具的二进制目录是否在PATH中。
10.2 ImportError 与依赖版本冲突
- 官方排查口径:Aider 锁定了依赖版本,Homebrew、AUR、ports
等包管理器常装错依赖导致导入错误;改用
aider-install、uv或pipx隔离环境安装。 - 不要随意升降级
litellm,该包更新频繁且可能引入不兼容变更;与项目依赖冲突时在独立环境运行 Aider。
10.3 Token 上限错误
- 上下文超限:用
/drop移出不需要的文件,只保留需要修改的文件;/clear清空历史;把大文件拆小;换用上下文窗口更大的模型。/tokens查看当前用量。 - 输出超限:把大改动拆成多轮小修改;使用支持返回 diff 的强模型;部分模型支持长输出模式,见官方 infinite-output 文档。
- 代理或本地模型服务器不符合规范时也可能误报 Token 错误;去掉 API 代理直连官方云接口或 Ollama 验证问题是否复现。
10.4 模型连接或 SSL 错误
- 核对
--openai-api-base、--openai-api-type、--anthropic-api-base等端点配置与环境变量;私有部署模型确认 Base URL 路径完整。 - 自签证书环境使用
--verify-ssl(默认校验开启);内网证书问题需先把根证书导入系统证书库。
10.5 语音与网页功能不可用
- 语音:Linux 安装
libportaudio2(必要时补libasound2-plugins),macOSbrew install portaudio;容器内需额外挂载音频设备。 - 网页:
/web默认用httpx抓取;被 JS 渲染或反爬拦截的页面先安装 Playwright Chromium:playwright install --with-deps chromium。
10.6 Docker 内命令与测试跑不通
/run
命令在容器内执行,项目依赖、数据库、环境变量不会自动从宿主机带入;需要在自定义镜像中安装依赖,或把测试命令所需目录与端口挂载进容器。
10.7 Windows PowerShell 执行策略
若安装脚本被执行策略拦截,以管理员身份或当前用户身份调整 PowerShell
执行策略后重新运行 install.ps1;调整范围与安全风险以
Windows 官方文档为准。
11 风险与合规说明
以下条款整理自官方 README、Apache 2.0 许可证与官方文档口径;如与官方原文不一致,以仓库
LICENSE.txt、README 与 aider.chat/docs 为准。
11.1 开源协议
Aider 采用 Apache 2.0 许可证,允许自由使用、修改与再分发,修改文件需保留版权声明与许可证副本;Docker 镜像中预装的可选组件各自遵循其对应许可。
11.2 模型与代码隐私
- 项目不附带模型与 API Key;OpenAI、Anthropic、DeepSeek、OpenRouter、Gemini、Groq 等服务归对应厂商所有,受其条款、隐私政策与计费规则约束。
- 文件内容、仓库地图摘要、终端输出会按所选模型发送到对应服务;商业敏感代码优先使用本地 Ollama 等离线模型,并在团队内明确代码外发规范。
11.3 自动提交与改动风险
- 默认开启自动提交,模型生成的修改会直接进入 Git
历史;重要分支建议先切到特性分支,人工评审 diff 后再合并,必要时用
--no-auto-commits改为手动提交。 --dry-run可在不改文件的前提下验证提示与方案;lint、测试与人工代码评审不应由 Aider 替代。
11.4 商业使用与免责
Apache 2.0 不限制商业场景使用,但集成模型提供者与第三方组件时须同时满足各自许可。项目按现状(AS-IS)提供,不对模型输出正确性、代码安全与服务可用性作担保;使用者自行承担代码质量、数据泄露、服务中断与业务损失风险。如认为仓库内特定文件侵犯合法权益,请通过 GitHub Issues 提交说明,不要在公开 Issue 中提交 API Key、令牌或敏感代码。