终端福音,AI终端编程助手Aider

简介

Aider是一款为软件开发者设计的终端AI编程工具,它允许开发者与大型语言模型 (LLMs) 配对编程,直接在本地git仓库编辑代码。它支持多种编程语言,提供 code、ask、architect 和 help 四种聊天模式,用户可通过特定命令切换。它具备自动提交代码更改、生成合理提交消息、支持多文件编辑和实时更新等核心功能,还支持语音编码及处理图像和URL。在SWE Bench测试中表现卓越,集成 GPT-4 和 Claude 3.5 Sonnet 等大语言模型可以显著提升编码效率和生产力。

Aider的功能特点

  • 配对编程:Aider的核心功能是允许开发者与大语言模型 (LLMs) 协同工作,开发者可以直接利用Aider启动项目、添加新功能、编辑代码、更新文档等操作。
  • 自动生成和提交信息:Aider 不仅能修改代码,还能自动提交更改,并生成合理的提交信息,大大提升了代码管理的效率
  • 多语言多模型支持:Aider 支持多种编程语言,覆盖了大多数主流的编程语言。Aider 提供三种不同的聊天模式,开发者可以通过 /code、/ask 和 /help 命令方便地切换模式
  • 多LLM集成:Aider 集成了众多大语言模型,包括 GPT-4 和 Claude 3.5 Sonnet 等,可以选择最适合自己的 LLM
  • 多文件编辑和实时更新:Aider 支持多文件编辑,可以同时处理多个文件,满足复杂请求的需求,并且Aider 会始终使用代码的最新版本,实时更新文件,提升开发者效率
  • 语音增强体验:Aider 提供语音编码功能,让开发者可以通过语音与 Aider 进行交互。

优势

Aider是一个Python终端命令依赖库,安装简易,随处可用,如可以在本地、Github Codespaces、Replit等平台上使用

限制

  • Aider是以文件目录和Git管理的文件的,Aider建议最好在一个目录下启动服务且初始化git
  • Aider没有实现某些大模型的代理,使用如gemini时需要科学上网

官网

官网地址:aider.chat

安装Aider

官网安装地址:aider.chat/docs/instal...

官方提供了多种安装方式,可以根据自己的情况选择,具体差异如下

我本地安装的有python3.10版本且我不想安装python3.12,安装方式如下:

scss 复制代码
$ python -m pip install -U --upgrade-strategy only-if-needed aider-chat
// 其他依赖库,也可以后续使用到时安装,需要时Aider会有提示
/// 帮助命令依赖库
$ python -m pip install --upgrade --upgrade-strategy only-if-needed 'aider-chat[help]'
/// URL抓取相关依赖库
$ python -m pip install --upgrade --upgrade-strategy only-if-needed 'aider-chat[playwright]'
/// 浏览器模式依赖库
$ python -m pip install --upgrade --upgrade-strategy only-if-needed 'aider-chat[browser]'

安装完成后,输入命令

css 复制代码
$ aider --version

打印如下信息表示安装成功

基本使用

命令行帮助

shell 复制代码
$ aider --help

查看模型列表

css 复制代码
 $ aider --list-models gpt

启动Aider

不同LLMs的使用方式参考官方文档:aider.chat/docs/llms.h...

以 DeepSeek 为例,在终端中执行(Aider建议使用这种方式)

shell 复制代码
$ export DEEPSEEK_API_KEY=<key> 
$ aider --deepseek

Aider中也提供了快捷启动方式

css 复制代码
[--opus] [--sonnet] [--haiku] [--4] [--4o] [--mini] [--4-turbo] [--35turbo] [--deepseek] [--o1-mini] [--o1-preview]

使用方式如下

vbnet 复制代码
$ aider --deepseek --openai-api-key your-deepseek-api-key
$ aider --4 --openai-api-key your-openai-api-key
$ aider --4o --openai-api-key your-openai-api-key
$ aider --sonnet --anthropic-api-key your-anthropic-api-key

也可以通过手动指定模型名称来启动

css 复制代码
$ aider --model gpt-4o --openai-api-key your-openai-api-key
$ aider --model gemini/gemini-1.5-pro-latest
$ aider --model deepseek/deepseek-chat --openai-api-key your-deepseek-api-key

Aider启动成功后就可以看到如下信息

提示词缓存

Aider 支持提示缓存以节省成本并加快编码速度。目前,Anthropic 为 Sonnet 和 Haiku 提供缓存,而 DeepSeek 为 Coder 提供缓存。开启提示词缓存,需在启动命令后添加 --cache-prompts

css 复制代码
$ aider --deepseek --cache-prompts

聊天内命令

命令官方文档地址:aider.chat/docs/usage/...

aider中内置了丰富的指令,通过这些指令可以快速与Aider进行准确交互

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | |

/add

add命令可以将文件添加到上下文

添加文件需要模型支持,如果模型不支持就会出现如下错误

/commit

添加功能修改文件时,Aider会默认保存和提交commit,如果没有自动提交,可以手动执行commit命令

/voice

voice功能应该是默认使用了OpenAI的能力

/ls

查看本地仓库所有的文件,与 /run ls 效果一样

/paste

paste命令可以将剪切板中的图像/文本粘贴到聊天中

/copy

将最后一条助手消息复制到剪贴板

/copy-context

将当前聊天上下文复制为 markdown,适合粘贴到 Web UI 中

vbnet 复制代码
Here are summaries of some files present in my git repository.
Do not propose changes to these files, treat them as *read-only*.
If you need to edit any of these files, ask me to *add them to the chat* first.
.gitignore
20250107165331.jpg
number_play.py:
│def factorial(n):
⋮...
│def fibonacci(n):
⋮...
│def fibonacci_iterative(n):
⋮...
│def factorial_iterative(n):
⋮...
Don't try and edit any existing code without asking me to add the files to the chat!
Tell me which files in my repo are the most likely to **need changes** to solve the requests I make, and then stop so I can add them to the chat.
Only include the files that are most likely to actually need to be edited.
Don't include files that might contain relevant context, just files that will need to be changed.
Just tell me how to edit the files to make the changes.
Don't give me back entire files.
Just show me the edits I need to make.

/diff

显示自上一条消息以来的更改差异

/drop

从聊天会话中删除文件以释放上下文空间,drop命令后不跟参数默认删除所有上下文,drop命令后跟文件名从上下文中删除指定文件

/undo

撤销上一个git提交及修改(Aider创建的commit)

/run

运行shell指令,并可以选择性地讲输出添加到聊天在中

/web

抓取网页,转为markdown格式并发送消息

/reset

删除所有文件并清楚所有聊天记录

聊天模式

Aider提供了 code、architect、ask、help 4种聊天模式:

  • code: Aider 将更改您的代码以满足您的请求
  • architect:Aider 首先会提出一个解决方案,然后询问您是否希望它将该提案转化为对文件的编辑
  • ask:Aider 将回答有关您的代码的问题,但绝不会对其进行编辑
  • help:Aider 将回答有关使用 aider、配置、故障排除等的问题

切换聊天模式,可以在终端直接使用 /code、/architect、/ask、/help 快速切换

/ask

/help

|------------------------------|
| 该命令好像需要科学上网环境,本人只有科学环境成功获取成功 |

首次使用help命令需要额外安装 aider-chat[help] 依赖库获取其他缺失的依赖,等安装完成后即可正常使用help命令。

/code

code命令可以创建文件,并对文件进行修改保存以及执行操作

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | |

/architect

自动补全模式

启动Aider时添加 --watch-files 可以监听文件更改,Aider会查找单行注释 (# ...或 // ...)以 AI、AI! 或 AI?开头或结尾,对该注释部分进行代码自动补全

css 复制代码
$ aider --model gemini/gemini-2.0-flash-exp --watch-files

启动服务后,在 number_play.py 中新增一个函数定义并添加单行注释,然后点击保存,格式如下:

Aider查找到单行注释后就会根据注释对该函数进行补全操作

浏览器模式

启动Aider浏览器模式,需要在启动命令后添加 --browser 参数

css 复制代码
$ aider --model gemini/gemini-2.0-flash-exp --browser

首次启动需要安装 aider-chat[browser] 依赖库

启动成功后就会在浏览器中自动打开,服务地址:http://localhost:8501

选择上下文后,就可以在输入框中输入提示词进行聊天了

Aider会自动修改文件、保存、commit

浏览器模式下,可以看到文件修改记录,并能对文件进行undo操作

常见问题

安装缓慢

解决方案:使用阿里云镜像

css 复制代码
python -m pip install -U --upgrade-strategy only-if-needed aider-chat -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

No Matching distribution found for aider-chat

解决方案:关闭科学上网环境

tokenizers版本与本地冲突

解决方案:暂时卸载transformers,使用aider-chat默认的版本

php 复制代码
$ pip uninstall transformers          

总结

整体使用下来,Aider是相当不错的,有种越用越喜欢的感觉。

  • Aider安装简易,只要支持Python环境的地方都可以使用
  • Aider提供了命令行模式、文件监听补全模式以及浏览器可视化模式,可针对不同需求切换
  • Aider会自动根据需求对文件进行修改、保存、commit提交,支持undo一键会退操作
  • Aider覆盖了大量的LLMs,可以轻松切换模型
  • Aider使用成本也很低,熟悉一遍基本操作就可以上手了。

友情提示

见原文:终端福音,AI终端编程助手Aider

本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。

相关推荐
草梅友仁8 小时前
Manus 与 OpenManus:AI 助手对比及开源复现 | 2025 年第 10 周草梅周报
开源·github·aigc
张申傲9 小时前
DeepSeek + ReAct 实现 Agent
人工智能·ai·chatgpt·aigc·deepseek
AIGCmagic社区11 小时前
DeepSeek专题:DeepSeek-V2核心知识点速览
人工智能·机器学习·aigc
飞川00113 小时前
Manus:AI 领域的又一次 "DeepSeek 时刻"?
aigc
孟健15 小时前
普通程序员 vs 提示词高手:同样的 AI,差距竟有 10 倍
aigc·cursor·ai 编程
严老湿15 小时前
Manus 真的有这么强吗?来看看 OpenManus 三个小时完成的复刻版本吧
前端·aigc·openai
小溪彼岸16 小时前
【DeepSeek满血版】纳米AI接入DeepSeek-R1满血版
aigc·deepseek
win4r17 小时前
🚀3分钟复刻Manus智能体!AutoGen+MCP Server+Cline构建最强AI智能体,支持ollama!轻松实现网络搜索+文件操作的AI Agen
aigc·openai
晨陌y19 小时前
蓝耘智算 + 通义万相 2.1:为 AIGC 装上 “智能翅膀”,翱翔创作新天空
aigc·deepseek·蓝耘