Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

printing-press — Claude Code skill: what it does, how to install

Generates shippable Go CLI binaries from OpenAPI, HAR, or Postman specs through an automated 21-phase research, build, and test loop.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add mvanhorn/cli-printing-press --skill printing-press -a claude-code
Open on GitHub

What printing-press does

This skill guides coding agents through an end-to-end pipeline to scaffold Go CLI tools from raw API specs or domain names. It follows 21 deterministic phases, covering documentation discovery, auth reconnaissance, code generation, compilation, and live endpoint verification. Finished binaries land in $PRESS_LIBRARY/ alongside structured run logs in $PRESS_MANUSCRIPTS/.

Execution relies on the printing-press binary version 4.33.7 or higher and an active Go toolchain. The workflow strictly bars untested releases: passing go build is treated as a structural check, requiring passes against a live dogfood target matrix before marking the run done.

What it helps with

  • generate a production-ready Go CLI from an OpenAPI spec
  • convert HAR captures or Postman collections into command-line tools
  • validate API reachability and auth flows before writing code
  • run automated dogfood test matrices against real service endpoints

Example prompts for the agent

  • Build a Go CLI for the Stripe API using this OpenAPI spec
  • Wrap this HAR file into a working CLI tool
  • Set up an API connector for api.github.com using printing-press

How to install printing-press

1Skills CLI (Vercel)

npx skills add mvanhorn/cli-printing-press --skill printing-press -a claude-code

2Manually: put the files in place

~/.claude/skills/printing-press/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/printing-press/

From the same set7

The whole set →

Similar

k-dart NomaDamas Skill for querying South Korea's Financial Supervisory Commission (FSC) DART electronic disclosure system. Search company filings, financials, and corporate information via OpenAPI. Claude Code CX Codex Cursor +1 6,300installs create-payment-credential stripe Skill retrieves secure payment credentials from a Link wallet—virtual cards, tokens for subscriptions and one-time purchases. Use when an agent needs to complete a payment on a merchant site or connect a Link account. Claude Code CX Codex Cursor +1 20,500installs spring-boot-engineer https://github.com/Jeffallan Generates Spring Boot 3.x code, JPA repositories, REST controllers, and Spring Security 6 configurations. Useful when writing Java microservices and reactive endpoints. Claude Code CX Codex Cursor +1 8,400installs chat-sdk vercel Assists in building multi-platform TypeScript chat bots using Vercel's Chat SDK. Useful when configuring unified bot logic across Slack, Discord, Telegram, or WhatsApp. Claude Code CX Codex Cursor +1 5,400installs extension-to-functions-codebase Google LLC Converts a Firebase Extension into a standalone Cloud Functions codebase or an npm package. Upgrades triggers from V1 to V2 and introduces declarative IAM rules. Claude Code CX Codex Cursor +1 56,000installs setup-slack-channel CopilotKit Skill to connect a local CopilotKit Channels agent to Slack from scratch: creates a Slack app, generates tokens, and binds them to a managed Intelligence Channel. Use it to make your bot respond to Slack mentions. Claude Code CX Codex Cursor +1 1,300installs mcp-builder official anthropics This skill walks through building an MCP server in TypeScript or Python, from reading the protocol spec to writing tests and evaluation questions. Claude Code Claude.ai 130,949installs lark-im larksuite This skill lets an agent work with Lark IM messages, chats, files, and interactive cards. Use it when coding tasks need access to team conversations. Claude Code CX Codex Cursor +1 472,300installs

Questions about printing-press

How to install printing-press in Claude Code?

Run npx skills add mvanhorn/cli-printing-press --skill printing-press -a claude-code.

What does printing-press do?

It automates Go CLI generation from API specifications, including OpenAPI, Postman collections, and HAR files. The skill manages documentation lookup, code scaffolding, compilation, and live API smoke tests.

What prerequisites are required for printing-press?

You need an installed Go toolchain and the printing-press binary version 4.33.7 or later. The workflow also needs network access for documentation lookups and live target testing.

Source text

SKILL.md · MIT
---
name: printing-press
description: Set up a new integration, connector, or CLI binding for any API. Wrap or generate a ship-ready Go CLI from an OpenAPI, HAR, or Postman spec via the lean research -> generate -> build -> shipcheck loop. Use when the user says build a CLI, wrap this API, set up a new integration, add a connector, integrate with a service, or names an API by domain.
version: 3.0.0
min-binary-version: "4.33.7"
allowed-tools:
  - Bash
  - Read
  - Write
  - Edit
  - Glob
  - Grep
  - WebFetch
  - WebSearch
  - AskUserQuestion
  - Agent
created_by: user
---

# /printing-press

**Result:** A working Go CLI in `$PRESS_LIBRARY/<api-slug>/`, plus up to five dense
manuscripts archived to `$PRESS_MANUSCRIPTS/<api-slug>/<run-id>/`: research brief,
absorb manifest, build log, shipcheck proof, and live smoke proof when live testing ran.

**Next consumer:** The user, who runs the CLI or ships it, and the sibling skills that
take it from here: `printing-press-polish` for a second pass, `printing-press-publish`
for the public library, `printing-press-retro` for findings against the Press itself.

**Done:** Every feature approved at the absorb gate is implemented, shipcheck reached
ship, the live dogfood matrix ran against real targets, the CLI is promoted, and the
receipt ledger closes on the last phase.

**Intent:** The best useful CLI for an API without an hour of phase theater. Optimize
for time-to-ship, not time-to-document: reuse prior research when it is already good
enough, run the cheap high-signal checks early, fix blockers before polish.

## Boundaries

- **Never leak a secret.** API key **values**, token **values**, passwords, and session
  cookies must never reach source, manuscripts, proofs, READMEs, HARs, receipts, or
  anything committed. Env var **names** and placeholders are safe. Phase 5.6 and publish
  apply [references/secret-protection.md](references/secret-protection.md).
- **Never ship untested.** `go build` and `verify` pass-rate are structural signals, not
  correctness signals. A CLI that has not been through the live matrix in
  [phases/18-dogfood-testing.md](phases/18-dogfood-testing.md) is not shippable, and a
  bug a 1-3 file edit resolves is fixed now, not filed for v0.2.
- **Never quote human-time estimates** for sub-tasks ("~15-30 min", "quick fix"). The
  agent does the work, not the user; describe scope instead. The carve-outs are the
  genuinely time-bound: the whole run (30-60 minutes), tool installs, and the
  network-bound printing-press subcommands.
- **Never sequence from memory.** The receipt ledger decides which phase comes next; see
  [references/phase-receipts.md](references/phase-receipts.md).

## Authority

Invocation authorizes reading and writing under `$PRESS_RUNSTATE/`, `$PRESS_LIBRARY/`,
and `$PRESS_MANUSCRIPTS/`, running the printing-press binary and the Go toolchain, and
researching the API on the open web. It does not authorize publishing to the public
library, opening a pull request, or writing anywhere else on the user's machine.

## Steps

Enter [phases/01-preflight.md](phases/01-preflight.md) before any user-facing prompt,
then read [references/run-resolution.md](references/run-resolution.md): it resolves the
API target, the briefing context, and the source priority for combo runs.

**Never execute a phase from memory. When you enter a phase, Read its file from phases/ first.**
Code orchestration in [phases/10-generate.md](phases/10-generate.md) serves reads on `<api>_read` and previews state-changing `<api>_execute` calls until `confirm` is boolean `true`.

| Step | File |
|---:|---|
| 1 | [phases/01-preflight.md](phases/01-preflight.md) |
| 2 | [phases/02-run-initialization.md](phases/02-run-initialization.md) |
| 3 | [phases/03-resolve-and-reuse.md](phases/03-resolve-and-reuse.md) |
| 4 | [phases/04-research-brief.md](phases/04-research-brief.md) |
| 5 | [phases/05-pre-browser-sniff-auth-intelligence.md](phases/05-pre-browser-sniff-auth-intelligence.md) |
| 6 | [phases/06-browser-sniff-gate.md](phases/06-browser-sniff-gate.md) |
| 7 | [phases/07-crowd-sniff-gate.md](phases/07-crowd-sniff-gate.md) |
| 8 | [phases/08-ecosystem-absorb-gate.md](phases/08-ecosystem-absorb-gate.md) |
| 9 | [phases/09-api-reachability-gate.md](phases/09-api-reachability-gate.md) |
| 10 | [phases/10-generate.md](phases/10-generate.md) |
| 11 | [phases/11-build-the-goat.md](phases/11-build-the-goat.md) |
| 12 | [phases/12-shipcheck.md](phases/12-shipcheck.md) |
| 13 | [phases/13-sync-param-drop-gate.md](phases/13-sync-param-drop-gate.md) |
| 14 | [phases/14-agentic-skill-review.md](phases/14-agentic-skill-review.md) |
| 15 | [phases/15-readme-skill-agents-correctness-audit.md](phases/15-readme-skill-agents-correctness-audit.md) |
| 16 | [phases/16-agentic-output-review.md](phases/16-agentic-output-review.md) |
| 17 | [phases/17-local-code-review.md](phases/17-local-code-review.md) |
| 18 | [phases/18-dogfood-testing.md](phases/18-dogfood-testing.md) |
| 19 | [phases/19-polish.md](phases/19-polish.md) |
| 20 | [phases/20-promote-and-archive.md](phases/20-promote-and-archive.md) |
| 21 | [phases/21-next-steps.md](phases/21-next-steps.md) |

Follow each file's final `Next:` pointer, and record the receipt handoff each phase
names. Late procedure lives in the phase file or a role-named reference it loads
([references/phase-receipts.md](references/phase-receipts.md), [references/codex-delegation.md](references/codex-delegation.md),
[references/fetch-docs.md](references/fetch-docs.md)). Do not restate those files here.

© mvanhorn · MIT · mvanhorn/cli-printing-press

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor