CLI Printing Press
把任意 API 或网站自动变成一套为 AI Agent 打造的 CLI、MCP 服务器和 Claude Code 技能。
- Star 数
- ★ 4.8k
- 最近更新
- 今天
- License
- MIT
- 主语言
- Go
- FA 评分
- 53/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用Claude CodeCodex(部分支持)
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 开发者在没有官方 API 文档时,想要为一个网站(如 ESPN)构建 CLI,可以用浏览器嗅探功能自动逆向生成 API 规范。
- 不适合
- 只使用 Codex 或 Cursor、不愿安装 Claude Code 的团队
- 无法安装 Go 1.26.5+ 与 Node/npm 的环境
- 期望直接替代官方厂商 CLI、覆盖全部后台功能的用户
- 源码审查
- 53/100 · 缺口较多
这个 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?
需要 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 有哪些优点和局限?
- 自动生成数据层(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 与同类方案有什么区别?
Speakeasy、Fern、openapi-generator 等生成器只封装端点,而 Printing Press 还生成本地数据层、复合命令和 MCP 服务器。与 Peter Steinberger 的 discrawl 和 gogcli 相比,Printing Press 自动生成类似功能,且通过生态吸收清单匹配竞争对手的所有功能。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| CLI Printing Press 当前 | 53 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 4.8k | 今天 | Go | Claude Code |
| Foremerge | 77 · 表现良好 | 命令行工具免费 | ★ 541 | 14 天前 | Rust | Codex · Claude Code |
| Agent Deck | 76 · 表现良好 | 命令行工具免费 + 模型费 | ★ 1.1k | 今天 | Go | Codex · Claude Code |
| Puppetmaster | 68 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 468 | 今天 | Python | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:安装脚本通过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管道执行,未提供校验和,存在供应链风险。
- 浏览器嗅探功能可能涉及未授权的数据抓取,需注意法律和道德风险。
- 依赖中包含多个间接依赖,未提供安全审计,需自行评估。
- 生成流程涉及网络请求和本地文件写入,需确保权限最小化。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
[4.33.6](https://github.com/mvanhorn/cli-printing-press/compare/v4.33.5...v4.33.6) (2026-10-17) Bug Fixes * cli: dependent sync name must not collide with top-level resource ([#5042](https://github.com/mvanhorn/cli-printing-press/issues/5042)) ([24f3f1a](https://github.com/mvanhorn/cli-printing-press/commit/24f3f1a0b7e0e4cb19c0fa8be7dca9425a496758)) …在 GitHub 查看 ↗ -
发布说明摘录
[4.33.5](https://github.com/mvanhorn/cli-printing-press/compare/v4.33.4...v4.33.5) (2026-10-13) Bug Fixes * cli: clean up publish validate binaries for relative --dir ([#5007](https://github.com/mvanhorn/cli-printing-press/issues/5007)) ([2873999](https://github.com/mvanhorn/cli-printing-press/commit/28739991b48fa09c1f29d423ffeffeeb368c21dd)) * cli: keep description on single-object --agent output ([#5006](https://github.com/mvanhorn/cli-printing-press/issues/5006)) ([ceb70b3](https://github.com/mvanhorn/cli-printing-press/commit/ceb70b328554e04573f8d3980c92c39dbfe480b1)) …在 GitHub 查看 ↗ -
发布说明摘录
[4.33.4](https://github.com/mvanhorn/cli-printing-press/compare/v4.33.3...v4.33.4) (2026-10-10) Bug Fixes * cli: claim legacy store once and error on incomplete dependent syncs ([#4987](https://github.com/mvanhorn/cli-printing-press/issues/4987)) ([2023969](https://github.com/mvanhorn/cli-printing-press/commit/20239691cf9fe302e0c919e120ed764cce0c7762)) * cli: encode query-string spaces as %20 ([#4985](https://github.com/mvanhorn/cli-printing-press/issues/4985)) ([f85d298](https://github.com/mvanhorn/cli-printing-press/commit/f85d298ef5fb016ce2107b5331574ebf9f891ccb)) …在 GitHub 查看 ↗