mvanhorn/cli-printing-press
Every API has a secret identity. This finds it, absorbs every feature from every competing tool, then builds the GOAT CLI — designed for AI agents first, with SQLite sync, offline search, and compound insight commands.
CLI 打印机 – AI 驱动的生产就绪 CLI(及 MCP 服务器)生成器
这是什么 – 一个基于 Go 的工具,允许 AI 助手(Claude Code、Codex 等)将任何 Web 服务或 API 转换为 令牌高效 的命令行界面,以及一个匹配的 MCP(机器码插件)服务器。它能自动完成整个流程:
- 研究 – 读取官方文档,抓取社区 CLI,甚至捕获未公开网站的浏览器流量。
- 吸收 – 构建现有工具中所有有用功能的清单。
- 生成 – 输出一个基于 Cobra 的 Go CLI 和一个与之共享相同客户端/存储代码的 MCP 服务器。
- 持久化 – 创建一个带有全文搜索、增量同步和复合命令支持的本地 SQLite 存储。
- 验证 – 在发布前运行评分卡、自用测试、行为证明检查和实时烟雾测试。
结果是一个可直接安装的二进制文件,如 notion-pp-cli,以及一个配套的 notion-pp-mcp,代理可直接调用,且令牌消耗极低。
对 AI 代理的意义
- 速度与令牌经济性 – 代理可以调用简洁的 CLI,而不是逐字阅读冗长的 API 文档。标志设计为机器消费(紧凑输出、类型化退出码、自动 JSON)。
- 本地优先数据 – 所有获取的数据都存储在 SQLite 数据库中,支持超快的
search、sql和 复合 命令(stale、health、bottleneck),这是无状态 API 包装器永远无法提供的。 - 双接口 – 相同生成的代码同时支持终端友好的 CLI 和 MCP 服务器,因此该工具可在基于终端的代理(Claude Code、Codex)和 集成在 IDE 中的代理(Claude Desktop、Cursor、Windsurf、Cline)中使用。
- 零规范工作流 – 将打印机指向一个网站(例如 ESPN、Google Flights),它会捕获流量,反向工程 OpenAPI 规范,并自动构建 CLI。
快速安装(二进制 + 技能)
# 一行命令安装 Go 生成器,并为 Claude Code 注册所有打印机技能
curl -fsSL https://raw.githubusercontent.com/mvanhorn/cli-printing-press/main/scripts/install.sh | bash
- 添加
--cli-only或--skills-only可仅安装其中一侧,添加--agent codex可针对 Codex 而非 Claude Code。
手动替代方案(如果你更喜欢 Go 工具链):
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
生成 CLI(代理工作流)
- 启动你的 Claude Code(或 Codex)会话。
- 在聊天中运行该技能:
/printing-press <app-名称或URL>- 示例:
/printing-press ESPN,/printing-press https://postman.com/explore
- 示例:
- 该技能调用
cli-printing-press二进制文件,运行完整的五阶段流程,并将两个二进制文件放入~/printing-press/library/<api>/:<api>-pp-cli– 基于 Cobra 的 CLI。<api>-pp-mcp– MCP 服务器。
- 可直接使用 CLI(
<api>-pp-cli --help),或让你的 IDE 代理发现 MCP 服务器。
生成 CLI 的核心功能
| 功能 | 作用 | 代理优势 |
|---|---|---|
sync |
将最新数据拉取到本地 SQLite 存储中。 | 一次网络调用后,所有后续查询均可离线进行。 |
search / sql |
对本地数据进行全文或 SQL 查询。 | 毫秒级响应,显著减少令牌消耗。 |
stale, health, bottleneck |
从历史数据中推导出领域特定的分析。 | 无需自定义代码即可为代理提供高层洞察。 |
--compact |
仅输出高重要性字段(减少 60–80% 令牌)。 | 保持提示简短。 |
| 类型化退出码 | 机器可读的状态码(0、2、3……)。 |
代理可直接分支逻辑,无需解析文本。 |
| 自动 JSON | 管道输出时自动输出 JSON,无需 --json 标志。 |
与 jq 或其他工具无缝组合。 |
发布与优化
- 发布 –
/printing-press-publish <api>验证、打包并打开 PR 提交至公共 打印机库。 - 打磨 –
/printing-press-polish <api>运行诊断,修复验证失败,并清理文档。 - 修正 – 经过自用会话后,
/printing-press-amend提取痛点,创建 PR,并自动清除任何 PII。
内部工作原理(高层次流程)
Phase 0 解析规范或 URL(1–3 分钟)
Phase 1 研究简报 – 识别身份、竞争对手、数据层(5–10 分钟)
Phase 1.5 吸收生态系统 – 目录化现有 CLI/MCP 功能(5–10 分钟)
Phase 1.7 浏览器嗅探 – 若无规范则捕获 HAR(2–5 分钟)
Phase 2 生成 Go CLI + MCP 服务器(1–2 分钟)
Phase 3 构建“GOAT” – 添加本地存储、复合命令、分析功能(10–20 分钟)
Phase 4–5 验证、评分,并可选发布
所有阶段均由 cli-printing-press 二进制文件协调;重负载(代码生成)可委托给 Codex(/printing-press <api> codex)以节省 Claude Code 的令牌使用量。
生成 CLI 示例(ESPN)
espn-pp-cli games --date today --compact
# → 单次调用返回 NBA 季后赛比分、得分领先者、伤病新闻的 JSON
相同功能也可通过 espn-pp-mcp 供基于 IDE 的代理使用。
谁会使用它
- AI 代理开发者,需要为数十个服务快速构建低令牌消耗工具。
- DevOps / 自动化工程师,希望拥有 SaaS 数据的本地可搜索缓存。
- 研究人员,需要探索未公开的 Web API 而无需编写爬虫。
- 工具构建者,希望从单一源代码同时发布 CLI 和 MCP 插件。
链接
- 现成 CLI 目录 – https://printingpress.dev
- 打印机库(GitHub) – https://github.com/mvanhorn/printing-press-library
- 安装脚本 –
scripts/install.sh - Codex 文档 –
docs/CODEX.md - Cursor 文档 –
docs/CURSOR.md
CLI 打印机 自动化了将任何 API(无论是否文档化)转换为高性能、代理友好的命令行工具和 MCP 服务器的完整生命周期,大幅降低 AI 增强工作流中的令牌成本和开发工作量。
相关
- 项目
- 项目
- 项目
- 项目
- 项目