Skip to content

18621063286/CliBook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

前言

为什么在 2026 年写一本关于 CLI 的书

2026 年,个人 Agent 开始爆发。

Claude Code 可以自主阅读代码库、修复 Bug、提交 PR。Devin 可以独立完成一个完整的开发任务。越来越多的 AI Agent 不再只是「聊天助手」——它们开始真正地操作软件

但一个尴尬的现实是:世界上绝大多数软件并不是为 Agent 设计的。Blender 有强大的 3D 建模能力,但 Agent 无法操作它的 GUI。Bilibili 有海量的视频数据,但 Agent 无法登录浏览器去搜索。LibreOffice、GIMP、Audacity、OBS Studio——这些已经存在多年的软件,它们的功能依然强大,但它们的交互界面只为人类设计。

Agent 需要一个与已有软件世界对话的接口。

2026 年的行业实践给出了一个出人意料但又极其合理的答案:CLI(命令行接口)

CLI 不是什么新技术。Unix 哲学中「一切皆文本」的理念已经存在了半个世纪。但在 Agent 时代,CLI 的三个特性让它成为了最佳桥梁:

  • 结构化输出——--json 标志让 Agent 能直接解析命令的返回值,而非用 OCR 去「看懂」一个截图
  • 确定性退出码——退出码 0 表示成功,77 表示需要登录,75 表示可以重试——Agent 不需要猜测命令是否执行成功
  • 可组合性——Agent 天然擅长将多个原子操作编排成工作流,而 CLI 的管道机制正是为此而生

这就是本书的初心:帮助开发者学习如何构建 CLI,让已有的软件系统——无论是 Web 应用还是本地桌面客户端——都能被 AI Agent 高效地使用。


这本书讲什么

本书基于两个真实的开源项目展开全部技术分析:

CLI-Anything(Python / Click)——一个将 49 个本地 GUI 软件(Blender、GIMP、LibreOffice 等)转化为 Agent 可用 CLI 的框架。它的核心理念是「不重新实现软件功能,而是为软件的自动化 API 包装一个 CLI 层」,让 Agent 通过 cli-anything-blender --json render export output.png 就能完成一次 3D 渲染。

OpenCLI(TypeScript / Commander.js)——一个将 73 个 Web 网站(Bilibili、Twitter、HackerNews 等)转化为 CLI 命令的工具。它通过自写的 Chrome Extension 复用用户的浏览器登录态,让 Agent 无需密码就能获取需要认证的数据。

全书 8 个部分、26 章,覆盖 CLI 开发的完整知识体系:

基础篇(第 1-3 章)讲解命令注册、参数解析、输出格式化、错误处理和 REPL——这是构建任何 CLI 的基本功。

Plugin 生态篇(第 4-6 章)讲解如何设计可扩展的插件体系——全局注册表的 globalThis 单例模式、三阶段生命周期钩子、YAML 声明式适配器降低贡献门槛。

浏览器扩展篇(第 7-10 章)讲解自写 Chrome Extension vs Playwright 的技术选型、Manifest V3 开发要点、Chrome DevTools Protocol 的 16 个核心方法,以及 CLI→Daemon→Extension→Chrome 的三层通信架构。

Web→CLI 篇(第 11-14 章)讲解如何将任意网页变为 CLI 命令——12 阶段 DOM 快照引擎、五层认证策略级联、十三层反检测补丁,以及 HackerNews/Bilibili/Twitter/抖音四个实战案例。

本地客户端→CLI 篇(第 15-17 章)讲解 GUI 软件转 CLI 的七阶段方法论——渲染间隙问题、四种后端接入模式、Blender/GIMP/Browser 三个实战案例,以及 Session 管理和 Undo/Redo 栈。

Agent 友好篇(第 18-20 章)讲解 Agent-Native CLI 的六项设计原则、SKILL.md 规范与 Agent 自主发现协议,以及命令链优化、增量 DOM Diff、Workspace 隔离等高级集成模式。

工程实践篇(第 21-23 章)讲解四层测试金字塔、PyPI/npm 双生态打包分发,以及从零设计 CLI 框架的六大核心决策。

总结篇(第 24-26 章)提供 20 种设计模式速查表、9 个常见陷阱与避坑指南,以及 CLI 开发在 Agent 时代的六大趋势展望。


这本书适合谁

软件开发者——如果你维护的软件需要被 Agent 使用(无论是 Web 应用、桌面客户端还是 API 服务),本书教你如何为它构建 Agent 友好的 CLI 接口。

AI Agent 开发者——如果你正在构建 Agent 系统,需要让 Agent 操作已有软件,本书教你 CLI 作为 Agent→软件桥梁的完整技术栈。

开源贡献者——如果你想为 CLI-Anything 或 OpenCLI 这样的开源生态贡献适配器,本书的 Plugin 体系和贡献者工作流章节是你的指南。

技术架构师——如果你需要决策「如何让我们的产品支持 Agent 访问」,本书的技术选型对比和设计模式速查表帮你做出有依据的判断。


读完这本书你能获得什么

读完本书,你将具备以下能力:

设计 Agent 友好的 CLI——理解 --json 输出、语义化退出码、SKILL.md 自描述的完整设计理念,能为任何软件构建 Agent 可用的命令行接口。

构建浏览器自动化系统——掌握 Chrome Extension 开发、CDP 协议调用、反检测补丁注入、三层通信架构的实现细节。

设计可扩展的 Plugin 生态——理解 globalThis 单例注册表、三阶段钩子系统、YAML 声明式适配器、Manifest 预编译的架构设计。

将任意 Web 网站变为 CLI 命令——掌握五层认证策略(PUBLIC→COOKIE→HEADER→INTERCEPT→UI)和 Pipeline 数据管道模式。

将本地 GUI 软件变为 CLI 工具——掌握七阶段生成方法论、四种后端接入模式(脚本注入/命令行调用/REST API/MCP 协议),以及渲染间隙问题的解决方案。

运用 20 种 CLI 设计模式——从全局单例注册表到三层 CSRF 防御,从 DOM 快照裁剪到 Workspace 隔离,每种模式都有两个真实项目的代码对照。


如何阅读本书

你可以按顺序从第 1 章读到第 26 章——这是最完整的学习路径。

你也可以根据兴趣直接跳到对应部分:需要浏览器自动化的读者从第三部分开始;需要将 Web 网站变 CLI 的读者从第四部分开始;需要将桌面软件变 CLI 的读者从第五部分开始;只关心 Agent 集成设计的读者从第六部分开始。

每一章都遵循统一的结构:为什么这很重要(问题背景)→ 源码分析(代码级讲解)→ 模式提炼(可复用的设计模式)→ 用户能做什么(可操作的建议)。你可以先读模式提炼了解核心思想,再根据需要深入源码分析。

CLI 曾经是程序员的效率工具。在 Agent 时代,它正在成为软件世界的通用接口。

希望这本书能帮你站在这个转折点上,构建出下一代 Agent 友好的软件系统。

\

让我们开始。

About

教你如何开发各类CLI,让Agent更容易访问

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors