终端里的编码 Agent:一句话跑一个任务,裸跑进交互式会话
llm 是一个跑在终端里的编码 Agent。给它一句话,它自己读文件、改代码、搜内容、执行命令;不带参数直接跑 llm,进的是交互式会话。会话以线程文件存在本地,随时可以恢复。Rust 写的,MIT 协议,开源。
[image: llm 交互式会话 /help 与 /status]
它是什么
单次任务 — llm "fix the failing test" 跑完一个任务就退出,适合脚本和顺手一问
交互式会话 — 裸 llm 进入,斜杠命令管模型和会话,任务执行中打的字排队作为引导,在下一个工具边界送达
线程留存 — 每次对话存成一份 JSONL,-c 接着上一段,-r 浏览历史,--fork 分叉,export 导出成 markdown
当前版本 — v0.3.4(2026-09-25 发布)
管道输出是纯文本,没有颜色也没有控制字符,直接进文件或下一个命令都行。
内置工具
九个:update_plan、read、write、edit、bash、grep、glob、ls、webfetch。选哪几个由它自己判断,--tools read,grep 可以把工具集收窄。
update_plan — 多步任务自己列清单,每步 pending / in_progress / completed,同时只有一项在进行;边做边勾,长任务不容易丢线
read — 大文件按 2000 行窗口翻页(单次 50 KB,单行截到 2000 字符);PDF、BAM、Parquet 这类二进制会直接提示该用哪个本地工具
edit / write — 精确匹配替换或整文件写入;上下文吃紧时超长工具结果会被截成头尾,完整内容留在会话日志里
webfetch — 抓网页转纯文本,不开 shell 也能读文档
️ 实际跑一遍
多步任务里它自己维护进度清单,做完一步勾一步:
[image: llm 多步任务与 update_plan]
读文件、改代码、跑命令验证,一条链路走完:
[image: llm read / edit / run]
每次任务结束会打印这一轮的用量,形如 input 9k · output 277 · cache 92% read,缓存命中率也一并给出。
️ 主要能力
模型与供应商 — 目录里带 38 个供应商,Anthropic、OpenAI、DeepSeek、Google、Groq、Mistral、xAI、OpenRouter 都在,本地运行时支持 Ollama、LM Studio、llama.cpp、vLLM。/login 里选供应商、粘贴 Key、从在线列表挑默认模型三步走完,也可以直接手写 config.json
审批两段式 — 一层是写死的拒绝(提权、磁盘与分区操作、关机重启、fork 炸弹、往设备节点写、对 / 或 ~ 执行 rm),任何配置都关不掉;另一层是你的黑名单文件,~/.llm/blacklist 管全局,仓库里的 .llm/blacklist 管单个项目
技能与包 — 技能就是带 description 的 SKILL.md 目录;llm install git:github.com/user/repo 能把扩展、技能、提示模板打成一个包整体安装
扩展与插件 — 脚本顶上写几行注释就成一个工具;不带注释头的文件按常驻进程跑,走 JSON 逐行协议。仓库示例里有 MCP 桥(把 MCP 服务器挂成工具)和子代理(另开一个 llm 干活,只回结论)
提示模板 — ~/.llm/commands/ 里放个 .md,/name 就能调用,$input 接收命令后面的内容
--json 模式 — 终端界面换成逐行 JSON 事件(text、reasoning、tool_start、tool_log、tool_end、turn_end、result),给编辑器、CI 或者另一个 Agent 驱动子进程用
附件 — -a 直接带图片、PDF、wav/mp3 或文本,模型接不了的会在本机就拦下
全部状态放在 ~/.llm 下:threads/ 存会话,config.json 存设置和供应商 Key,extensions/、commands/、pkg/ 分别是扩展、模板和安装的包。
️ 安装
Linux 和 macOS 下载预编译二进制、校验 sha256 后安装,装到 ~/.local/bin,不需要 root:
curl -fsSL https://jiaoyuan.org/llm/install.sh | sh
Windows 在 PowerShell 里同样一行,装到 %USERPROFILE%\.local\bin,不需要管理员:
irm https://jiaoyuan.org/llm/install.ps1 | iex
重跑上面同一行就是升级,版本没变就不动;LLM_FORCE=1 强制重装,LLM_VERSION 可以指定版本标签。预编译目标:Linux x86_64 / aarch64、macOS x86_64 / aarch64、Windows x86_64。Linux 上用的是 musl 静态构建,同一个二进制在各发行版通用。
从源码构建:
git clone https://github.com/imjiaoyuan/llm
cd llm
cargo build --release
需要 Rust 工具链(rustup 装),产物在 target/release/llm,把它放进 PATH 即可。
相关链接
GitHub 仓库 — https://github.com/imjiaoyuan/llm
官网与文档 — https://jiaoyuan.org/llm/
扩展开发文档在仓库的 docs/extensions.md,架构说明在 docs/architecture.md