← marketplace
engineerstoolsha:5f3cb6e44b29869cmanual
printingpress
Use when you want to auto-generate an agent-native Go CLI and MCP server from an API spec, HAR file, or website — with local SQLite mirror, FTS5 search, and compound commands the underlying API can't answer natively.
Tutorials · creator-attached
One-line install
curl --create-dirs -fsSL https://skillmake.xyz/i/printingpress -o ~/.claude/skills/printingpress/SKILL.md
The hash above pins this exact content. The file we serve at /api/marketplace/printingpress-5f3cb6e4/raw always matches sha:5f3cb6e44b29869c.
6,457 chars · ~1,614 tokens
--- name: printingpress description: "Use when you want to auto-generate an agent-native Go CLI and MCP server from an API spec, HAR file, or website — with local SQLite mirror, FTS5 search, and compound commands the underlying API can't answer natively." source: https://github.com/mvanhorn/cli-printing-press generated: 2026-05-12T18:05:32.021Z category: tool audience: engineers --- ## Tutorials - https://skillmake.xyz/v/printingpress.mp4 ## When to use - Turning an OpenAPI / GraphQL / HAR / website into a token-efficient CLI + MCP server an agent can actually drive - Adding a local SQLite mirror to an API so the agent can run `search`, `stale`, `orphans`, and `bottleneck` queries the API itself can't answer - Generating both a Cobra CLI binary (`<api>-pp-cli`) and an MCP server (`<api>-pp-mcp`) from a single source — same data layer, two surfaces - Browser-sniffing a website that has no published API and emitting a working CLI from captured DevTools HAR traffic ## Key concepts ### Agent-native CLI design Generated CLIs auto-emit JSON when piped, ship a `--compact` mode that drops 60–80% of output tokens, expose typed exit codes for control flow, and support `--dry-run` everywhere. The whole shape is tuned for an LLM driving the binary, not a human reading help text. ### Secret-identity architecture Printing Press doesn't just wrap endpoints — it identifies what each API really represents (a graph, a queue, a calendar, a CRM) and architects the CLI around that. Output is the GOAT CLI for that domain, with compound commands (`health`, `similar`, `bottleneck`) layered on top of the raw verbs. ### Local SQLite + FTS5 Every generated CLI ships a domain-specific SQLite schema, FTS5 full-text search, and incremental sync with cursor tracking. `sync` populates the mirror; downstream commands query SQLite, not the remote API — fewer round trips, offline capable, agent-cacheable. ### Four verification gates Generated projects must pass four gates before they're considered done: structural scorecard, dogfood test, proof-of-behavior, and a live smoke test (GET-only, never mutates). `printing-press scorecard` / `dogfood` / `verify` / `auth doctor` each target one of these. ### Slash-command workflow The binary alone skips Printing Press's curated agent loop. `/printing-press <name|url>` is the primary entry point inside Claude Code — `/printing-press-reprint`, `/printing-press-polish`, and `/printing-press-publish` cover regen, targeted fixes, and library publishing respectively. ### Browser-sniff mode When a website has no published API, pass it a URL and either a DevTools HAR export or a live browser launch. The press captures real traffic, infers the API, and emits a CLI from the captured calls — no spec required. ## API reference ``` Prerequisites ``` Go 1.26.3+ and Claude Code. Optional: GitHub CLI v2.90+ or npm/npx for skill installation. ``` # Verify go version # >= 1.26.3 claude --version # any recent Claude Code ``` ``` Install the binary ``` Installs the `printing-press` CLI from source. ``` go install github.com/mvanhorn/cli-printing-press/v4/cmd/printing-press@latest ``` ``` Install the skills (recommended — clone the repo) ``` Clone the repo and let Claude Code pick up its `.claude/plugins` directory. This is the recommended path because it gives you the full slash-command set + agent loop. ``` git clone https://github.com/mvanhorn/cli-printing-press.git claude --plugin-dir . ``` ``` Install the skills (alternative — gh skill install) ``` If you don't want a local clone, install the skills directly into Claude Code's user scope. ``` gh skill install mvanhorn/cli-printing-press --agent claude-code --scope user ``` ``` Starter pack via npx ``` Bootstrap a starter set of pre-built CLIs (77+ across travel, commerce, media, productivity) without compiling from source. ``` npx -y @mvanhorn/printing-press install starter-pack ``` ``` Primary slash commands ``` Drive the full generate / regen / polish / publish loop from inside Claude Code. ``` /printing-press <app-name> # generate CLI from API name /printing-press https://example.com # generate from website (browser-sniff) /printing-press-reprint <api> # regenerate under latest machine /printing-press-polish <api> # targeted fixes and diagnostics /printing-press-publish <api> # publish to library ``` ``` Verification gates ``` Run the four gates on a generated project. `auth doctor` diagnoses missing/suspicious tokens without exposing full values. ``` printing-press scorecard --dir . --spec ./openapi.json printing-press dogfood --dir . --spec ./openapi.json printing-press verify --dir . --spec ./openapi.json --api-key $TOKEN printing-press auth doctor ``` ``` Generated CLI verbs ``` Every generated CLI exposes a baseline verb set; domain-specific workflow + insight commands are layered on top. ``` <api>-pp-cli sync <api>-pp-cli search "query string" <api>-pp-cli sql "select * from items where stale = 1" <api>-pp-cli list | get | create | update | delete ``` ## Gotchas - The slash command is the primary interface — running `printing-press` standalone skips Printing Press's curated agent loop and you'll get a lower-quality CLI. - Browser-sniff mode is manual: you drive the site, the press captures traffic. Expect to repeat the flow until the captured HAR covers every endpoint you care about. - Live smoke tests are read-only by design — Phase 5 verification uses GET only and will not mutate data. Don't rely on `verify` to catch write-path bugs. - The scorecard grades structure, not correctness. A Grade A scorecard means the generated CLI follows the patterns; it does not guarantee bug-free real-world behavior. - `regen-merge` is macOS/Linux only — Windows users can't reconcile diffs through that subcommand and need to regenerate fresh. - Generated CLIs detect auth from the API spec (OAuth, Bearer, Basic). If the spec is incomplete, run `printing-press auth doctor` before assuming the CLI works end-to-end. - Requires Go 1.26.3+ — older Go installs will fail at `go install` time with an obscure module error. - The `--compact` token-savings claim (60–80%) is measured against the default JSON output; if you pipe through `jq` you may re-inflate the savings. --- Generated by SkillMake from https://github.com/mvanhorn/cli-printing-press on 2026-05-12T18:05:32.021Z. Verify against source before relying on details.
File: ~/.claude/skills/printingpress/SKILL.md