在现代开发流程中,我们习惯于在 IDE 或浏览器中与 ChatGPT、Claude 等大模型对话。但对于开发者而言,最频繁的操作发生在终端(Terminal)中:查看日志、编写脚本、处理文件、调试代码。如果每次需要 AI 帮助都要切换窗口、复制粘贴,这种“上下文切换”会极大地降低效率。
mods 正是为了解决这个问题而生。由著名的 TUI 库开发团队 Charmbracelet 打造,mods 将大语言模型(LLM)直接集成到你的 Unix 管道(Pipeline)中,让 AI 成为一个可以被组合的命令行工具。
什么是 mods?
mods 是一个用 Go 语言编写的命令行 AI 包装器。它并不提供自己的模型,而是作为一个强大的客户端,通过 API 连接到 OpenAI、Azure、Anthropic 等主流模型提供商。
它的核心哲学是:AI 应该像 grep、sed 或 awk 一样,能够接收标准输入(stdin),处理数据,并输出标准输出(stdout)。
核心特性
- 管道集成:你可以将任何命令的输出通过
|传给mods。 - 上下文管理:支持保存对话历史,允许你与 AI 进行多轮交互。
- 灵活的配置:支持自定义角色(System Prompt)、模型选择和温度设置。
- Markdown 渲染:配合 Charmbracelet 的生态,在终端中完美呈现格式化文本。
- 无缝集成 Shell:可以轻松地将 AI 生成的代码直接写入文件或执行。
快速上手实例
1. 基础问答
最简单的用法,直接在命令行提问:
mods "用 Go 语言写一个快速排序算法"
2. 处理管道数据(核心杀手锏)
这是 mods 最强大的地方。假设你有一个复杂的日志文件,你想让 AI 帮你分析错误原因:
cat error.log | mods "请分析这段日志中的关键错误,并给出修复建议"
或者,你想让 AI 帮你优化一段代码:
cat main.go | mods "请重构这段代码以提高性能,并解释原因" > main_optimized.go
3. 结合其他命令行工具
你可以将 mods 与 ls、curl 等工具结合。例如,分析当前目录的文件结构并生成 README:
ls -R | mods "根据这个目录结构,写一个简单的项目 README 介绍"
4. 使用预设角色(Roles)
你可以为不同的场景定义不同的“角色”。例如,创建一个名为 reviewer 的角色,专门用于代码审查:
# 在配置文件中定义角色后 cat git_diff.patch | mods --role reviewer
5. 交互模式
如果你需要连续追问,可以使用交互模式:
mods -p "我想开发一个 CLI 工具" # 此时进入交互状态,AI 会记得之前的对话内容
进阶配置与技巧
环境变量设置
mods 通过环境变量读取 API 密钥。你需要在 .zshrc 或 .bashrc 中配置:
export OPENAI_API_KEY="your-key-here" # 如果使用 Anthropic export ANTHROPIC_API_KEY="your-key-here"
配置文件
mods 的配置文件通常位于 ~/.config/mods/config.yaml。你可以在这里定义:
- 默认模型:例如 gpt-4-turbo 或 claude-3-opus。
- 默认温度:控制输出的随机性。
- 自定义角色:定义不同的 System Prompt。
结合 Shell 别名(Alias)
为了提高效率,你可以为常用的 AI 任务设置别名。例如,创建一个 explain 命令:
alias explain='mods -role teacher "请用通俗易懂的语言解释以下内容"'
之后你只需要运行:cat complex_script.sh | explain。
为什么选择 mods 而不是直接用 Web UI?
| 维度 | Web UI (ChatGPT/Claude) | mods (CLI) |
|---|---|---|
| 上下文切换 | 频繁(浏览器 \(\leftrightarrow\) 终端) | 无(就在终端内) |
| 数据流 | 手动复制粘贴 | 自动管道传输 (\|) |
| 自动化 | 无法集成到脚本 | 可编写 Shell 脚本自动化处理 |
| 速度 | 依赖页面加载 | 极速响应,纯文本传输 |
| 隐私控制 | 依赖平台协议 | 可通过配置 API 灵活控制数据流向 |
总结
mods 不仅仅是一个 AI 聊天客户端,它将 LLM 转化为一个可编程的 Unix 工具。它把 AI 的能力从“对话框”中解放出来,将其注入到开发者的工作流之中。
如果你是一名习惯于在终端操作的工程师,mods 将极大地改变你处理信息、分析日志和编写代码的方式。它让 AI 真正成为了你工具箱里的一把“瑞士军刀”。




还没有评论,来说两句吧...