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.
What it is
CLI Printing Press is a Go‑based generator that creates a full‑featured command‑line interface (CLI) and an MCP server for any web API – even ones without an OpenAPI spec. It is designed for AI agents (Claude Code, Codex, etc.) so they can call APIs with minimal token usage.
How it works
- Input – You give the tool an API name, a Postman URL, or just a website URL.
- Research – The binary reads official docs, inspects popular community CLIs, and can sniff browser traffic to reverse‑engineer undocumented endpoints.
- Absorb – It gathers features from existing CLIs, MCP plugins, and community scripts, building a “manifest” of what a good tool should do.
- Generate – From the spec and the manifest it emits two Go binaries:
<api>-pp-cli– a Cobra‑based terminal CLI.<api>-pp-mcp– an MCP server that IDE‑based agents can discover.
- Local data layer – The generated tools embed a SQLite store with full‑text search, incremental sync, and compound commands that operate on historic data.
- Verification – Four automated checks (scorecard, dog‑food, proof‑of‑behavior, live smoke test) produce a quality score and proof documents.
- Publish / Polish – You can publish the CLI to the public library or run a “polish” pass that fixes bugs, updates docs, and re‑scores.
Who it’s for
- AI agents that need fast, token‑efficient access to APIs (Claude Code, Codex, Gemini, etc.).
- Developers who want a ready‑made, high‑quality CLI for an API without writing boilerplate.
- Teams that want a local, searchable copy of remote data (e.g., tickets, flights, sports scores) for offline analysis.
What you get
- A ready‑to‑install Go CLI with sensible defaults (
--json,--compact, typed exit codes, etc.). - An MCP server exposing the same operations for IDE‑based agents.
- A local SQLite database with sync, search, and SQL query capabilities.
- Compound commands (
stale,health,bottleneck, …) that go beyond simple endpoint wrappers. - Verification artifacts and a quality score for each generated tool.
Example generated tools
- ESPN – pulls NBA playoff info from scraped Google Flights‑style traffic, returning a full summary in one call.
- flight‑goat – combines Kayak and Google Flights data to list long‑haul nonstop flights.
- linear‑pp‑cli – a 50 ms local SQLite‑backed CLI for Linear issue tracking with advanced queries.
Installation (quick)
curl -fsSL https://raw.githubusercontent.com/mvanhorn/cli-printing-press/main/scripts/install.sh | bash
The script installs the generator binary and registers the Claude Code skills. Use --cli-only or --skills-only to install just one side, and --agent codex if you prefer Codex.
Using it
- Start Claude Code (or another supported agent).
- Run
/printing-press <app‑name>– e.g./printing‑press Notion. - The agent invokes the binary, which outputs
<notion>-pp-cliand<notion>-pp-mcpin your~/printing-press/libraryfolder. - Run the CLI directly or let an IDE discover the MCP server.
Why it matters
- Token efficiency – Agents interact with a concise CLI instead of raw HTTP, cutting token usage dramatically.
- Depth over breadth – By persisting data locally, the generated tools can answer compound queries that pure API wrappers cannot.
- Zero‑spec support – Even undocumented web interfaces can be turned into a full CLI via browser sniffing.
- Verified output – Automated checks reduce hallucinations and broken flags before you ship.
All details are taken from the repository’s README; no additional features are assumed.
Related
- Project
- Project
- Project
- Project
- Project