Aider:在终端里和 DeepSeek 结对写代码,改完自动提交
5 万 star 的命令行编程助手。它读你的 Git 仓库,改哪几个文件由它决定,每次都生成一个独立的 commit,回滚方便。
图形界面的 AI 编程工具一堆,但有一类人只想要一件事:在终端里,跟它说清楚要改什么,然后看 diff。
Aider 就是给这类人的。5 万 star,地址:
https://github.com/Aider-AI/aider
它最特别的地方:自动 commit
每完成一次修改,它给你生成一个 Git 提交,提交信息是它写的(“fix: 处理空字符串导致的崩溃"这种)。
好处很直接:改坏了就 git revert,不用手动存副本,也不用担心它把你的工作区搞乱。
这一点比很多 IDE 插件强——那些工具改完你得自己收拾。
装
python -m pip install aider-install
aider-install
或者:
pip install aider-chat
Windows 上建议用 WSL 或者 PowerShell 直接装,路径别带中文。
接 DeepSeek
两种方式,配一次就行:
# 方式一:环境变量
export DEEPSEEK_API_KEY=sk-你的key
# 运行
aider --model deepseek/deepseek-chat
或者写进 ~/.aider.conf.yml:
model: deepseek/deepseek-chat
之后在仓库目录里直接 aider 就进去了。
基本用法
进去之后是这样一个界面:
> 把 utils/date.ts 里的 formatDate 改成支持时区参数
它会:
- 找相关文件(你也可以用
/add手动指定); - 提出修改;
- 显示 diff;
- 应用,然后 commit。
常用命令:
| 命令 | 作用 |
|---|---|
/add 文件 | 把文件加进上下文 |
/drop 文件 | 移出上下文 |
/diff | 看这次改了什么 |
/undo | 撤销上一次修改 |
/run 命令 | 让它跑命令并看输出 |
/architect | 先出方案不动手 |
为什么它省 token
Aider 有一项"仓库地图”(repo map):它不全量读你的代码,而是先建一张结构图(哪些文件、哪些函数、怎么调用的),需要时再精确读取。
这比"把整个项目塞进上下文"省太多了。项目越大,差距越明显。
实际用起来的感觉
做小而明确的改动,很顺。“把这个函数改成 async"“加上错误处理"“给这个类补测试”,几秒钟的事。
做跨文件的改动,要盯着。它可能只改了一半,或者改错地方。
它不擅长"理解你的意图”。你说"优化一下性能”,它可能给你加个缓存。说"这里感觉不太对",它会瞎猜。说得越具体,它做得越好。
会踩的坑
它自动 commit 了,但你不想要这些提交
设置里可以关 --no-auto-commits,改成只改不提交。
路径有中文,报编码错误 Windows 上的老问题。项目放英文路径。
它读不到新加的文件
仓库地图有缓存,/refresh 一下。
改完代码样式全变了 你项目里没配 formatter。装 prettier/black,让它跑。
花费超预期
一次对话可能几十万 token(它反复读文件)。用 /tokens 看当前用量,及时清上下文。
和 IDE 插件的取舍
- Aider:终端里,快,可控,diff 清楚,适合熟悉 Git 的人;
- Cline / Roo:图形界面,能跑测试、能看报错闭环,适合想"让它自己搞定"的人。
我自己的用法:小改动用 Aider,需要反复试错的任务用 IDE 智能体。
它适合谁
- 天天用终端和 Git 的;
- 想要"看得见每一处改动"的;
- 在大仓库里工作,需要省 token 的。
不适合:不熟悉 Git 的(它的核心优势你用不上);不习惯命令行的。
最后
Aider 的思路很老派:AI 是个工具,你是指挥的人。
它不假装自己能自动完成一切,而是把每一步都摆在明面上——改了什么、为什么改、提交记录是什么。
在 AI 编程工具越来越"自动"的今天,这种克制反而少见。
有问题留言。
留言