MCPInstall

printing-press-library

Use when looking for a CLI, API wrapper, scraper, data-source tool, automation tool, or focused agent skill for a task; searches the Printing Press Library and installs matching tools.

Installs
922
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/mvanhorn/printing-press-library --skill printing-press-library
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads printing-press-library automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Printing Press Library

Use this skill when a user asks for a CLI, agent skill, API wrapper, scraper, automation tool, or data source that may exist in the Printing Press Library.

The library is an open-source catalog of focused CLIs and matching agent skills generated from mvanhorn/cli-printing-press. This skill is the catalog front door. Do not install a random long-tail skill just because it exists. First identify the right tool, then install the focused skill or CLI only when it is useful for the task.

Default workflow

  1. Clarify the user goal only if needed.

    • If the request names a service or website, search for that directly.
    • If the request describes a job instead of a service, search by capability and domain.
    • If the user's agent already has a safe built-in tool that solves the job, prefer that over installing another CLI.
  2. Search the catalog with the library CLI first.

    • Use npx -y @mvanhorn/printing-press-library search <keyword> for human-readable result cards.
    • Use npx -y @mvanhorn/printing-press-library search <keyword> --json for agent-friendly parsing.
    • Use npx -y @mvanhorn/printing-press-library list --category <category> --json when the category is known.
    • Each search result includes the canonical install command for that tool.
    • Fall back to the GitHub repo or local clone only when npx is unavailable or deeper inspection is needed.
  3. Select deliberately.

    • Prefer the candidate whose README/SKILL examples match the user's actual job, not merely the same website name.
    • Check whether auth, cookies, paid APIs, OS-specific binaries, or browser automation are required before installing.
    • Install the narrowest useful tool. Do not install a family of adjacent tools just because the search returned them.
  4. Install through the library installer when the selected tool is useful.

    • The default primitive is npx -y @mvanhorn/printing-press-library install <slug>.
    • In OpenClaw, use npx -y @mvanhorn/printing-press-library install <slug> --agent openclaw so the focused skill is materialized under OpenClaw's managed skills root; the installer defaults the Go binary into a per-user bin directory.
    • The install command installs both the CLI and the matching focused agent skill.
    • install <slug> is idempotent: re-running it on an already-installed tool refreshes the Go binary and overwrites/re-adds the focused skill in place.
    • Behind the scenes, the installer uses go install <module>@latest for the CLI and the Vercel Agent Skills-compatible skills CLI to install the focused pp-* skill globally from this repo.
    • If the Go binary installs successfully but is not on the current process PATH, treat that as a warning, not a failed skill install. The installer should still install the focused skill and print platform-specific PATH instructions.
    • In agent/gateway environments, shell startup files may not affect the already-running process. Restart the session/gateway after PATH changes, and verify the default user bin directory is visible to the harness.
    • For OpenClaw gateway/service deployments, verify the gateway process PATH can resolve <slug>-pp-cli; an interactive shell which is not enough.
    • Pass --cli-only or --skill-only only when the user explicitly wants just one side.
  5. Make the newly installed skill visible to the running agent.

    • Most agent harnesses snapshot available skills at session start. After installing or refreshing a focused skill, start a fresh session or reload skills before trying to invoke it.
    • In Hermes CLI sessions, use /reload-skills when available, or exit and start a new hermes session.
    • In Hermes gateway sessions, use /restart from the gateway chat or hermes gateway restart from a shell so the gateway process reloads installed skills.
    • In OpenClaw, assume the current agent session may not see newly installed skills until the OpenClaw session or gateway is restarted.
  6. Verify before claiming success.

    • If installing a CLI, run its --help or an equivalent harmless command.
    • If installing a skill, verify the destination harness can see it after the session reload/restart when the harness has a verification command.
    • If using a credentialed CLI, confirm required environment variables without printing secrets.
  7. Offer an efficient periodic update schedule after successful install or refresh.

    • Because install/update is idempotent, it is safe to keep installed Printing Press CLIs and focused skills current with a scheduled job.
    • Do not create a cron/scheduled job without explicit user approval; recurring jobs are durable side effects.
    • Avoid one scheduled job per CLI as the default. Users may install many Printing Press tools, and per-tool jobs become noisy and hard to manage.
    • Prefer one consolidated recurring job that runs npx -y @mvanhorn/printing-press-library update, which refreshes every installed Printing Press CLI currently on PATH and its matching focused skill.
    • Offer a per-tool job using npx -y @mvanhorn/printing-press-library update <slug> only when the user explicitly wants a different cadence or policy for that one tool.
    • Prefer quiet, low-frequency schedules such as weekly unless the user asks for something else.

What this skill is for

Use this skill to discover CLIs and agent skills in the public Printing Press Library. Match the user's goal to the right library entry, use the library CLI to find the canonical install command, and install the selected tool only when it is useful for the task.

Good fits:

  • finding a purpose-built CLI for a named service
  • finding a scraper or data-source tool for a one-off research or automation task
  • installing a focused pp-* skill so future agents know how to use a specific CLI
  • refreshing already-installed Printing Press CLIs and skills

Poor fits:

  • replacing a safe built-in agent tool that already solves the task
  • installing broad tool bundles speculatively
  • credentialed account actions where the user has not approved external side effects
  • publishing, posting, booking, buying, emailing, or mutating third-party state without explicit approval

Install primitive

The Printing Press Library CLI is the canonical interface for installing catalog tools:

npx -y @mvanhorn/printing-press-library install <slug>

For OpenClaw, pass the OpenClaw agent target explicitly. The installer puts the binary in the default per-user bin directory ($HOME/.local/bin on macOS/Linux, %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows):

npx -y @mvanhorn/printing-press-library install <slug> --agent openclaw

That command installs both halves of a catalog entry:

  • the Go CLI binary
  • the matching focused pp-* agent skill

For the skill half, the installer shells out through the Vercel Agent Skills-compatible installer. Conceptually, it runs:

npx -y skills@latest add mvanhorn/printing-press-library/cli-skills/pp-<slug> -g -y

So the catalog installer is still the right top-level command: it installs the CLI, then installs the focused skill globally using the same agent-skills mechanism rather than asking the agent to hand-roll a separate skill install path.

The install operation is idempotent and works as a reinstall for one tool. Re-running install <slug> uses go install <module>@latest for the binary and re-adds the focused skill non-interactively, overwriting the existing install in place. No uninstall-first step is needed.

If install warns that the binary directory is not on PATH, the binary and focused skill can still be installed successfully. Follow the printed platform-specific PATH instructions, then restart the running agent session or gateway if it inherits a fixed environment. Use --bin-dir <dir> only when the default user bin directory is wrong for that machine.

Use update when the user asks to refresh or reinstall existing tools:

npx -y @mvanhorn/printing-press-library update flight-goat
npx -y @mvanhorn/printing-press-library update

When deciding whether a local CLI is stale, compare the installed binary's reported version with the catalog release metadata before falling back to source inspection:

<slug>-pp-cli --version
npx -y @mvanhorn/printing-press-library search <slug> --json
npx -y @mvanhorn/printing-press-library list --json

In search --json or list --json, read release.version for the catalog version and release.cli_name for the binary name. If the local --version is older than the catalog release.version, update the tool with the user's intended binary directory, usually:

npx -y @mvanhorn/printing-press-library update <slug> --bin-dir ~/.local/bin

Only fall back to go version -m <binary>, repo inspection, or direct .printing-press-release.json reads when the catalog entry lacks release metadata or the binary's version string is missing, non-semver-like, or otherwise suspicious. For example, Substack can be checked with substack-pp-cli --version locally and npx -y @mvanhorn/printing-press-library search substack --json remotely; update with npx -y @mvanhorn/printing-press-library update substack --bin-dir ~/.local/bin when the catalog version is newer.

update <slug> delegates to install semantics for that tool. update with no args discovers Printing Press CLIs currently on PATH and refreshes all of them, including their matching focused skills.

Because updates are idempotent, after a successful install or refresh, offer to create a recurring update job. Ask first; do not schedule it automatically. Prefer a single consolidated job over one job per CLI, because users may install many Printing Press tools and per-tool schedules become noisy fast.

For most users, schedule one quiet weekly job that refreshes every installed Printing Press CLI currently on PATH and its matching focused skill:

npx -y @mvanhorn/printing-press-library update

Use a per-tool scheduled command only when the user explicitly wants a separate cadence or policy for one tool:

npx -y @mvanhorn/printing-press-library update flight-goat

If the installed library CLI exposes reinstall, treat it as a convenience alias for update:

npx -y @mvanhorn/printing-press-library reinstall flight-goat

Example:

npx -y @mvanhorn/printing-press-library install flight-goat

Use the install line printed by search or list output. Do not synthesize harness-specific direct skill install commands as the default path; those are only for explicit skill-only workflows.

After install or update, assume the focused skill may not be visible to the currently running agent until skills are reloaded or the session restarts. Hermes CLI sessions can use /reload-skills or start a new session. Hermes gateway sessions should use /restart or hermes gateway restart. OpenClaw agents should restart the current session or gateway if the newly installed focused skill is not visible immediately.

Hermes-native usage

Hermes can make Printing Press more useful than a plain skill installer because Hermes has native skills, profiles, gateway sessions, cron jobs, memory, and toolsets. Use those primitives instead of treating Hermes like a generic chat harness.

Install and reload in Hermes

After installing or updating a focused tool, make sure Hermes can actually see the new skill before invoking it:

npx -y @mvanhorn/printing-press-library install <slug>

Then reload based on where Hermes is running:

  • Hermes CLI: run /reload-skills if available, or start a fresh hermes session.
  • Hermes gateway: run /restart in the gateway chat, or run hermes gateway restart from a shell.
  • Named profiles: install and reload in the same profile that will use the skill. A skill installed under one Hermes home/profile may not be visible to another.

When checking a local Hermes install, useful commands are:

hermes skills list
hermes skills inspect <skill-or-url>
hermes config path
hermes config env-path
hermes profile list

Use these commands for diagnostics only. The catalog installer remains the default path for installing Printing Press catalog entries unless the user explicitly asks for a Hermes-only skill install.

Hermes profiles

Hermes profiles isolate config, skills, cron jobs, sessions, and memory. If the user mentions a profile, workspace, or separate assistant identity, do not assume the default profile.

Before diagnosing "skill not found" problems, check:

  • which Hermes profile is active
  • which HERMES_HOME the installer targeted
  • whether the skill exists under that profile's skills/ directory
  • whether the CLI or gateway was restarted after installation

A common failure mode is installing a focused skill into one profile and then trying to use it from another. That is not a Printing Press failure; it is an install-target mismatch.

Hermes toolsets

Most Printing Press CLIs require shell execution, so Hermes needs terminal access to run them. If Hermes cannot use a newly installed CLI, check whether the active platform/session has the terminal toolset enabled.

Do not enable broad tool access blindly. If the task only needs a built-in web/search/file tool, prefer the built-in tool over installing and running a third-party CLI.

Hermes cron updates

For Hermes users who want installed Printing Press tools kept current, recommend one consolidated scheduled update job rather than per-tool sprawl:

Schedule: weekly, quiet hours preferred
Prompt: Run `npx -y @mvanhorn/printing-press-library update`, summarize any changes, and stay quiet if nothing changed.

If using Hermes' cron tool or CLI, create the job only after explicit user approval. Recurring jobs are durable side effects.

A good Hermes cron prompt is self-contained:

Refresh installed Printing Press tools by running `npx -y @mvanhorn/printing-press-library update`. Report only updated tools, failures, or missing prerequisites. Do not print secrets. If nothing changed and there were no errors, say so briefly.

Use a per-tool schedule only when the user explicitly wants a different cadence or risk policy for one tool.

Hermes memory and session search

Hermes may remember durable user preferences, environment conventions, and known credential locations. Use that context to avoid making the user repeat setup details, but do not store volatile install results such as PR numbers, commit SHAs, one-off downloaded files, or "installed tool X today" as memory.

Good memory candidates after repeated Printing Press use:

  • the user's preferred Hermes profile for tool installs
  • stable secret-manager conventions
  • a durable workspace path convention
  • a recurring policy such as "prefer consolidated weekly updates over per-tool jobs"

Bad memory candidates:

  • a specific temporary branch or PR number
  • a one-time search result
  • an installed version that will be stale soon
  • raw API keys, cookies, tokens, or session headers

When the user asks what was installed or decided previously, prefer Hermes session search over guessing.

Search tactics

Use the library CLI as the default catalog index. Human-readable search cards include an install: line with the canonical install command:

npx -y @mvanhorn/printing-press-library search <keyword>

Use JSON when scripting or when structured ranking is useful:

npx -y @mvanhorn/printing-press-library search <keyword> --json

Examples:

npx -y @mvanhorn/printing-press-library search flights
npx -y @mvanhorn/printing-press-library search espn --json
npx -y @mvanhorn/printing-press-library list --category travel --json

Use repository inspection only as a fallback when npx is unavailable, when the CLI result is ambiguous, or when deeper README/SKILL details are needed before choosing a candidate:

rg -i "<service-or-capability>" registry.json library cli-skills

If the registry shape differs, prefer the npm CLI output instead of hand-parsing generated catalog files. Facts beat vibes; official interfaces beat archaeology.

Selection rules

Prefer a candidate when:

  • It names the target service directly.
  • Its README/SKILL examples match the user's requested job.
  • It has documented auth and setup requirements the user can satisfy.
  • It supports the user's OS/runtime.
  • It can be verified with a harmless command before any external side effects.

Avoid a candidate when:

  • It is only vaguely adjacent to the task.
  • It requires credentials the user does not have.
  • It is a scraper for a site where the user's task needs official-account data and the skill cannot authenticate.
  • A safer built-in API/tool already solves the task.
  • The task is high-risk, paid, public-facing, or privacy-sensitive and the user has not approved the external action.

Safety and credentials

  • Never print API keys, cookies, tokens, or session headers.
  • Do not ask the user to paste secrets into chat if a local secret manager or environment file is available.
  • Treat third-party CLIs as code execution. Install only the focused tool needed for the task.
  • Do not publish, post, email, buy, book, or mutate external state unless the user explicitly approves that action.

For Hermes users, prefer Hermes' normal environment file or the user's existing secret manager. To find the Hermes env path, use:

hermes config env-path

Confirm that required variables are present without echoing their values. If a focused skill says a key is optional or required only for one feature, preserve that distinction; do not make the whole tool sound credential-gated.

Verification checklist

Before reporting success:

  • The selected candidate directly matches the user's requested job.
  • The install command came from search, list, or documented Printing Press CLI behavior.
  • The CLI was verified with --help or another harmless command.
  • The agent harness was reloaded/restarted if a newly installed skill must be visible immediately.
  • Required credentials were checked without printing secrets.
  • No external side effect was performed without explicit approval.
  • For Hermes, the relevant profile/session/gateway was considered when diagnosing visibility.

README behavior on ClawHub

ClawHub renders SKILL.md (or skill.md) as the skill readme. A separate README.md in the skill folder is not the published readme. Put user-facing ClawHub documentation in this file.

FAQ

What does the printing-press-library skill do?

Use when looking for a CLI, API wrapper, scraper, data-source tool, automation tool, or focused agent skill for a task; searches the Printing Press Library and installs matching tools.

How do I install printing-press-library?

Run npx skills add https://github.com/mvanhorn/printing-press-library --skill printing-press-library in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/printing-press-library/ (personal) or .claude/skills/printing-press-library/ (project).

Which AI agents can use printing-press-library?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is printing-press-library safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains printing-press-library?

It is published by mvanhorn in mvanhorn/printing-press-library. It has 922 recorded installs.

More from mvanhorn/printing-press-library

View all →

pp-flight-goat

mvanhorn/printing-press-library

Printing Press CLI for Flight Goat. Search real Google Flights fares, cheapest dates, Kayak routes, and FlySoar price checks with no API key — plus optional FlightAware AeroAPI flight status, delay, and alert data.

Backend & APIs4.6K installs

pp-espn

mvanhorn/printing-press-library

Use this skill whenever the user asks about live sports scores, standings, team stats, game summaries (with box score, leaders, scoring plays, odds, and win probability), NFL / NBA / MLB / NHL / NCAA / MLS / EPL / WNBA games, team schedules, polls, or rankings. ESPN sports CLI with live scores across 10 leagues, offline search, head-to-head comparisons, and rich per-game summary payloads. No API key required. Triggers on natural phrasings like 'what's the score of the Lakers game', 'Patriots schedule this week', 'NFL standings', 'box score for tonight's Mavs game', 'Chiefs vs Eagles head to head', 'who's on top of the AP poll'.

Media & Creative3.8K installs

pp-movie-goat

mvanhorn/printing-press-library

The movie CLI that combines TMDb's discovery engine with OMDb's multi-source ratings — and ships a SQLite watchlist that flags what's streaming on your services right now. Trigger phrases: what should I watch tonight, where can I stream , rate , compare and , what's 's filmography, plan a marathon, use movie-goat, run movie-goat.

Data & Databases3.4K installs

pp-recipe-goat

mvanhorn/printing-press-library

Find the best version of any recipe across 37 trusted sites — with offline cookbook, pantry match, substitution lookup, meal planning, and USDA-backed nutrition. Trigger phrases: find the best recipe for, what can I make with, substitute for , nutrition for , use recipe-goat.

pp-hackernews

mvanhorn/printing-press-library

Hacker News from your terminal — with a local SQLite store, snapshot history, and agent-native output no other HN tool has. Trigger phrases: check hacker news, search hn, what is hn saying about, diff the hn front page, pulse on hn, look up hn user, hn who is hiring, hn top stories, use hackernews, run hackernews.

Data & Databases997 installs

pp-company-goat

mvanhorn/printing-press-library

Look up startups across SEC Form D, GitHub, Hacker News, Companies House, YC, and Wikidata in one command — including the SEC fundraising data hidden behind paid Crunchbase tiers. Trigger phrases: look up this startup, research , what does do, form D for , is still active, compare and , use company-goat, run company-goat-pp-cli.

Popular productivity & automation skills

View category →

agent-browser

vercel-labs/agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

OfficialProductivity & Automation1.3M installs

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

lark-shared

open.feishu.cn

Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。