-
Notifications
You must be signed in to change notification settings - Fork 0
CLIPrintingPress
title: CLI Printing Press type: tool created: 2026-05-19 last_updated: 2026-05-28 related: ["Playradar", "radar/platforms/ModelContextProtocol", "MacOSCLIDistribution", "DistributingScriptsViaHomebrew"] sources: ["https://github.com/mvanhorn/cli-printing-press"] radar_quadrant: Tools radar_ring: Assess radar_position: inner
A Go-based generator that produces production-ready CLI applications and MCP servers from any API — official spec, GraphQL endpoint, or browser-sniffed traffic. The generator reads official API documentation, analyzes competing tools, and emits a complete CLI designed for autonomous agent consumption rather than interactive human use. Each generation run produces two binaries (CLI and MCP server), research documents, and a Quality Score.
The tool's central premise is that most APIs have a "secret identity" — a set of compound use cases that no single competing tool exposes — and that discovering and encoding those use cases is the primary value of the generation process, not mere API wrapping. The generator operates through five phases: specification resolution, competitor analysis, code generation, scorecard verification, and dogfood validation. Claude Code skills are the primary interface; the binary executes behind them. The binary alone supports research and generation but bypasses the curated agent loop.
The tool requires two installed components: the Go binary and the Claude Code skills package. Neither is useful without the other. The canonical install path is a shell script that handles both; manual installation is supported but requires Go 1.26.3 or newer and Node/npm for the skills layer. The binary entrypoint was renamed from printing-press to cli-printing-press at v4; the legacy name remains as a compatibility shim.
The project shows strong production signals: 2,602 stars, 267 forks, 71+ releases, daily release cadence (v4.19.0 shipped 2026-05-28), CI and golden test badges, MIT licensed. The release velocity indicates active maintenance rather than stability — the project is in a continuous refinement phase.
Against this, 99 open issues include two active P1/P2 generator bugs:
-
P1: Bare resources lose their typed SQLite table when an action-endpoint sibling shares a name prefix (e.g.
projects/projects_archivecollision). Generated CLIs hitting this pattern produce incorrect schema. - P2: Sync treats HTTP 400 "argument missing" responses as fatal errors rather than warnings, causing generation to halt on APIs with optional arguments.
- P2: The dogfood scoring matrix derives fixtures incorrectly when the local store is populated, producing false verification results.
- A gosec dependency fails to compile under Go 1.26.3 — the minimum required version — in the polish fallback path.
The P1 SQLite collision bug is the most material: it affects the core output artifact (the local cache) silently, meaning generated CLIs may appear to work while storing data incorrectly.
Generated CLIs are explicitly not designed for interactive human use. The output contract is agent-native: auto-JSON when piped, typed exit codes for branching without stderr parsing, --compact mode for token reduction, --dry-run and --stdin for safe exploration. The local SQLite index with FTS5 full-text search is the offline search layer — repeated queries avoid network round-trips entirely.
The Go 1.26.3 minimum requirement is recent; teams on older Go toolchains cannot use the tool. The two-component install (binary + Claude Code skills) means the tool is tightly coupled to Claude Code — other agent harnesses are explicitly unsupported. Browser traffic sniffing for undocumented APIs is a supported input mode but carries inherent fragility: the sniffed contract is not versioned and breaks silently when the API changes. The public catalog at printingpress.dev and the Printing Press Library represent a growing library of pre-printed CLIs, reducing the need to generate from scratch for common APIs.
CLI Printing Press remains in Assess at inner position. The active P1 generator bug and 99 open issues introduce material risk for any first trial run — a generated CLI may silently produce incorrect SQLite schema depending on the target API's endpoint naming. The release cadence is high enough that these bugs are likely to be resolved soon, but the trial gate should require a clean generation run with scorecard verification passing before advancing. The MacOSCLIDistribution article notes this tool as the generator complement to the distribution pipeline; that dependency is unchanged.