skillmake
← 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