Aider 命令速查表 - 开源终端 AI 结对编程全参数

Aider 是开源 Apache 2.0 终端 AI 结对编程工具,面向想在本机编辑代码、让 AI 实际修改文件并自动 git 提交的开发者,支持 100+ 模型且不锁定供应商。它的特点是每次改动自动提交 git,配合 --test-cmd/--lint-cmd 形成"AI 改一行、坏了 /undo 回退"的安全循环;本表帮你掌握文件上下文管理、聊天模式切换与架构模式等核心命令。

AI 命令行·共 53 条命令·最后更新 2026-08-05
aideraipair-programmingcliagent结对编程

典型使用场景

面向希望在本地仓库里做可控改动的开发者,尤其是重视「随时能回退」的团队。Aider 的核心差异点是 git 集成:每次改动自动提交,配合 --test-cmd 和 --lint-cmd 形成「改—测—提交」的闭环,一行改坏用 /undo 就能回来。本表覆盖几条主线:模型与推理配置(--architect 双模型分工、--weak-model 用于廉价子任务、--map-tokens 控制仓库地图开销);文件与上下文管理(/add、/drop、/read-only 控制哪些文件可编辑);四种聊天模式(/code、/ask、/architect、/chat-mode);以及把一次会话存成可复现脚本的 /save 与 /load。

安装与启动 5

pip install aider-chat
通过 pip 安装(或 pipx 隔离安装)
aider
在 git 仓库中启动交互式结对编程
aider src/main.py tests/test_main.py
启动并把指定文件加入会话
aider --model claude-sonnet-4-6
指定主模型
export ANTHROPIC_API_KEY="sk-ant-..."
设置 Anthropic key(也支持 OpenAI/DeepSeek/本地)

模型与推理 7

aider --model ollama/codellama
使用本地 Ollama 模型
aider --architect --model claude-opus --editor-model claude-sonnet
架构模式:规划模型 + 编辑模型双模型
aider --weak-model gpt-4o-mini
指定弱模型(用于廉价子任务)
aider --reasoning-effort high
设置推理强度(兼容模型)
aider /think-tokens 4096
设置每轮思考 token 预算
/model
会话内切换主模型
/models
搜索可用模型列表

文件与上下文 9

/add src/auth/*.py
把文件加入会话(Aider 可编辑)
/drop tests/auth/test_login.py
移出会话以节省上下文
/read-only docs/api-spec.md
只读参考,禁止编辑
/ls
列出会话中的已知文件
/reset
丢弃所有文件并清空历史
/clear
清空可见对话历史
aider --map-tokens 2048
设置仓库地图 token 预算
aider --show-repo-map
打印当前仓库地图后退出
/map-refresh
强制刷新仓库地图

聊天模式 5

/code
代码模式:直接改代码(默认)
/ask
问答模式:只讨论不编辑文件
/architect
架构模式:规划与编辑双模型流程
/chat-mode
通用聊天模式切换器
/context
进入上下文浏览模式

Git 与运行 10

/git status
在会话内运行 git 命令
/commit "实现 JWT 认证"
手动提交脏改动
/undo
撤销 Aider 上次做的 git 提交
/diff
显示最近一次改动 diff
/run pytest tests/
运行 shell 命令并把输出喂给会话(别名 !)
/test
运行配置的测试命令
/lint
运行配置的 lint 命令
aider --auto-commits
每次改动自动 git 提交
aider --lint-cmd "ruff check"
改动后自动 lint
aider --test-cmd "pytest"
改动后自动跑测试

会话与工具 11

/voice
通过 Whisper 语音输入(需 portaudio)
/web https://docs.site
抓取网页渲染文本加入会话
/paste
从剪贴板粘贴图片或文本
/copy
复制上一条助手回复到剪贴板
/copy-context
复制会话上下文为 markdown
/save /path/script.md
把当前会话保存为可复现脚本
/load /path/script.md
从文件加载并运行命令
/settings
打印当前生效配置
/report
打开预填诊断的 GitHub issue
/help
Aider 回答关于自身的问题
/exit
干净退出

高级用法 6

aider --message "/ask 这个 bug 在哪"
非交互单条消息(--message/-m)
aider --edit-format whole
整文件编辑(小文件更稳)
aider --cache-prompts
启用提示缓存降本提速
/multiline-mode
切换多行输入模式
/vim
切换 Vim 键绑定
/editor
用外部 $EDITOR 写长提示

参数矩阵

参数作用示例
--model <m>指定主模型aider --model claude-sonnet-4-6
--editor-model <m>指定编辑模型,与 --architect 搭配aider --architect --model claude-opus --editor-model claude-sonnet
--weak-model <m>指定廉价弱模型,用于子任务aider --weak-model gpt-4o-mini
--architect架构模式:规划模型出方案、编辑模型出 diffaider --architect
--reasoning-effort <lvl>设置推理强度(模型支持时)aider --reasoning-effort high
/think-tokens <n>设置每轮思考 token 预算/think-tokens 4096
--map-tokens <n>设置仓库地图 token 预算aider --map-tokens 2048
--show-repo-map打印当前仓库地图后退出aider --show-repo-map
--auto-commits每次改动自动 git 提交aider --auto-commits
--test-cmd <cmd>改动后自动运行测试命令aider --test-cmd "pytest"
--lint-cmd <cmd>改动后自动运行 lintaider --lint-cmd "ruff check"
--edit-format whole整文件编辑,适合小文件aider --edit-format whole
--message / -m <s>非交互发送单条消息aider --message "/ask 这个 bug 在哪"
--cache-prompts启用提示缓存降本提速aider --cache-prompts
/add / /drop把文件加入会话 / 移出以省上下文/add src/auth/*.py
/read-only <f>只读参考,禁止编辑/read-only docs/api-spec.md
/ask / /code / /architect问答 / 改代码 / 双模型模式/ask 这个 bug 在哪
/run <cmd> 与 /test / /lint运行 shell 命令并把输出喂回会话/run pytest tests/
/commit / /undo / /diff提交脏改动 / 撤销上次提交 / 查看最近 diff/undo
/save / /load <file>会话存为可复现脚本 / 从脚本加载运行/save /path/script.md

易错点与避坑指南

现象会话越聊越慢、变贵,而且模型开始改到不相关的文件

原因会话里堆积了过多文件,仓库地图与文件内容一起挤占了上下文预算。

处置每任务只保留 3-5 个相关文件,用完就 /drop;必要时用 --map-tokens 压缩仓库地图预算。

现象Aider 改了不该动的文件,或者把只读文档也重写了

原因文件被 /add 进了可编辑集合;只读文件应当用 /read-only 而不是 /add。

处置把参考资料从 /add 换成 /read-only,用 /ls 核对当前会话里到底哪些文件可编辑。

现象复杂重构质量不稳定,方案做到一半就跑偏

原因单模型同时负责设计和编辑,容易在细节里丢失整体意图。

处置用 /architect 切双模型:规划模型出方案,编辑模型只负责落地 diff。

现象改完之后测试挂了,却不知道是哪一次改动引入的

原因没有把测试接入闭环,改动与验证分离。

处置启动时带 --test-cmd "pytest" --lint-cmd "ruff check",让每次提交前都自动跑一遍。

现象一次大改动后想整体回退,undo 不掉

原因/undo 只撤销 Aider 自己最近的那次 git 提交,更早的改动需要手动处理。

处置重要任务先开独立分支或保持 --auto-commits 开启,用 git log 定位提交后按需回退。

现象中文提问得到的是泛泛的英文回答,或答案与项目实际结构不符

原因仓库地图 token 预算太小,模型没拿到足够的结构信息。

处置先用 aider --show-repo-map 看看地图内容是否覆盖了相关目录,再调大 --map-tokens。

现象报告问题时说不清配置,把 key 一起贴了出去

原因/report 会预填诊断信息,直接把内容发出去有泄露风险。

处置提交前用 /settings 打印生效配置自查,必要时手工删掉 /copy-context 输出中的密钥行再外发。

排障路径

  1. 1确认会话里到底纳入了哪些文件

    /ls

    输出应只包含当前任务需要的文件;发现多余文件用 /drop 移出。

  2. 2检查仓库地图是否覆盖到目标目录

    aider --show-repo-map

    打印后退出,用于确认 token 预算是否够用;不够就调大 --map-tokens。

  3. 3在动手前先只问不动

    /ask 这个 bug 在哪

    问答模式不改文件,适合先定位问题再决定改法。

  4. 4查看最近一次改动的完整 diff

    /diff

    确认改动范围是否符合预期,异常立即 /undo 回到上一个提交。

  5. 5让测试输出回到会话作为依据

    /run pytest tests/

    命令输出会喂给模型,比人肉复制报错更快也更完整。

  6. 6打印当前生效配置并核对模型设置

    /settings

    重点核对主模型、编辑模型、test/lint 命令与自动提交开关是否符合预期。

命令示例

先只读问答定位问题,再决定要不要让它改

/read-only docs/api-spec.md /add src/main.py /ask 这个接口 500 的可能原因是什么

/ask 模式只讨论不落盘。把规格文档设为只读、代码加入会话,让它在不碰文件的前提下给出判断,是最安全的排查起点——确认方向对了再切 /code。

改动之后立刻验证,失败就整批撤销

/code /run pytest tests/ /diff /undo

Aider 的每次改动都会落成 git 提交,/undo 回退的是它自己刚做的提交。测试失败时先看 /diff 确认改了哪些文件,再用 /undo 整体回退,比手工逐个撤销干净。

用架构模式先规划,落地交给编辑模型

/architect 把限流拆成中间件和配置两层,先给方案不要改代码 /code

大改动直接让主模型写代码容易跑偏。/architect 让规划模型先输出结构,你审完再 /code 落地,方案阶段的错误成本最低。

会话太长时 drop 测试文件,保留生产代码

/add src/auth/*.py /drop tests/auth/test_login.py /ls

上下文有限,测试文件常常占了相当大的比例却对生成补丁帮助有限。/drop 只是移出会话(文件不变),/ls 用来确认当前到底装了什么,避免模型「以为」看过某个文件。

一次性提问,不进入交互界面

aider --message "/ask 这个 bug 在哪"

适合在脚本或 CI 里跑一次「让 AI 解释这段代码」。配合 /add 先把文件喂进去,-m 会在处理完这条消息后退出,不会挂在终端上等输入。

常见坑与注意事项

  • 工作区不干净时启动 Aider,模型生成的提交会把你的半成品改动一起卷进去;启动前先 /git status 或在干净分支上跑。
  • --auto-commits 会在每次改动后自动提交,CI 环境里如果分支受保护会在中途失败,留下半截提交难以追溯;首次使用建议先不开。
  • export ANTHROPIC_API_KEY="sk-..." 写进 shell 历史长期留在磁盘上;用 read -s 或 .env + 环境变量管理,别把密钥留在历史记录里。
  • 把 .env、密钥或含 token 的配置文件 /add 进会话,这些内容会进入模型上下文并发往远端 API;只读参考用 /read-only 也仍然会发送内容。
  • /undo 只能撤销 Aider 自己创建的提交:你在会话之外手工 git commit 的改动它不动,用错时机反而丢自己的代码。
  • 会话没 /exit 就直接关终端,未提交的编辑不会自动收尾:下次打开会看到残留改动,先 /diff 确认再决定提交还是回退。
  • /web 抓取的网页文本进入上下文后可能被模型当作指令执行(提示注入);对不可信的 URL 不要用 /web 抓进需要改代码的会话。

提示

  • 每次改动自动 git 提交是 Aider 的杀手锏:配合 --test-cmd 和 --lint-cmd,改坏了一行 /undo 就能回退。
  • 复杂重构用 /architect 双模型:规划模型出方案、编辑模型出 diff,质量比单模型全程更高且通常更省钱。
  • 只加相关文件(每任务 3-5 个),用完 /drop;小会话更快、更便宜、编辑更精准。
  • 先用 /ask 让 Aider 规划再编辑,复杂任务先想清楚能少走弯路。

常见问题

/code 和 /ask 模式该怎么选?

/ask 只讨论不修改文件,适合先让 AI 解释代码、评估方案;/code 则会直接改文件,是默认模式。接手陌生代码库时先用 /ask 问清楚再切 /code 动手,能避免它在你还没确认方向时就开始大范围改动。改错了可以用 /undo 撤销 Aider 上一次做的 git 提交。

为什么改之前要先把文件 /add 进会话?

Aider 只编辑你显式加入会话的文件,/add src/auth/*.py 把它加进来成为可编辑对象;/read-only docs/api-spec.md 则只作为参考资料引入,禁止修改。这是刻意的设计,防止它顺手改到你没打算动的文件。会话太大时用 /drop 把暂时不用的文件移出,节省上下文。

架构模式(--architect)解决什么问题?

它用两个模型分工:规划模型先产出方案,编辑模型再按方案改代码。相比单模型直接改,好处是大改动前会先有一份可审阅的设计,能显著减少「改了很多但方向错了」的返工。代价是成本和耗时翻倍,适合跨模块重构,日常小改用默认模式即可。

怎样在不污染主分支的前提下让 Aider 提交代码?

Aider 本身就是围绕 git 设计的,每次改动会自动提交,随时可以 /undo 回退。若要跑测试验证,用 /run pytest tests/ 让它执行命令并把输出喂回会话,比你手动粘贴报错更快。想先看改了什么再决定,用 /diff 显示最近一次改动的 diff。

怎么让 Aider 用本地模型?

模型名带 ollama/ 前缀即可,例如 aider --model ollama/codellama 会通过 Ollama 调用本地模型,配合提前启动 ollama serve 使用。本地模型同样支持架构模式:--architect 指定规划模型,--editor-model 指定编辑模型,两者可以都是本地模型,只是复杂任务的规划质量会下降。

官方参考来源

下方为命令对应的官方权威文档,供你核对最新用法与深入查阅。

由 巧匠 维护

公开更新于 2026年8月5日,内容持续校对官方文档。

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们