先说结论:要对已经理解的代码做精确、按 git 提交的修改,选 Aider;要把跨多个文件的任务整块交出去自主完成,选 Claude Code。两者都跑在终端里,也都能用同一把 Router One Key。下文依次对比编辑语义、模型支持、git 行为、自主性和成本,最后给六个任务各挑一个赢家。
Aider 和 Claude Code 都是终端 AI 编程 Agent——同一个产品类别,设计选择截然不同。Aider 是 2023 年诞生的开源老兵,git 集成深厚,秉持"最小可行 agent"哲学。Claude Code 是 Anthropic 官方 agent,围绕完全自主性和与 Claude 模型家族紧密集成设计。
很多开发者用其中一个没认真考虑过另一个。这篇文章是正面对决,在决定哪个适合你工作流的维度上:编辑语义、模型支持、git 行为、自主性、成本,以及每个工具最擅长什么。结尾六个具体编码任务,每个有明确赢家。
两种「终端 Agent」理论
Aider 认为 agent 的工作是对你的代码做精确、描述清楚的编辑,git 是真理之源。每次改动都 commit;每个 commit 有结构化消息;任何时候都能用一条命令回滚。Aider 主张少 chat——agent 编辑、你 review、你 commit、循环。
Claude Code 认为 agent 的工作是自主完成任务——读什么、改什么、跑什么,直到完成。git 是 agent 用的工具(要它 commit 它会、问它改了什么它能查)但不在心智模型中央。Agent 拿一个高层目标,做完再回报。
Aider 把 agent 当成谨慎的 diff 产生器。Claude Code 把它当成远程工程师。两个都成立;适合不同工作。
编辑语义
设计哲学最具体的体现。
Aider 让模型按某种文本编辑格式给出改动,再由 Aider 自己应用。使用 search-and-replace 格式(--edit-format diff)时,模型返回标明要替换哪几行的编辑块,Aider 应用后跑 linter/test(如已配置)并报告结果;编辑块与文件对不上时,Aider 会把不匹配的情况发回给模型重试。具体用哪种格式取决于模型:对认识的模型名,Aider 按内置预设选择;对不认识的模型名(包括网关的模型 ID),除非你指定编辑格式,否则默认整文件重写,模型要把改过的每个文件完整返回。编辑块让改动非常精确,但也限制了 agent 单回合能表达的内容。
Claude Code 用直接文件写工具——agent 能读文件、决定改什么、写出新内容。没有中间 diff 表示;agent 推理整个文件然后写结果。更灵活但精度上有取舍:单一不严谨的回合可能以意外方式重写文件。
定位明确的小改动(修这个函数、加这个方法),Aider 的精度赢。跨多文件的改动(重构这个模块、重组这些类型),Claude Code 的整文件心智模型赢。
模型支持
| 工具 | 默认模型 | BYO 端点 | 同 session 多模型 |
|---|---|---|---|
| Aider | 可配,常 Claude 或 GPT | ✅ 通过 --openai-api-base | ✅ 用 /model 切 |
| Claude Code | Claude Opus 5.5(v2.1.280 起;此前为 Opus 5)/ Sonnet 5 | ✅ 任意 Anthropic 兼容端点(ANTHROPIC_BASE_URL) | 受限(Claude 家族) |
Aider 的开放性是真正的优势。能这次用 GPT-5.5,任务中切到 Claude Opus 5,再切回来。Claude Code 的选择是战略立场——Anthropic 选了为一个模型家族优化,而不是做通用 CLI。
国内开发者两个工具都通过 Router One 跑得很顺:Aider 指向 https://api.router.one/v1,Claude Code 设 ANTHROPIC_BASE_URL=https://api.router.one。见 国内使用 Claude Code 完整指南。
Git 集成
Aider 围绕 git 而建。一些细节:
- 每次改动自动 commit。默认开启:Aider 每应用一次编辑就提交一次,提交信息是弱模型写的一行,例如 "refactor: use options struct in parseConfig"。
--no-auto-commits可以关闭。 - Repo map。Aider 把代码库解析成紧凑的文件/符号关系图,把摘要发给模型。帮模型在你不指定的情况下找相关代码。
/undo和/diff。回退最后一个 commit;显示当前未提交 diff。Aider 把它们当一等公民对待。
Claude Code 务实地用 git:
- 需要时把
git当 shell 命令跑(status、log、blame)。 - 不会自动 commit——改动堆积直到你自己 commit 或让 agent commit。
- 没有结构化的 repo-map 等价物;探索时直接读文件。
团队工作流是"每个改动都是干净 commit",Aider 的默认更友好。倾向于打包工作、按逻辑边界 commit 的话,Claude Code 更友好。
自主性
每天最大的差异。
Aider 是交互式的。你在提示符前,请求改动;agent 做;你 review 通过;下一条指令。循环短——通常每回合 30 秒到 2 分钟——你保持参与。
Claude Code 是自主的。你给一个高层目标;agent 跑 5-15 分钟动很多文件;你最后 review diff。运行期间你可以离开。
多数开发者觉得其中一种自然,另一种是阻力。哪个都对;适合你的就是匹配你专注节奏的那个。
成本
两个工具都按底层模型成本算。经验上,Aider 单任务成本通常更低,因为编辑更小更定向;Claude Code 单任务成本通常更高,因为加载更多上下文跨文件推理。
| 场景 | Aider 月费 | Claude Code 月费 |
|---|---|---|
| 轻度(每天 1 小时,定向任务) | $5-15 | $10-25 |
| 中度(每天 3 小时混合) | $20-50 | $40-90 |
| 重度(全职 agent 驱动) | $80-180 | $120-250 |
上面数字假设两个都用 Claude Sonnet 4.6。用更便宜的模型(Gemini 3.7 Flash、Haiku 4.5)Aider 便宜 30-50%,因为它路由更灵活。Claude Code 通过 Router One 也能用任意 Anthropic 兼容端点(ANTHROPIC_BASE_URL)——在 Router One 上就是 /v1/messages,服务当前目录中的 Claude 系列模型与 DeepSeek ID。prompt 缓存有没有用,取决于你指向的模型 API 以及请求怎么组织——别默认它能从一次 session 延续到下一次,去模型目录和自己的逐请求 trace 里核实;见 2026 年降低 LLM API 成本的 5 种方法。如果在考虑从 Sonnet 4.6 换到新一代,Claude Sonnet 5 vs Claude Sonnet 4.6 会从实时目录渲染两张规格表。
六个场景
| 场景 | 赢家 | 原因 |
|---|---|---|
| 修一个函数里的 bug | Aider | 精确编辑、即时 commit、干净 diff |
| 加一个跨 8 个文件的新 feature | Claude Code | 跨文件推理、自主迭代 |
| 提升可读性的重构 | Aider | 多个小定向编辑契合 Aider 模型 |
| 升级一个库的版本 | 都行 | 两个都行;Aider 给可预测 diff,Claude Code 给"放手做" |
| 给新模块写测试 | Claude Code | 跑-改-再跑循环天然契合,少需指导 |
| 心流里结对编程 | Aider | 紧密反馈循环,你一直在对话里 |
什么时候两个都用
一些团队 Aider 在一个 tab、Claude Code 在另一个。分工:
- Aider 给已知形态的改动——一个 bug、一个 feature、一次清理。本来你会自己写代码的那种工作。
- Claude Code 给形态待发现的改动——重构一个模块、调试棘手的测试失败、写一个还没完全设计的 feature。
类似很多开发者用的 Cursor + Claude Code 搭配,但在纯终端形态。编辑器侧变体见 Cline vs Cursor vs Claude Code。同一个位置上的第三个终端 agent 是 OpenCode:OpenCode 接入指南用同一把 Router One Key 把它配好,终端 agent 的正面横评见 OpenCode vs Claude Code vs Codex CLI。
配置速查
Aider(配合 Router One——完整配置见 Aider 接入指南):
pip install aider-install
aider-install
export OPENAI_API_KEY=sk-your-router-one-key
aider --openai-api-base https://api.router.one/v1 --model openai/openai/gpt-5.5
或用 Claude Sonnet:
aider --openai-api-base https://api.router.one/v1 --model openai/anthropic/claude-sonnet-4.6
开头的 openai/ 是 Aider 的协议前缀——告诉 Aider 对这个 base URL 走 OpenAI 兼容协议——后面接的是目录里的精确模型 ID。
Claude Code(配 Router One):
npm install -g @anthropic-ai/claude-code
export ANTHROPIC_BASE_URL=https://api.router.one
export ANTHROPIC_AUTH_TOKEN=sk-your-router-one-key
unset ANTHROPIC_API_KEY
claude
是两个变量而不是三个:ANTHROPIC_API_KEY 不需要设置,当前版本设了它启动时会多弹一次授权确认,之前设过请 unset。完整 Claude Code 流程见 配置指南。
Aider 能做、Claude Code 不能
- 编辑时自动 lint,每种语言可配 lint 命令。
- 语音模式——讲指令,agent 转录后执行。
- 浏览器模式——给非 CLI 用户启一个 Streamlit 风格 web UI。
- 多模型搭配——便宜的「弱模型」负责写提交信息和对话历史摘要;架构师模式(
--architect配合--editor-model)让一个模型规划改动、另一个模型写出编辑。 - prompt 里详细 token 遥测——每回合显示输入输出 token。
Claude Code 能做、Aider 不能
- Skills —— 触发时加载的指令化知识。见 Claude Skills 详解。
- MCP 集成 —— Model Context Protocol server 一等公民支持。见 Claude Code 值得安装的 9 个 MCP Server。
- 子 Agent —— 一个 Claude Code session 可以派生不同角色的子 agent。
- 长程自主性 —— 运行跨 15+ 分钟无需指导的 session。
- 为 Claude 原生设计的工具 —— 模型经过针对这种 CLI 形态的后训练,agent 循环的丝滑度看得出来。
常见问题
Aider 能用 Claude Code 的 MCP server 吗? Aider 原生不支持 MCP。社区有工作做两个协议的桥接,但目前不是一等公民。如果在乎 MCP,Claude Code 更合适。
Aider 和 Continue.dev 是一回事吗? 不同产品。Continue 是 VS Code/JetBrains 扩展,形态更像 Cline,而且已停止维护:据其 README,仓库在 2026-06-19 发布最终版 2.x 后转为只读。Aider 是 CLI 工具,在表面上更像 Claude Code,差异如上。
做代码 review 哪个更好? 两个都不是为 review 而生。Aider 可以把 review 反馈当作编辑应用;Claude Code 可以指着"review 这个 diff 提改动建议"跑。专门的 review 工作流,Cursor 的 review 功能 或者独立 review agent 通常更干净。
能在私有代码上跑吗? 两个都本地跑;离开你机器的只是发给 LLM API 的内容。Router One 不留存直接 API 调用的 prompt 和模型回复正文,仅记录用于计费、用量统计与故障排查的请求元数据。Playground 会保存会话历史,方便用户回看和继续对话。最大隐私的话,把任意工具指向自托管的本地推理模型网关。
Aider 支持语音模式——Claude Code 呢? 原生不支持。Claude Code 终端纯文本。要语音,用 Aider 模式或者把 Claude Code 配一层独立的语音转文字输入层。
一年后我会留下哪个? 难预测。两个都在快速进步。务实答案:选一个用两周,看合不合。换很便宜,没锁定。
结论
Aider 和 Claude Code 在同一个货架上——终端 AI 编程 agent——人体工学非常不同。Aider 是有深 git 根基的谨慎 diff 产生器;Claude Code 是模型搭配最强的自主工程师。挑哪个看你的专注节奏:短交互循环 vs 交出去-看 review。
包含 IDE 集成工具的更广视角见 Cline vs Cursor vs Claude Code 横评;底层网关问题(让任一工具在国内丝滑跑)见 Router One vs OpenRouter:中国开发者怎么选。