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

  1. Input – You give the tool an API name, a Postman URL, or just a website URL.
  2. Research – The binary reads official docs, inspects popular community CLIs, and can sniff browser traffic to reverse‑engineer undocumented endpoints.
  3. Absorb – It gathers features from existing CLIs, MCP plugins, and community scripts, building a “manifest” of what a good tool should do.
  4. 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.
  5. Local data layer – The generated tools embed a SQLite store with full‑text search, incremental sync, and compound commands that operate on historic data.
  6. Verification – Four automated checks (scorecard, dog‑food, proof‑of‑behavior, live smoke test) produce a quality score and proof documents.
  7. 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

  1. Start Claude Code (or another supported agent).
  2. Run /printing-press <app‑name> – e.g. /printing‑press Notion.
  3. The agent invokes the binary, which outputs <notion>-pp-cli and <notion>-pp-mcp in your ~/printing-press/library folder.
  4. 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