2026-05-10 refresh — Nate Herk follow-up tutorial. Second Nate Herk video (J44D3BrGKoo) widens the no-public-API CLI demos to MyFitnessPal (Telegram-driven Claude agent logged a meal directly through a Printing-Press-built CLI) and reaffirms the community-built CLI surface — Google Photos, Google Ads, Mercury, Kalshi, Domino’s are all named as already-shipped library entries. Same architectural pitch (CLI / API / MCP comparison) as YHk45NEpspE but with an additional concrete production loop showing the Printing Press workflow chained behind a messaging surface, not just terminal use.
Matt Van Horn’s Printing Press is an agent-designed CLI factory and library — one command (printing-press) generates a Go CLI, a Claude Code skill, an OpenClaw skill, and an MCP server from an API spec, a website with no public API, or a HAR file. Ships with a 50+ pre-built CLI library covering ESPN, Flight Goat, Movie Goat, Recipe Goat, Hacker News, Linear, Shopify, TikTok Shop, ScrapeCreators integration, AllRecipes, Airbnb, Redfin, Slack, Cal.com, Domino’s, and many more. Press repo at 622 stars MIT, library at 454 stars, both Go, both very active (last push 2026-05-09 — same day as this ingest). The thesis: “APIs are built for code, MCP is built for tools, CLIs are built for agents.” Two independent token-economics claims anchor the architectural argument: MCP uses 35× more tokens than CLI on the same task (Printing Press tutorial), reliability drops from 100% (CLI) to 72% (MCP) as tasks get harder. Same author as last30days-skill (24.2k★) — Matt Van Horn ships polished agent tooling at scale. Lineage acknowledgement to Peter Steinberger (OpenClaw author) whose earlier discrawl + gogcli projects established the agent-native-CLI playbook this generalizes.
Key Takeaways
One command outputs four artifacts. A single printing-press run from an API spec / website / HAR file produces:
Go CLI binary (compiled tool)
Claude Code skill (SKILL.md + companion files for ~/.claude/skills/<name>/)
OpenClaw skill (the same SKILL.md format works in OpenClaw)
MCP server (for editors that prefer MCP over CLI)
This four-output design is unusual — most agent-tool builders pick one. Means the same “thing” plugs into Claude Code skill workflow, OpenClaw runtime, and MCP-driven editors interchangeably.
The architectural thesis: APIs ≠ MCP ≠ CLI for agents.
“APIs are built for code, MCP is built for tools, CLIs are built for agents.”
Surface
Best for
Trade-offs
API
Code with millisecond budgets
Raw JSON dumps; pagination/auth boilerplate; built for developers, not agents
MCP
Tools with discovery
Must keep server running; loads all tool descriptions = context bloat; eager discovery of all 50 tools costs tokens whether invoked or not
CLI
Agents
Local + fast + composable; SQLite backend; agent-native; lazy discovery; pre-formatted output (~200 tokens clean text); compound commands; auth solved one-time at install; no rate limits via local mirror
Two converging benchmarks anchor the “CLI > MCP for agents” claim.
Printing Press tutorial: MCP used 35× more tokens than CLI on the same task. Reliability 100% (CLI) → 72% (MCP) as tasks get harder.
TinyFish launch: vendor-reported 87% token reduction and 2× completion rate for CLI + Skill over MCP.
Two independent measurements converge: agent-native CLIs are 30-90% cheaper and noticeably more reliable than MCP for the same job.
The school.com demo (the YouTube hook). school.com has no public API. Nate Herk asked Claude Code to “go to my school community and grab me some posts” → Printing Press reverse-engineered an authenticated session and built a working CLI in ~10 minutes. The CLI request consumed ~132,000 tokens of API response from school.com but only ~2,000 tokens entered the Claude context window (the CLI processed the bulk locally). MCP would have surfaced all 132k.
The factory is the “build your own” surface. Press binary at github.com/mvanhorn/cli-printing-press/v4/cmd/printing-press@latest. From a URL or API spec or HAR file, Press: researches the target → catalogs every feature → presents what it found → generates a Go CLI building every feature → verifies quality through dogfood runtime testing. Tutorial demo: built a Hacker News CLI from a single URL in roughly the same time it would have taken to read the docs.
Library entries worth flagging for the existing wiki ecosystem:
scrape-creators library entry — direct integration with ScrapeCreators (already in the wiki). The two projects are intentionally interoperable; Adrian Horning (ScrapeCreators founder) is a Printing Press contributor.
shopify library entry — agent-native counterpart to the Claude Desktop Shopify connector. Different surface (CLI vs Connector), same underlying GraphQL Admin API.
linear library entry — pairs with the existing Claude Memory (internal — see Memory and Dreaming talk for the public Memory primitive)|Claude Memory (internal — see Memory and Dreaming talk for the public Memory primitive) and skills-based Linear integrations.
firecrawl library entry — agent-native version of the Firecrawl scraping service (referenced in voice-agents-elevenlabs as part of the operator stack).
contact-goat — the LinkedIn-email-lookup demo from the Nate Herk tutorial. Cross-references LinkedIn / Happenstance / Deepline.
hackernews — full-text-search HN reader with local SQLite — useful as a research-skill companion to last30days.
Decision tree for choosing a tool surface (from the tutorial):
Tier 1: Find or build a CLI.
Tier 2: Use the API directly if no CLI exists (every API can be turned into a CLI by Press).
Tier 3: MCP as a last resort, only when CLI/API approaches won’t work.
Same-author lineage with last30days-skill. Matt Van Horn (@mvanhorn) shipped both. Track record: research-aggregator skill at 24.2k★ + CLI factory at 622★/454★ across two repos in ~6 weeks. The author is becoming a load-bearing voice in agent-tooling architecture; worth tracking his next ship.
Inspired-by acknowledgement to Peter Steinberger. His discrawl and gogcli projects established the playbook: “local SQLite mirror beats a remote API call, compound commands beat ten round trips, and an agent-native CLI beats raw HTTP.” Steinberger is also the author of OpenClaw (the open-source agent runtime that pairs with Rabbit R1 voice surface) — the agent-native-CLI design philosophy and the OpenClaw runtime come from the same designer.
Sharing model. Built a private CLI? Push to a GitHub repo, invite team members as contributors, they git clone and swap in their own API keys. Public CLIs go into the library repo for community use.
Distribution caveat. API keys / OAuth tokens / authentication cookies still belong outside the CLI scripts — same hygiene as API endpoints. Rate limits aren’t bypassed by switching to CLI; if your platform caps you at N requests/day via API, the CLI inherits that cap.
Where this fits in the wiki
Belongs to the TinyFish / ScrapeCreators / Meta Ads CLI / ElevenLabs voice-agents / Railway Remote MCP / Cowork Live Artifacts vendor-direct cluster. Same architectural pattern: agent-native tools shipped as CLI / SDK / direct-API rather than n8n/Zapier middleware. Printing Press is the seventh and most architecturally explicit source — it generalizes the pattern into a factory you can use to convert any tool into the right shape.
Triggers the long-overdue “vendor-direct tool calls” connection article. The ScrapeCreators article flagged the candidate as #6 / overdue. With Printing Press making it #7, plus the named two converging benchmarks (TinyFish 87% / Printing Press 35×), the connection article now has both volume and quantitative anchors. This article is the one that closes the connection’s argument.
Same author as last30days-skill. Matt Van Horn’s two-project arc — research aggregator + CLI factory — is starting to look like a coherent agent-tooling thesis. Worth a future “Matt Van Horn’s agent-tooling stack” reference if a third project lands.
Steinberger / OpenClaw thread. Confirms the architectural lineage: Steinberger’s discrawl + gogcli → Printing Press → community-built CLIs at scale. The same designer drove OpenClaw (multi-agent runtime) and the agent-native-CLI design philosophy. Both projects optimize for “what does an agent actually need at the bottom of the stack.”
Composes cleanly with oh-my-claudecode (OMC) and Everything Claude Code orchestration. OMC orchestrates teams; ECC ships harness-wide configuration; Printing Press generates the per-tool CLI/skill that those teams invoke. Three layers of agent infrastructure, no overlap.
Echoes the “Expanding Toolkit” Code with Claude 2026 talk thesis that scaffolding moves into the model. Printing Press is the outside-the-model counterpart: scaffolding moves into the tool layer, designed for agent invocation patterns rather than API ergonomics.
Library:git clone https://github.com/mvanhorn/printing-press-library.git (50+ community CLIs).
Prerequisite: Go runtime. Free, open-source. Claude Code can install it for you with a one-line ask.
Cost:
Press binary: free (MIT).
Library CLIs: free (no SPDX license listed at the library-repo level — check per-CLI LICENSE files for commercial use).
Per-CLI: token costs go to your model provider; no per-call charge from Printing Press itself.
Integration notes:
Each generated CLI ships with a Claude Code skill (SKILL.md) that registers the CLI for natural-language invocation. No manual skill authoring required.
Same SKILL.md works in OpenClaw (Steinberger’s runtime) and as an MCP server.
API keys / OAuth / cookies belong outside the CLI scripts — treat them like API credentials.
Rate limits are not bypassed — the CLI inherits the upstream platform’s quotas.
Local SQLite mirror is the default storage for CLIs that benefit from caching (linear, craigslist, ebay, hackernews, etc.). Persistent across sessions.
For private team CLIs: push to a private repo, invite contributors, each contributor swaps in their own API keys.
For public CLIs: PR to the library repo for community use.
Open Questions
Library license clarity. GitHub reports - for the library repo’s SPDX license. Press is MIT, but the library is the more-used surface. Each library CLI has its own LICENSE file; commercial use of library CLIs requires per-CLI verification.
Update cadence on community library entries. 50+ CLIs maintained by varying contributors. What’s the maintenance bar — does the library curator validate new PRs, or is community trust the bar?
Token-economics replication. The 35× MCP token claim is from Nate Herk’s tutorial via Printing Press’s marketing. Independent benchmarks (e.g., from someone not connected to either project) would strengthen the architectural claim.
HAR file → CLI quality. Reverse-engineering a website with no public API (like school.com) into a CLI is the killer feature. How brittle is the resulting CLI when the underlying site changes its session-cookie shape or response schema? Production durability isn’t quantified.
Cross-runtime parity testing. Press generates a Claude Code skill, an OpenClaw skill, and an MCP server. Does each runtime get equivalent behavior, or is one “primary” and others “best-effort”? Worth testing before depending on cross-runtime portability.
Concurrency model. SQLite mirror suggests single-process; what happens with multiple concurrent agent sessions hitting the same CLI? Locking? Stale reads?
Try It
5-minute taste with the starter pack:
# Install Go (1 minute) — Claude Code will do it for you if askednpx -y @mvanhorn/printing-press install starter-pack
Then in Claude Code: What NBA games are on tonight? → invokes the espn skill automatically.
Try the factory. Install Press binary, then ask Claude Code: "Use Printing Press to build a CLI for [website-with-no-API I care about]." Watch the research → catalog → generate → verify pipeline. Demo from the tutorial: it builds a Hacker News CLI in ~5 minutes from a single URL.
For agency-direct workflows: the linear, slack, cal-com, shopify, tiktok-shop, firecrawl, scrape-creators library entries are immediate productivity unlocks. Install one, test the natural-language invocation, replace your existing MCP server for that tool if applicable.
For research-heavy work: install hackernews, wikipedia, pokeapi (offline), or wanderlust-goat. Pair with last30days (same author) for a research-and-aggregate workflow that doesn’t burn tokens on retrieval.
For team distribution: build one private CLI (e.g., wrap your internal API or a niche SaaS). Push to a private GitHub repo. Invite team contributors. Each swaps in their own API key. The “share a CLI internally” pattern is more durable than sharing prompts — the CLI is versioned code, not session-dependent prose.
Compare against TinyFish for the web-infra-deep counterpart. TinyFish is a hosted service (Search/Fetch/Browser/Agent); Printing Press is a local CLI generator. Different deployment surfaces, similar token-economics argument.
Compare against ScrapeCreators for social-platform-deep coverage. ScrapeCreators is a paid-API for 20+ social platforms; Printing Press’s scrape-creators library entry wraps it as a CLI. Stack the two for the most token-efficient agent-driven social workflow.