<!-- title: 别再复制进网页：llm命令行八个暗格 -->
<!-- domain: tips-tricks -->

# 别再复制进网页：llm命令行八个暗格

你每天跟大模型打交道的方式，大概率还停在「打开网页 → 粘贴上下文 → 复制回答」这套循环里。复制日志、截图报错、粘贴代码，一天下来光是在浏览器和终端之间切换就浪费半个钟头。而海外圈子里玩得最熟的那批人，早就把大模型装进了命令行——不是通过某个重型 IDE 插件，而是一个只有几兆的小工具：`llm`，作者是 Django 联合创始人、Datasette 作者 Simon Willison，开源仓库 github.com/simonw/llm，Apache 2.0 协议，一分钱不收。国内 ChatBox、Cherry Studio 这类 GUI 客户端讨论热度很高，但这个「可组合、可脚本化」的终端方案，中文圈至今几乎没有像样的教程。今天把它的八个暗格一次打开。

## 先认识一下这位主角

`llm` 是一个 Python 写的命令行工具，定位就一句话：**让任何大模型变成 Unix 管道里的一个普通命令**。

- **安装**：`brew install llm`（macOS）或 `pip install llm` / `uv tool install llm`
- **价格**：工具本身完全免费开源。你只需要为模型本身付费——Gemini 的 API key 在 Google AI Studio 有免费额度，接 Ollama 本地模型则全程零成本
- **架构**：OpenAI 支持开箱即用；Gemini、Anthropic、Ollama 等通过官方插件目录里的插件接入，一条 `llm install 插件名` 搞定（llm-gemini 在新版本里已默认随主程序附带）

先看一眼它在你工作流里的位置，后面八个暗格全部围绕这张图展开：

```mermaid
flowchart TD
    A["终端标准输入<br/>管道喂文本"] --> B["llm 命令"]
    C["YAML 模板<br/>llm -t"] --> B
    D["片段 Fragment<br/>llm -f"] --> B
    E["附件参数 -a<br/>截图等文件"] --> B
    F["结构化输出<br/>--schema"] --> B
    B --> G["云上模型<br/>GPT Gemini Claude"]
    B --> H["本地模型<br/>Ollama 零成本"]
    G --> I["结果回到终端<br/>可接 jq 再加工"]
    H --> I
    B --> J["logs.db 自动落库<br/>每轮对话都留底"]
    J --> K["llm logs 查历史<br/>sqlite-utils 复盘"]
```

## 暗格一：一个终端口，换着模型用

配好各家 key 之后，`llm` 就是所有模型的统一入口：

```bash
llm keys set openai        # 存 key，写入本地配置，之后不用再管
llm models                 # 列出当前所有可用模型
llm -m gpt-4o-mini "用一句话解释Raft算法"
llm -m gemini-2.5-flash "翻译这段话成英文：……"
```

关键在 `-m`：同一个命令、同一套习惯，模型随口换。Gemini 的 key 从 AI Studio 免费领，日常轻量任务基本零成本跑。国内用户习惯每个模型开一个网页收藏夹，这一格省掉的就是所有收藏夹。

## 暗格二：管道才是灵魂，网页给不了

这是 `llm` 和所有聊天网页的本质区别——它吃标准输入：

```bash
cat error.log | llm "总结这个报错的根因，给出修复建议"
git diff | llm "用中文写一条符合规范的commit message"
ps aux | llm "哪个进程内存异常？"
```

左边是任何命令的输出，右边是模型的分析，中间不需要复制粘贴。老外用它做日志体检、代码审查、配置文件解释，全是把这一招嵌进 shell 脚本里批量跑。你在网页里手粘一次日志的时间，够脚本跑一百次。

## 暗格三：终端里也能连续对话

```bash
llm chat                   # 进入交互式聊天
llm "解释一下TCP挥手" -c    # -c 接着上一轮继续问
llm "那四次挥手各丢了会怎样" -c
```

`chat` 子命令是全屏交互，`-c` 则是「追问」——不用重新组织上下文，模型记得自己刚说了什么。适合那种「问一句、再追一句」的调试场景，全程不离开终端窗口。

## 暗格四：截图丢进去问

多模态用法藏在一个 `-a` 参数里：

```bash
llm -a screenshot.png "这个报错弹窗是什么意思，怎么解决"
llm -a design.png "按这张设计稿写出页面骨架HTML"
```

附件类型取决于所用模型的能力（图片最稳）。典型场景：长辈发来的英文报错截图、终端里复制不出来的 GUI 弹窗、UI 稿转代码。以前你得先开网页、点上传按钮，现在一条命令。

## 暗格五：YAML 模板——把提示词当配置文件管

重复用的高质量提示词，别每次手敲，存成模板：

```bash
# 在模板目录（llm templates path 可查）建一个 translate.yaml
```

```yaml
system: 你是资深技术翻译，保留代码和专有名词原文，输出只需译文
prompt: 翻译以下内容：
```

之后任何时候：

```bash
llm -t translate "Fragments are reusable, named chunks of prompts"
```

模板是纯 YAML 文件，能进 git、能跟团队共享、能持续打磨版本。你的提示词资产从此有仓库可放，而不是散落在聊天记录里。这是网页聊天永远做不到的事。

## 暗格六：fragments 片段——长上下文打包复用

模板解决「指令」复用，fragments 解决「材料」复用。给一大段内容起个名字，之后随处引用：

```bash
llm fragments set api-docs "$(cat api_spec.md)"
llm -f api-docs "新加的分页接口和现有规范有冲突吗"
```

据官方文档介绍，片段还能直接用 `github:` 前缀指向 GitHub 仓库里的文件。适合长期维护的场景：把 API 文档、团队规范、产品 PRD 做成固定片段，每次提问自动带上，不用反复粘贴几万字。

## 暗格七：`--schema`——让模型直接吐能用的 JSON

这条对写脚本的人价值最大。加上 `--schema` 参数，模型输出被强制约束成结构化数据：

```bash
llm "分析这条评论的情感倾向：快递太慢了但客服态度好" \
  --schema '{"type":"object","properties":{"sentiment":{"type":"string"},"score":{"type":"number"}}}'
```

输出就是合法 JSON，管道接 `jq` 直接进你的脚本、表格、数据库。做批量文本分类、信息抽取、自动打标的流水线，这是最省事的原型路径——官方后来还给 schema 加了简写字段列表的语法，详见文档。

## 暗格八：logs.db——你所有的对话都在自动留底

`llm` 默认把每一轮对话写进一个本地 SQLite 数据库（logs.db），不联网上传：

```bash
llm logs                 # 查看最近对话记录
llm logs -q "Raft"       # 按关键词搜历史对话
```

配合同作者的 `sqlite-utils`，你甚至可以 SQL 查自己的 AI 使用史：「上个月问过的所有性能问题」「哪类任务我浪费 token 最多」。三天前那次让模型写的正则表达式找不到了？`llm logs -q regex` 一秒翻出来。网页聊天记录是平台的，这个库是你自己的。

## 彩蛋：两个插件先装上

- **llm-ollama**：接入本地 Ollama 模型，断网也能用，成本永久为零，敏感代码不出本机
- **llm-cmd**：装好后 `llm cmd "找出当前目录大于100M的文件"`，直接生成 shell 命令，回车确认即执行——不会 shell 语法的新手救星

官方插件目录在 llm.datasette.io，从语音转写、嵌入向量到各类模型接入，都是一条 `llm install` 的事。

## 信息差总结

| 维度 | 你知道的 | 别人不知道的 |
|------|---------|-------------|
| 用模型的方式 | 开网页/APP 手动粘贴 | `cat x \| llm` 管道直连，零复制 |
| 多模型管理 | 每家一个收藏夹 | `-m` 一个终端口任意切换 |
| 提示词沉淀 | 散落在聊天记录 | YAML 模板进 git，团队共享 |
| 长文档上下文 | 反复粘贴几万字 | fragments 命名复用 |
| 批量文本处理 | 人肉一条条问 | `--schema` + jq 流水线 |
| 历史对话 | 靠平台搜索功能 | 本地 SQLite，SQL 随便查 |
| 成本 | 每月订阅费 | Gemini 免费额度 + Ollama 本地零成本 |

## 行动指南

15 分钟上手路径，今晚就能跑通：

1. `brew install llm` 或 `pip install llm`（3 分钟）
2. 去 Google AI Studio 免费领一个 Gemini key，`llm keys set` 存好（5 分钟）
3. 跑通管道：`cat 一个日志文件 | llm -m gemini-2.5-flash "总结问题"`（2 分钟）
4. 把你最常用的那条提示词写成第一个 YAML 模板（5 分钟）
5. 进阶：`llm install llm-ollama` 接本地模型，敏感代码场景全免费

先从「日志体检」这一个场景用起来，一周后你会发现自己开网页聊天的次数肉眼可见地变少。

## 参考来源

1. llm 官方仓库：https://github.com/simonw/llm
2. llm 官方文档（含插件目录）：https://llm.datasette.io/
3. Simon Willison 博客 llm 话题归档：https://simonwillison.net/tags/llm/
4. Google AI Studio（免费领取 Gemini API key）：https://aistudio.google.com/
5. sqlite-utils（配合查询日志库）：https://github.com/simonw/sqlite-utils

---
> 本文由「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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
