with one click
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.
// 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.
Every Splitwise feature, plus an offline SQLite ledger that powers balance, debt-aging, spend analytics Trigger phrases: `what do I owe on splitwise`, `who owes me money`, `split this expense`, `settle up the trip`, `how much did we spend on food`, `use splitwise`, `run splitwise`.
Read, render Trigger phrases: `what's on my vestaboard`, `show my vestaboard`, `send a message to my vestaboard`, `post to the vestaboard`, `use vestaboard`, `run vestaboard`.
Read, render Trigger phrases: `what's on my vestaboard`, `show my vestaboard`, `send a message to my vestaboard`, `post to the vestaboard`, `use vestaboard`, `run vestaboard`.
Every RevenueCat v2 endpoint, plus a local database, offline search Trigger phrases: `what's my MRR`, `revenue snapshot`, `who churned this week`, `show failed billing`, `find entitlement desync`, `trace this refund`, `use revenuecat`, `run revenuecat`.
Every Splitwise feature, plus an offline SQLite ledger that powers balance, debt-aging, spend analytics Trigger phrases: `what do I owe on splitwise`, `who owes me money`, `split this expense`, `settle up the trip`, `how much did we spend on food`, `use splitwise`, `run splitwise`.
Query your local Chrome browsing history — search, topic clusters (Chrome's own Journeys), time/productivity reports, session timelines, downloads, and a behavioral profile — all read-only and on-device. Trigger phrases: `what have I been browsing`, `search my chrome history`, `what was that page I saw`, `my browsing journeys / topics`, `what did I download in chrome`, `what sites do I visit most`, `my browsing time report`, `my browsing profile`, `what was I researching last week`, `use chrome-history`, `run chrome-history-pp-cli`.
| name | printing-press-library |
| description | 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. |
| tags | ["cli","api-wrapper","scraper","data-source","automation","agent-skill","tool-discovery","install"] |
| version | 0.2.0 |
| metadata | {"hermes":{"tags":["cli","api-wrapper","scraper","data-source","automation","agent-skill","tool-discovery","install"],"category":"productivity"},"openclaw":{"emoji":"🖨️","homepage":"https://github.com/mvanhorn/printing-press-library","requires":{"anyBins":["npx","npm"]}}} |
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.
Clarify the user goal only if needed.
Search the catalog with the library CLI first.
npx -y @mvanhorn/printing-press-library search <keyword> for human-readable result cards.npx -y @mvanhorn/printing-press-library search <keyword> --json for agent-friendly parsing.npx -y @mvanhorn/printing-press-library list --category <category> --json when the category is known.npx is unavailable or deeper inspection is needed.Select deliberately.
Install through the library installer when the selected tool is useful.
npx -y @mvanhorn/printing-press-library install <slug>.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.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.--cli-only or --skill-only only when the user explicitly wants just one side.Make the newly installed skill visible to the running agent.
/reload-skills when available, or exit and start a new hermes session./restart from the gateway chat or hermes gateway restart from a shell so the gateway process reloads installed skills.Verify before claiming success.
--help or an equivalent harmless command.Offer an efficient periodic update schedule after successful install or refresh.
npx -y @mvanhorn/printing-press-library update, which refreshes every installed Printing Press CLI currently on PATH and its matching focused skill.npx -y @mvanhorn/printing-press-library update <slug> only when the user explicitly wants a different cadence or policy for that one tool.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:
pp-* skill so future agents know how to use a specific CLIPoor fits:
The Printing Press Library CLI is the canonical interface for installing catalog tools:
npx -y @mvanhorn/printing-press-library install <slug>
That command installs both halves of a catalog entry:
pp-* agent skillFor 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.
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
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 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.
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:
/reload-skills if available, or start a fresh hermes session./restart in the gateway chat, or run hermes gateway restart from a shell.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 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:
HERMES_HOME the installer targetedskills/ directoryA 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.
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.
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 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:
Bad memory candidates:
When the user asks what was installed or decided previously, prefer Hermes session search over guessing.
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.
Prefer a candidate when:
Avoid a candidate when:
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.
Before reporting success:
search, list, or documented Printing Press CLI behavior.--help or another harmless command.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.