教程中心入门
入门

用 Simon Willison 的 llm 命令行工具把 AI 接进终端(零基础编程 Agent 入门)

2026.07.23· 7 个步骤 · 16 分钟阅读· 💻 llm CLI

你有没有过这种体验:正在终端里干活,突然想让 AI 解释一段代码、改个提交信息、总结一段日志,却要切到浏览器开 ChatGPT、粘贴、复制、再切回来llm 是 Datasette 作者 Simon Willison 打造的命令行工具——一条命令就能在终端里直接调 30+ 个大模型(OpenAI、Claude、Gemini、本地 Ollama 等),自动把每次对话存进本地 SQLite,还能直接出代码。它也是「在终端里跑一个轻量编程 Agent」的最低门槛入口。本教程零基础带你跑起来。

💻 本教程适合:几乎所有人——开发者、运维、学生、爱用命令行的效率控。你只要会打开终端、能装个 Python 包、有一个大模型 API Key 就行,不需要会编程也能跟着做。

先搞懂:llm 是什么、能干什么?

用一句话理解:llm 是「终端里的万能 AI 客户端」——同一句 llm "你的问题" 语法,背后可以是 OpenAI、Claude 或本地模型,换模型只换一个参数。它的几个超能力正好解决日常痛点:

能力对你意味着什么
一条命令对话不用开网页,终端里直接问
自动存 SQLite 日志所有问答本地可追溯,还能用 Datasette 翻看
管道喂文件cat 文件 | llm 让 AI 处理任意文本
直接出代码--code 只吐代码、去掉解释
插件扩厂商一行 llm install 加新模型

它不是「重框架」:llm 定位是「趁手的 CLI + 轻量 Agent 雏形」,不是 LangGraph 那种编排框架。想做复杂多智能体系统,请看本中心其他进阶教程;想「把 AI 融进日常命令」,llm 是首选。

Step 1:安装 llm

1 任选一种安装方式
# 方式一:pip(最通用)
pip install llm

# 方式二:pipx(隔离环境,推荐)
pipx install llm

# 方式三:uv
uv tool install llm

# 方式四:Homebrew(macOS)
brew install llm

# 验证
llm --help
💡 2026 年 llm 已迭代到 0.32 系列,持续向「轻量编程 Agent」方向演进(官方提到在其上构建简单 coding agent 的思路)。本教程聚焦最稳的通用用法。

Step 2:配置 API Key

2 把 Key 存进本地,别写进命令
# 以 OpenAI 为例,运行后会提示你粘贴 Key
llm keys set openai

# 验证 Key 已保存
llm keys

# 也支持环境变量(CI / 脚本里常用)
export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx

Key 安全:llm 把 Key 存在本地配置文件里(不在命令历史)。别把 Key 直接写进 shell 命令再截图发出去。其它厂商类似:llm install llm-anthropic && llm keys set anthropic

Step 3:你的第一个提示

3 一句话问出去
# 默认模型(OpenAI gpt-4o-mini 之类)
llm "给宠物鹈鹕起十个有趣的名字"

# 用系统提示词处理文件内容
cat myfile.py | llm -s "解释这段代码在做什么"

# 换模型(以 Claude 为例,需先装插件并设 Key)
llm -m claude-4-opus "用萝卜的冷知识震撼我"
🔑 关键技巧:- 表示「从标准输入读」,所以 cat 文件 | llm -s "..." 是把文件内容喂给 AI 的万能姿势。git diff、日志、报错都能这么处理。

Step 4:用管道把 AI 接进工作流

4 让 AI 处理命令输出

这是 llm 最爽的用法——把任意命令的输出直接丢给 AI:

# 让 AI 总结本次 git 改动
llm "用中文总结这些改动:$(git diff)"

# 让 AI 改写提交信息为 conventional commits 格式
git diff --cached | llm -s "把暂存的改动写成一条 conventional commit 信息" 

# 让 AI 总结一大段日志
curl -s https://example.com/log.txt | llm -s "提取其中的报错并给排查建议"
💡 把 $(命令) 嵌进双引号,是「快速拼 prompt」的利器。你每天少切几次浏览器,一年能省下不少时间。

Step 5:交互式聊天

5 进入多轮对话
# 进入聊天模式
llm chat -m gpt-4.1

# 聊天内指令:
#   exit / quit  退出
#   !multi       进入多行输入,!end 结束
#   !edit        用默认编辑器修改当前 prompt
#   !fragment    插入已保存的片段

聊天有上下文:llm chat 会记住本轮对话历史,适合追问。单次 llm "..." 则是无状态的「一问一答」。

Step 6:直接产出代码

6 只要代码,不要废话

--code 会让 llm 只输出代码、并自动去掉 Markdown 代码块包裹,方便直接写文件:

# 生成代码并直接存成文件(务必先读一眼再运行!)
llm '写一个 Python CLI:把 stdin 的内容反转输出' --code > reverse.py

# 给现有文件加功能
cat reverse.py | llm -s "加一个 --upper 参数,输出全大写" --code

# ⚠️ 安全提醒:AI 生成的代码先读再跑,别直接 | bash
🚀 这其实就是「终端编程 Agent」的最小形态:你描述需求 → AI 出代码 → 你审阅执行。想更进一步(让 Agent 自己跑代码、迭代),可以关注 llm 官方的 coding agent 思路,或本中心的 OpenAI Agents SDK / Claude Code 教程。

Step 7:日志、片段与脚本化

7 让 AI 成为可复用工具
# 查看历史问答(本地 SQLite)
llm logs -n 10

# 用 Datasette 图形化浏览日志库
datasette ~/.llm/log.db

# 把常用 prompt 存成「片段」复用
llm -s "你是有 10 年经验的 Rust 导师" --save rust-mentor
llm "解释 &str 和 String 的区别" --fragment rust-mentor

# 写进 shell 脚本/定时任务,自动跑 AI 任务
#!/bin/bash
llm "总结今天的运维告警" -s "你是 SRE" < alerts.txt >> report.md
🎉 到此你已掌握 llm 的日常闭环:装好 → 配 Key → 问 → 管道处理文件 → 聊天 → 出代码 → 日志/片段/脚本化。它是把 AI 融进命令行工作流最低门槛的一步。

常见问题速查

现象大概率原因 & 解决
报 "No API key"没跑 llm keys set 或环境变量没 export
模型不存在用了未安装的厂商 → 先 llm install llm-xxx 并设 Key
管道没反应忘了 -s "系统提示词",或文件为空
代码带 Markdown 包裹没加 --code,导致含 ``` 围栏