skills
Skills for Real Engineers. Straight from my .claude directory.
npx skills@latest add mattpocock/skillsSkills for Real Engineers. Straight from my .claude directory.
npx skills@latest add mattpocock/skillsLangflow is a powerful tool for building and deploying AI-powered agents and workflows.
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows -- all through natural language commands. Use it in your terminal, IDE, or tag @claude on Github.
**Learn more in the [official documentation](https://code.claude.com/docs/en/overview)**.
<img src="./demo.gif" />
## Get started
> [!NOTE]
> Installation via npm is deprecated. Use one of the recommended methods below.
For more installation options, uninstall steps, and troubleshooting, see the [setup documentation](https://code.claude.com/docs/en/setup).
1. Install Claude Code:
**MacOS/Linux (Recommended):**3908 GitHub stars recorded
You need both the binary and the Printing Press skills. The skills (/printing-press <app>) are the primary interface; they drive the binary behind the scenes.
The binary alone works (research, generation, verification, scoring) but skips the curated agent loop. The skills alone have nothing to call. Install both.
Prerequisites: Go 1.26.5 or newer, Claude Code or another skills-supported agent, and Node/npm for npx. The skills are tested with Claude Code; install for Codex with --agent codex when you want to try the same slash-command workflow there. Use Claude Code for the best-tested experience.
curl -fsSL https://raw.githubusercontent.com/mvanhorn/cli-printing-press/main/scripts/install.sh | bash
The installer runs go install for the generator binary, then refreshes all Printing Press skills through skills@latest add --skill '*'. Restart or reload your agent session after it completes so the refreshed skills are loaded.
Use --cli-only or --skills-only when you only want one side:
curl -fsSL https://raw.githubusercontent.com/mvanhorn/cli-printing-press/main/scripts/install.sh | bash -s -- --cli-only
curl -fsSL https://raw.githubusercontent.com/mvanhorn/cli-printing-press/main/scripts/install.sh | bash -s -- --skills-only
Claude Code is the default install target. To install or refresh the skills for Codex instead, pass --agent codex:
curl -fsSL https://raw.githubusercontent.com/mvanhorn/cli-printing-press/main/scripts/install.sh | bash -s -- --skills-only --agent codex
npx -y skills@latest list -g -a codex --json
See docs/CODEX.md for the Codex-specific notes.
Verify with cli-printing-press --version. If install fails, confirm Go 1.26.5 or newer is installed, Node/npm is installed for npx, and $GOPATH/bin is on your PATH.
Older releases installed a generator binary named printing-press. That legacy
entrypoint still works for compatibility, but the canonical generator command is
now cli-printing-press so the public library installer can own
printing-press list, printing-press search, and printing-press install.
Install or update the binary:
go install github.com/mvanhorn/cli-printing-press/v4/cmd/cli-printing-press@latest
Use Vercel's open-agent-skills CLI to install the Printing Press skills from this repo into a supported agent. Claude Code is the default and tested path:
npx -y skills@latest add mvanhorn/cli-printing-press/skills --skill '*' -g -a claude-code -y
For Codex:
npx -y skills@latest add mvanhorn/cli-printing-press/skills --skill '*' -g -a codex -y
npx -y skills@latest list -g -a codex --json
To refresh the skills later without naming individual skills, rerun the installer in skills-only mode:
curl -fsSL https://raw.githubusercontent.com/mvanhorn/cli-printing-press/main/scripts/install.sh | bash -s -- --skills-only
Restart or reload the target agent after refreshing skills so the new skill text is loaded.
Once installed, you can start Claude Code from any folder. Codex users should start a fresh Codex session after installing or refreshing skills.
Use this if you're editing the Printing Press itself and want local skill changes to take effect on the next session start.
git clone https://github.com/mvanhorn/cli-printing-press.git
cd cli-printing-press
claude --plugin-dir . # load this repo's skills directly
claude --plugin-dir . -w # ...in a new git worktree (parallel runs)
For a persistent local setup that survives restarts and also loads in background sessions, see Local Plugin Development.
claude
Then inside Claude Code:
/printing-press <app-name>
For example:
/printing-press Notion # Print a CLI for an API by name
/printing-press https://postman.com/explore # ...or point at a website (no spec needed)
/printing-press-reprint notion # Reprint an existing CLI under the latest machine
/printing-press drives the cli-printing-press binary you installed — research, generation, scoring, and shipcheck all run through it. Two parts, one workflow.
One command. Lean loop. Produces a Go CLI plus an MCP server that absorbs every feature from every competing tool, then transcends with compound use cases only possible with local data. REST, GraphQL, or browser-sniffed traffic. No OpenAPI spec required.
Each run produces two binaries (<api>-pp-cli plus <api>-pp-mcp), research documents, verification proofs, and a Quality Score.
By default, active and published output are separated:
~/printing-press/.runstate/<scope>/runs/<run-id>/working/<api>-pp-cli~/printing-press/library/<api>~/printing-press/manuscripts/<api>/<run-id>/research/, proofs/, discovery/, and pipeline/<scope> is derived from the current git checkout path, so parallel worktrees do not stomp on each other. If you pass --output, that overrides the generated CLI location for that command.
/printing-press HubSpot codex # Offload code generation to Codex CLI
/printing-press HubSpot # Standard Opus mode (default)
When you add codex, Phase 3's code generation tasks are delegated to Codex CLI. Claude stays the brain (research, planning, scoring, review). Codex does the hands (writing Go code from scoped prompts). Same quality, 60% fewer Opus tokens. If Codex fails 3 times in a row, the press falls back to doing it locally, no manual intervention needed.
Targeted fix-up. Diagnostics (dogfood, verify, scorecard, output review), fixes verify failures, removes dead code, cleans descriptions and READMEs, offers to publish. Auto-runs as Phase 5.5 of every generation; can also run standalone:
/printing-press-polish notion
When you're happy with a CLI, publish it to the library:
/printing-press-publish linear # Validates, packages, creates PR
After dogfooding a published CLI in a Claude Code session, turn the friction you hit (missing flags, hand-rolled API payloads, silent-null returns) into a PR for the public library. Mines the active session transcript, scopes the patch with you, plans + executes the fix autonomously, scrubs PII, and opens a PR — two checkpoints (scope, PR draft):
/printing-press-amend # auto-detect target CLI from session
/printing-press-amend superhuman # explicit target
/printing-press slash command doesn't appear. Restart or reload the agent session after installing the skills. For Claude Code, run npx -y skills@latest list -g -a claude-code to verify the install. For Codex, run npx -y skills@latest list -g -a codex --json. If you're developing from a clone in Claude Code, confirm claude --plugin-dir . was run from the cloned repo root or use the persistent local setup in Local Plugin Development.
cli-printing-press: command not found after a successful go install. $GOPATH/bin (default ~/go/bin) isn't on your PATH. Add it to your shell profile.
Live API smoke test reports 401. Token unset or stale. Run cli-printing-press auth doctor to see which env vars are missing or suspicious before reading shell config.
Browser-sniff captures no useful endpoints. The site likely uses websockets, gRPC, or aggressive bot detection. Try a HAR export from DevTools (/printing-press --har ./capture.har) instead of the live browser flow.
Codex mode falls back to local generation. Expected behavior after 3 consecutive Codex failures. Standard Opus mode takes over with no manual intervention.
--compactTable stakes features (from the absorb gate). Every feature the top competitor has, classified and built before novel features. If schpet/linear-cli has start (git branch from issue), you get it. If 4ier/notion-cli has human-friendly filters, you get it. Anti-gaming rules prevent scorecard optimization over real features.
Data layer (high-gravity entities). Domain-specific SQLite tables with proper columns (not JSON blobs), FTS5 full-text search, incremental sync with cursor tracking, sql command for raw queries, domain-specific UpsertX() and SearchX() methods.
Workflow commands (from archetype): stale, orphans, load, channel-health, reconcile, etc.
Insight commands (Rung 5): health (composite score), similar (duplicate detection), trends, bottleneck, forecast, patterns.
Production-ready output. Command name normalization (retrieve-a -> get, post -> create, patch -> update); .printing-press.json provenance manifest; "Sources and Inspiration" section in each generated README; proxy-envelope support for APIs that wrap requests in a POST envelope; adaptive rate limiting on browser-sniffed APIs (start slow, ramp on success, back off on 429); minimum 1 test file per package; .goreleaser.yaml plus Homebrew formula plus GitHub Actions CI; REST or GraphQL specs both supported; MCP server auto-emitted at cmd/api-mcp/main.go; cursor-based pagination, batch SQLite transactions, tuned pragmas, --since incremental sync, and --concurrency parallel workers in every sync (discrawl-inspired).
The profiler classifies every API into a domain archetype and auto-generates the right workflow + insight commands:
| Archetype | Detected by | Auto-generated commands |
|---|---|---|
| Project Management | issue/task/ticket resources, assignee fields, priority levels | stale, orphans, load, health, similar |
| Communication | message/channel/thread resources, threading fields | channel-health, message-stats, health, similar |
| Payments | charge/payment/invoice resources, amount/currency fields | reconcile, revenue, health, similar |
| Infrastructure | server/deploy/instance resources | health, similar |
| Content | document/page/block resources | health, similar |
The archetype is detected automatically from the spec. The entity mapper figures out which resource is the "primary entity" (issues for PM, messages for comms, charges for payments) and wires the templates accordingly.