CLI Printing Press
把任意 API 或网站自动变成一套为 AI Agent 打造的 CLI、MCP 服务器和 Claude Code 技能。
证据显示:安装脚本通过curl管道执行,但提供了--cli-only等选项;生成流程包含用户确认点(如absorb manifest审批);数据流描述清晰(本地SQLite、同步、搜索);敏感数据处理有PII擦除提及;依赖列表包含chromedp等,但未提供安全审计;外部效果包括网络抓取和API调用,但未明确权限边界;回滚机制未明确;来源归属在README中提及。扣分原因:安装脚本未提供校验和,权限最小化未明确,用户确认点未详细说明,数据流透明度部分,敏感数据处理仅提及,依赖安全未审计,外部效果未明确权限,回滚未提及,来源归属仅提及。
证据显示:README描述一致,但存在一些不一致(如版本号、命令名称);依赖列表完整,但未提供可用性保证;错误消息设计良好(包含具体flag和用法)。扣分原因:自洽性有轻微不一致,依赖可用性未验证,错误消息设计良好但未测试。
证据显示:目标受众明确(AI代理和开发者),场景多样(API、网站、HAR);能力边界描述清晰(生成CLI和MCP);触发方式明确(slash命令);环境适配良好(支持Claude Code、Codex等)。扣分原因:能力边界未完全明确(如浏览器嗅探的权限),触发精度未详细说明,环境适配未覆盖所有可能环境。
证据显示:信息架构清晰(README、docs);安装说明详细;命名稳定(cli-printing-press);示例和FAQ有提及;已知限制未明确;许可证为MIT;版本控制有提及但无changelog;维护责任明确(作者)。扣分原因:已知限制未列出,版本控制无changelog,维护责任仅提及。
证据显示:输出可用性高(表格、JSON、compact模式);边际价值高(复合命令、本地数据);成本效益好(token节省)。扣分原因:输出可用性未测试,边际价值基于声称,成本效益未量化。
证据显示:声称有验证(scorecard、dogfood等),但未提供具体证据;跨来源验证未提供;事实与推断未明确分离。扣分原因:声称可追溯性不足,跨来源验证缺失,事实与推断未分离。
- 安装脚本通过curl管道执行,未提供校验和,存在供应链风险。
- 浏览器嗅探功能可能涉及未授权的数据抓取,需注意法律和道德风险。
- 依赖中包含多个间接依赖,未提供安全审计,需自行评估。
- 生成流程涉及网络请求和本地文件写入,需确保权限最小化。
这个 Agent 能做什么,适合哪些场景?
CLI Printing Press 是一个 Go 语言编写的 CLI 生成器,能够从 OpenAPI 规范、HAR 文件或网站流量嗅探中自动生成高质量的 CLI 工具。它不只封装 endpoint,还会生成基于 SQLite 的本地数据层、FTS5 全文搜索、增量同步和复合命令,让 Agent 可以离线、高效地查询。生成产物包括一个 Cobra CLI、一个 MCP 服务器、Claude Code 技能和一套质量验证工具。生成器通过两条路径交付:一个可安装的二进制(cli-printing-press)和一组斜杠命令(/printing-press 等)。目前对 Claude Code 支持最好,也提供 Codex 模式,但需要手动配置。
读取 OpenAPI 规范(--spec)、HAR 文件(--har)或直接访问网站(浏览器嗅探门),自动生成一个 Go CLI(<api>-pp-cli)和一个 MCP 服务器(<api>-pp-mcp)。生成过程包括多个阶段:研究、生态吸收清单编制、浏览器嗅探、代码生成、超越生成(添加数据层和洞察命令)、验证和发布。它调用外部 API 进行实时冒烟测试(GET only),使用 SQLite 存储本地数据,并提供 scorecard、dogfood、verify、emboss 等命令做质量检查。生成的 CLI 支持 --json、--csv、--compact、--dry-run 等 Agent 专用 flag,并定义类型化退出码。
- 开发者在没有官方 API 文档时,想要为一个网站(如 ESPN)构建 CLI,可以用浏览器嗅探功能自动逆向生成 API 规范。
- AI Agent 需要频繁调用某个 API,希望获得一个 token 高效的 CLI,减少文档查找和 token 消耗,可以使用生成的 CLI。
- 团队需要离线查询大量数据(如 Linear issue 记录),希望有本地 SQLite 镜像和 50ms 的复合查询命令,可以使用 local store。
- 开发者想为现有 API 生成一个 MCP 服务器,以集成到 IDE(如 Cursor、Claude Desktop),可以利用生成器同时输出 CLI 和 MCP 服务器。
- Agent 开发者在 Claude Code 会话中遇到 CLI 问题,希望自动从会话记录中提取反馈并生成改进 PR,可以使用 /printing-press-amend 命令。
这个 Agent 有哪些优点和局限?
- 自动生成数据层(SQLite、FTS5、增量同步)和复合命令,远超简单 endpoint 包装器。
- Agent 优先设计:类型化退出码、--compact 减少 token、自动 JSON 输出,适合 AI Agent 高频调用。
- 支持无规范输入(URL 嗅探和 HAR 导入),扩展了适用场景。
- 提供双接口(CLI + MCP),从同一 spec 生成,无代码重复。
- 最佳体验绑定 Claude Code,Codex 支持滞后且功能可能不全。
- 需要 Go 1.26.5+ 和 Node/npm,环境要求较高。
- 生成的 CLI 是领域导向的,不覆盖厂商官方 CLI 的每个后台功能,可能不适合所有场景。
- 浏览器嗅探需要手动操作,无法完全自动化。
如何安装或部署这个 Agent?
需要 Go 1.26.5+、Claude Code(或其他支持 skills 的 agent)和 Node/npm。运行安装脚本:curl -fsSL https://raw.githubusercontent.com/mvanhorn/cli-printing-press/main/scripts/install.sh | bash。这会安装二进制和所有 Printing Press 技能。也可以使用 --cli-only 或 --skills-only 选项分别安装。手动安装二进制:go install github.com/mvanhorn/cli-printing-press/v4/cmd/cli-printing-press@latest。安装技能:npx -y skills@latest add mvanhorn/cli-printing-press/skills --skill '*' -g -a claude-code -y。
如何使用这个 Agent?
在 Claude Code 中启动 /printing-press <api-name> 来生成 CLI。例如 /printing-press Notion。也可以提供 URL 或 HAR 文件。生成后,使用 <api>-pp-cli 命令进行查询,例如 linear-pp-cli 的复合查询。若要发布到公共库,使用 /printing-press-publish。要改进现有 CLI,使用 /printing-press-polish。使用 cli-printing-press scorecard、dogfood、verify 等命令进行质量验证。
这个 Agent 与同类方案有什么区别?
Speakeasy、Fern、openapi-generator 等生成器只封装端点,而 Printing Press 还生成本地数据层、复合命令和 MCP 服务器。与 Peter Steinberger 的 discrawl 和 gogcli 相比,Printing Press 自动生成类似功能,且通过生态吸收清单匹配竞争对手的所有功能。