首页 › tips-tricks › HN最爱终端AI:Aider八个冷门杀招

如果你是 Cursor / Claude Code 重度用户,大概率没认真用过 Aider。这个纯终端的 AI pair programmer 长年霸占 Hacker News 首页、GitHub Star 破 30k,是海外 senior 工程师"远程 ssh 上服务器改代码"时的标配——但国内技术圈聊 AI 编码,十个有九个只说 Cursor。这篇文章不是给你念 /add /commit 这种入门命令,而是挖出 Aider 八个 90% 用户没碰过的冷门开关:从 repo map 的 pagerank 算法、到把贵模型和便宜模型拆开用的 architect 模式、到直接丢进 CI 跑批的 --message 自动化。每一个都附带操作步骤、适用场景和省下的真金白银。

先说清楚:为什么 Aider 是被中国开发者严重低估的终端老炮

Aider(https://aider.chat)由 Paul Gauthier 维护,定位很纯粹:一个跑在终端里、跟 git 深度绑定的 AI 结对编程工具。它没有花哨的 IDE 界面,但它做对了几件事——所有改动自动 git commit(可一键 /undo)、用 tree-sitter 给整个仓库建"知识图谱"喂给模型、自带一套公开的编辑基准(aider benchmark,SWE Bench 的前身之一)。

它的真实使用画面是这样的:你 ssh 到一台没装 Cursor 的生产机,aider 一敲,丢一句"把 auth.py 里的 token 校验改成支持 refresh",它改完直接 commit。海外 devops / 后端 / infra 圈子爱死这个工作流,因为不是所有环境都能塞进一个 VS Code。中国开发者常年在 GUI 里,错过了一个真正"服务器原生"的 AI 编码工具。

下面八个杀招,按"冷门程度 + 实用价值"排序。

杀招一:Repo Map 不是文件树,是一张 pagerank 排序的知识图谱

大多数人以为 Aider 的 repo map 就是个 tree 命令的输出。错。

它用 tree-sitter 解析整个仓库,提取每个文件的类、函数、方法签名,然后用一个类似 Google PageRank 的算法给这些符号排序——排序依据是"哪些符号被当前正在编辑的文件引用最多"。也就是说,你正在改 payment.py,repo map 会自动把 order.py、refund.py 里相关函数的签名顶到前面,喂给模型;那些八竿子打不着的工具类则被压缩或省略。

操作步骤: 1. 在 Aider 里输入 /map,你会看到当前喂给模型的仓库地图(带签名,不只是文件名)。 2. 想强制刷新,用 /map-refresh(改了大量代码后模型可能用了旧地图)。 3. 在项目根放一个 .aiderignore,把 node_modules/、dist/、生成文件排除掉,map 会更准、token 更省。

预期效果:复杂仓库下,模型不再需要你手动 /add 每一个相关文件,它"自己知道"该参考谁。这是 Aider 在大型 codebase 上比裸 Cursor 更稳的核心原因之一。

适用场景:10 万行以上的老项目、微服务多仓、跨文件重构。

杀招二:Architect 模式——把贵模型当架构师,把便宜模型当码农

这是 Aider 最该被吹、却最少人用的省钱开关。

/architect 开启后,工作流拆成两段: - 架构师模型(你设的强模型,比如 Claude Opus)只负责"想"——输出一份纯文本的实现方案。 - 编辑器模型(你设的便宜模型,比如 DeepSeek 或 GLM)只负责"敲"——把方案落成具体的 search-replace 编辑。

操作步骤:

aider --architect \
      --model claude-opus-4-8 \
      --editor-model deepseek/deepseek-chat

或在交互里:

/architect
/editor-model deepseek/deepseek-chat

预期效果:复杂的逻辑设计交给贵模型(token 量小,因为它只输出方案不输出大段 diff),机械的、长文本的 diff 落地交给便宜模型。复杂重构任务能砍掉 40%-70% 的成本,质量几乎不掉。

适用场景:长任务、大重构、批量迁移脚本——凡是 diff 量大的活儿。

杀招三:CONVENTIONS.md + /read ——让 AI 自动遵守你的项目规矩

Aider 会自动读取项目根目录的 CONVENTIONS.md(早期版本是 CONVENTIONS.md,现在也认 .aider/ 下的约定文件)。你把"本项目的命名规范、禁止用某库、错误处理方式、提交格式"写进去,每次启动它都会带进上下文。

配合 /read(read-only 文件)和 /add(可编辑文件)区分: - /add src/models/user.py —— 模型可以改它。 - /read src/models/schema.py —— 模型只能看、不能动(比如你只想让它参考接口定义,别瞎改)。

预期效果:团队级规范一次写好,不用每次对话重复贴。新人 onboarding 仓库时,AI 改的代码天然符合团队 lint 风格。

杀招四:--watch 模式——把 AI 编程变成"写注释触发"

--watch 让 Aider 盯着文件变化。你可以建立一个 chat.md(或任意 watch 文件),直接在里面用自然语言写需求,保存,Aider 自动读取并执行;也可以在源码里用特殊注释标记 TODO,让它接着干。

操作步骤:

aider --watch
# 然后在另一个终端:echo "给 utils/time.py 加一个支持时区参数的 format 函数" >> chat.md

适用场景: - 双屏工作:左边编辑器看代码,右边终端 Aider 自动响应你的 markdown 指令。 - 长 pipeline:把一组需求写进 tasks.md,逐条让 Aider 消化。

这恰好是中国用户最缺的"非交互式"心智——很多人以为 AI 编码必须盯着一个对话框。

杀招五:--message / --message-file ——把 Aider 塞进 CI 跑批

Aider 支持完全非交互式运行,这意味着它能进 CI/CD、GitHub Actions、cron。

操作步骤:

aider --yes-always \
      --no-auto-commits \
      --message "把所有 console.log 替换成 logger.debug,并加 logger 配置" \
      && git diff

真实用法:海外团队拿它在 PR 里跑"自动补测试""自动修 lint""自动升级依赖版本"的批处理 job。一个仓库几百个重复重构,写个脚本喂给 Aider,一晚上跑完。

适用场景:批量代码迁移(框架升级、API 改名)、自动生成单元测试、定时清理 TODO。

杀招六:/web ——终端里直接搜网,不切窗口

Aider 内置 /web <query>,会在对话里直接做网页搜索并把摘要喂给模型。改代码时遇到"这个库新版 API 怎么调",不用切浏览器、不用复制粘贴文档。

/web LangChain 0.3 如何初始化 ChatModel

模型拿到搜索结果后再结合你的代码改。对离线文档不全、又不想中断终端流的 server-side 工作流特别友好。

杀招七:/test + 自动 lint ——闭环到"绿"为止

/test pytest tests/

Aider 会跑你指定的测试命令,失败后自动读取报错、继续修,直到通过或放弃。配合它默认开启的 lint(改完文件自动 lint 并尝试修 lint error),形成"改 → 测 → lint → 修"的闭环。

操作步骤(写在 .aider.conf.yml 里持久化):

test-cmd: pytest tests/
auto-test: true
lint-cmd:
  - "python: ruff check --fix"
  - "src/**.js: eslint --fix"

预期效果:TDD 场景下,你写一个失败测试,Aider 自动迭代到全绿。这是它比纯补全工具强的地方——它真的会"跑"你的代码。

杀招八:/voice、图片粘贴、/undo ——被忽略的人机交互细节

几个小而美的冷门开关: - /voice(或 --voice):直接对着麦克风说话输入需求,终端原生支持。开车/做饭时口述需求录下来让它改,海外播客圈有不少人这么用。 - 图片输入:/add screenshot.png 或 /paste(剪贴板里复制的报错截图直接喂进去)。前端改样式、对着设计稿改代码特别好用。 - /undo:撤销上一条 AI 改动(含 commit)。因为 Aider 每步都 commit,/undo 等于一个安全的"后悔药",鼓励你大胆让它试错。 - /tokens:实时看当前上下文吃了多少 token、花了多少钱。配合 --cache-prompts(开启 Anthropic prompt caching),长会话能再省一笔。

架构师模式 + Repo Map 协同流程

flowchart TD
    A[启动 aider --architect] --> B[tree-sitter 扫描全仓]
    B --> C{pagerank 排序符号}
    C --> D[生成精简 Repo Map]
    D --> E[架构师模型<br/>Claude Opus 出方案]
    E --> F[编辑器模型<br/>DeepSeek/GLM 落 diff]
    F --> G[自动 git commit]
    G --> H{跑 /test + lint}
    H -- 失败 --> F
    H -- 通过 --> I[/undo 可回滚/]
    I --> J[/tokens 查花费/]

信息差总结:你知道的 vs 海外 senior 玩的

维度 大多数中国开发者以为的 Aider 实际能做的
使用形态 必须装 GUI / IDE 插件 纯终端,ssh 上服务器就能用
仓库理解 手动 @file 一个个喂 pagerank 排序的 repo map 自动喂
成本控制 一个模型扛全部 architect 拆"贵模型想 + 便宜模型敲"
自动化 只能交互式 --message 直接进 CI 跑批
规范约束 每次对话重复贴 CONVENTIONS.md 自动加载
安全网 怕 AI 改坏不敢用 每步 commit + /undo 随时回滚
闭环 改完我手动跑测试 /test 自动迭代到全绿

行动指南:今晚就能上手的三步

  1. 安装并接上便宜模型:pip install aider-chat,配一个 DeepSeek 或 GLM 的 API key(Aider 支持任意 OpenAI 兼容接口)。先用便宜模型跑日常编辑,把 Opus 留给 architect。
  2. 在一个老项目里开 architect + repo map:aider --architect --model claude-opus-4-8 --editor-model deepseek,丢一个跨文件重构任务,对比一下和 Cursor 的 token 账单。建一个 .aiderignore 排掉生成物。
  3. 挑一个重复劳动写进 CI:找仓库里"给所有函数补 docstring""升级某 API 用法"这类批量活,用 aider --yes-always --message-file tasks.md 在 GitHub Actions 里跑一个 nightly job。

预算敏感的团队,强烈建议把日常 edit 默认模型设成 DeepSeek/GLM,只在大任务手动 /architect 切 Opus——这是 Aider 区别于所有 GUI 工具的最大红利。

参考来源


本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入