Technical Launch Planner
jamesrochabrun/skills
Plan and execute technical product launches for developer tools, APIs, and technical products.
Read Product Hunt from your terminal — works token-free for the daily skim, unlocks a launch-day cockpit and a marketer research desk in one onboarding step.
$ npx skills add mvanhorn/printing-press-library --skill pp-producthunt -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-producthunt --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-producthunt .claude/skills/pp-producthunt && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pp-producthunt" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-producthunt into .claude/skills/pp-producthunt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-producthunt", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-producthuntType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mvanhorn/printing-press-library --skill pp-producthunt -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-producthunt --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-skills/pp-producthunt .agents/skills/pp-producthunt && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pp-producthunt" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-producthunt into .agents/skills/pp-producthunt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-producthunt", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-producthunt -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-producthunt --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-skills/pp-producthunt .cursor/skills/pp-producthunt && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pp-producthunt" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-producthunt into .cursor/skills/pp-producthunt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-producthunt", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mvanhorn/printing-press-library.git --path cli-skills/pp-producthunt--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mvanhorn/printing-press-library --skill pp-producthunt -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-producthunt --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-skills/pp-producthunt .gemini/skills/pp-producthunt && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pp-producthunt" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-producthunt into .gemini/skills/pp-producthunt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-producthunt", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mvanhorn/printing-press-library pp-producthuntInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mvanhorn/printing-press-library --skill pp-producthunt -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-skills/pp-producthunt .github/skills/pp-producthunt && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pp-producthunt" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-producthunt into .github/skills/pp-producthunt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-producthunt", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-producthunt -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mvanhorn/printing-press-library pp-producthunt --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-skills/pp-producthunt .opencode/skills/pp-producthunt && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pp-producthunt" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-producthunt into .opencode/skills/pp-producthunt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-producthunt", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pp-producthuntRead Product Hunt from your terminal — works token-free for the daily skim, unlocks a launch-day cockpit and a marketer research desk in one onboarding step.
Pp Producthunt is an agent skill from mvanhorn/printing-press-library. Read Product Hunt from your terminal — works token-free for the daily skim, unlocks a launch-day cockpit and a marketer research desk in one onboarding step. Trigger phrases: what launched on product hunt today, find ai launches on product hunt this week, how is my product hunt launch tracking, compare these product hunt launches, summarize the comments on this product hunt post, what does a good product hunt launch look like at hour 6, use producthunt, run producthunt.
Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Marketing & SEO, covering Product launch strategy. The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d9a1696. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goclaudenpxFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
producthunt.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PRODUCT_HUNT_TOKENPRODUCT_HUNT_CLIENT_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pp Producthunt loads about 5.3k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 2,304 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mvanhorn/printing-press-library at commit d9a1696, republished under its Apache-2.0 licence (© mvanhorn). 2,304 words, ~5,253 tokens.
.claude/skills/pp-producthunt/SKILL.md (or your agent's skills folder).<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/marketing/producthunt/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
This skill drives the producthunt-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:npx -y @mvanhorn/printing-press-library install producthunt --cli-onlyproducthunt-pp-cli --version$PATH for the agent/runtime that will invoke this skill.If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer):
go install github.com/mvanhorn/printing-press-library/library/marketing/producthunt/cmd/producthunt-pp-cli@latestIf --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.
Pick this CLI when an agent or script needs Product Hunt data — daily launch leaderboards, topic-vertical scouting, individual launch detail with comments, or aggregated trajectories that PH's own UI never exposes. The local SQLite store and GraphQL fall-through mean repeated queries stay cheap; the no-auth feed tier means the CLI is useful before the user has even configured a key. Indie founders launching this week reach for the launch-day cockpit (launch-day, benchmark, trajectory, questions, compare); marketers doing competitive research reach for the marketer research desk (category snapshot, posts grep, lookalike, launches calendar).
Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read-only commands for inspection, export, sync, and analysis.
These capabilities aren't available in any other tool for this API.
posts launch-day — Renders your launch's votes-over-time trajectory side-by-side with today's top 5 launches — the answer to 'am I catching up to the leader.' Sync-driven, refreshes from the local store.
Reach for this on launch day when a maker asks 'how am I tracking vs the leaders' — the side-by-side trajectories replace ten tabs.
producthunt posts launch-day my-launch-slug --jsonposts benchmark — Reports percentile curves at hour-N for top-10 and top-50 launches in a topic, computed from accumulated local history. Tells a founder if their hour-6 votes are 'good' for their category.
Use before launching to set realistic targets, or during launch to know whether a slow start is normal for the category or a real problem.
producthunt posts benchmark --topic artificial-intelligence --hour 6 --jsonposts trajectory — Plots a single launch's votes-over-time from local snapshots. Foundational for launch-day-tracker; also useful standalone for retro analysis after the fact.
Reach for this when reviewing a past launch or competitor — the curve shows momentum that a single end-of-day vote count hides.
producthunt posts trajectory my-launch-slug --jsonposts questions — Surfaces only comments that look like real questions (regex ? plus heuristic verbs like 'how does', 'what's the', 'can it'), ranked by vote count. Cuts hundreds of launch-day comments down to the ones that need a maker's reply.
Use during or after launch day to identify which comments deserve a real reply versus which are cheerleading or spam.
producthunt posts questions my-launch-slug --jsonposts compare — Column-aligned comparison of two or more launches: votes, comments, topics, tagline, url, launch-time delta. Replaces juggling browser tabs.
Pick this when a founder is benchmarking their launch against precedents or a marketer is triangulating between similar competitive launches.
producthunt posts compare cursor-ide windsurf-ide claude-code --jsoncategory snapshot — Slide-deck-ready brief for a topic over a window: leaderboard + momentum delta vs prior window + most active poster handles + top emerging tagline tags.
Reach for this on weekly category-research cadence — the single-output brief replaces opening 30 launch pages by hand.
producthunt category snapshot --topic artificial-intelligence --window weekly --agent --select leaderboard,momentum_deltaposts grep — Searches taglines and descriptions of launches in a window for a term — your brand, a competitor's brand, a category keyword. Returns matching launches with the matched snippet.
Use this as a recurring brand-mention monitor or to find competitive launches that name your category in their pitch.
producthunt posts grep --term "\\bclaude\\b" --since 7d --topic developer-tools --jsonposts lookalike — Given a launch slug, finds the most similar prior launches by topic overlap plus tagline FTS rank. Builds a competitive set automatically.
Reach for this to build a competitive set quickly or to find precedent launches when planning your own positioning.
producthunt posts lookalike notion --json --select edges.node.name,edges.node.taglinelaunches calendar — Shows what launched what day in a week (and prior weeks for context), with hour-of-day distribution. Helps a founder pick a strong launch slot.
Use before scheduling a launch to find a less-crowded day or hour in your topic.
producthunt launches calendar --topic artificial-intelligence --week 18 --jsontopics watch — Detects new posts crossing a vote threshold in a topic since the last sync. Synthesizes an offline subscription against an API that has none.
Schedule this in cron to alert on notable new launches in a vertical without hammering the GraphQL endpoint.
producthunt topics watch artificial-intelligence --min-votes 200 --jsonposts since — Local-first time-window query: posts since 2h, posts since 24h. Falls through to live GraphQL if the window extends past the last sync.
Reach for this from agentic flows that ask 'what's new on Product Hunt' — the local-first behavior keeps token costs low and the fall-through guarantees freshness.
producthunt posts since 6h --json --select edges.node.name,edges.node.votesCountcontext — Returns a single JSON blob covering top posts in a window, top comments, topic followers, and your viewer status. One call answers 'what's the state of this topic right now' for an agent.
Use as the first call in an agentic Product Hunt workflow — one snapshot replaces 'list posts then list comments then check viewer'.
producthunt context --topic artificial-intelligence --since 24h --jsonfeed — Public Atom feed of featured Product Hunt launches (no auth required)
producthunt-pp-cli feed — Fetch the public Atom feed of recent featured launches; needs no tokenHand-written commands
producthunt-pp-cli posts — Get, list, and analyze Product Hunt launches via GraphQLproducthunt-pp-cli posts get <id-or-slug> — Fetch full detail for a single launch (votes, comments, topics, makers, media)producthunt-pp-cli posts list — List launches filtered by topic, order, featured-flag, or posted-after windowproducthunt-pp-cli posts comments <id-or-slug> — List comments on a launch (commenter identities are redacted by Product Hunt)producthunt-pp-cli posts trajectory <slug> — Plot a launch's votes-over-time from local snapshotsproducthunt-pp-cli posts launch-day <my-slug> — Render YOUR launch's trajectory side-by-side with today's top 5 launchesproducthunt-pp-cli posts benchmark — Show percentile vote curves at hour-N for top-10 / top-50 launches in a topicproducthunt-pp-cli posts compare <slug1> <slug2> [<slug3>...] — Column-aligned comparison of N launches: votes, comments, topics, tagline, urlproducthunt-pp-cli posts questions <slug> — Filter a launch's comments to only those that look like genuine questionsproducthunt-pp-cli posts grep — Search synced launches' taglines and descriptions for a keyword (brand-mention tracker)producthunt-pp-cli posts lookalike <slug> — Find prior launches in the same topic with similar tagline tokens (competitive set)producthunt-pp-cli posts since <duration> — Local-first time-window query (e.g., posts since 6h); falls through to live APIproducthunt-pp-cli comments — Get individual comments by idproducthunt-pp-cli comments get <id> — Fetch a single comment by IDproducthunt-pp-cli collections — Get and list Product Hunt curated collectionsproducthunt-pp-cli collections get <id-or-slug> — Fetch a single collection with its post listproducthunt-pp-cli collections list — List collections, optionally filtered by featured-flag or by a contained post/userproducthunt-pp-cli topics — Get, list, and search Product Hunt topics (categories)producthunt-pp-cli topics get <id-or-slug> — Fetch a single topic (followers count, posts count)producthunt-pp-cli topics list — List topics, optionally ordered by newest or popularityproducthunt-pp-cli topics search <query> — Search topics by name or descriptionproducthunt-pp-cli topics watch <slug> — Detect new posts crossing a vote threshold in a topic since the last syncproducthunt-pp-cli users — Get user profiles and a user's launch/voted history (non-self users redacted by Product Hunt)producthunt-pp-cli users get <id-or-username> — Fetch a user profile (only whoami/yourself returns full data; non-self users return [REDACTED])producthunt-pp-cli users posts <username> — List the posts a user has made (post data is unredacted; the user identity itself may be redacted)producthunt-pp-cli users voted-posts <username> — List the posts a user has voted for (same redaction caveat as users posts)producthunt-pp-cli whoami — Show the authenticated user (full data; reports remaining complexity-budget and auth mode)producthunt-pp-cli category — Marketer research desk: category-level snapshots and trendsproducthunt-pp-cli category snapshot — Slide-deck-ready brief for a topic over a window: leaderboard, momentum delta, active handles, emerging tagsproducthunt-pp-cli launches — Calendar and timing analysis for launch slot pickingproducthunt-pp-cli launches calendar — Show what launched what day in a week, with hour-of-day distributionproducthunt-pp-cli context — Single-call agent snapshot: top posts + top comments + topic state + viewer in one JSON blobproducthunt-pp-cli today — Today's top launches (alias for posts list --order=RANKING --posted-after=midnight)producthunt-pp-cli recent — Most recent launches (alias for posts list --order=NEWEST)producthunt-pp-cli search <query> — Full-text search of locally synced postsproducthunt-pp-cli sync — Sync the local store: posts, topics, collections, comments (cursor-based, resumable)producthunt-pp-cli sql <query> — Read-only SQL against the local SQLite storeproducthunt-pp-cli auth — Manage Product Hunt authentication (developer token by default, OAuth client_credentials alternate)producthunt-pp-cli auth onboard — Interactive wizard: walks you through creating a free OAuth app, prefills https://localhost/callback for the...producthunt-pp-cli auth set-token <token> — Set the developer token explicitly without going through the onboarding wizardproducthunt-pp-cli auth status — Report which auth mode is active and what data it can accessproducthunt-pp-cli doctor — Auth-stage-aware diagnostic: tells you whether to onboard, regenerate a token, or wait for a budget resetWhen you know what you want to do but not which command does it, ask the CLI directly:
producthunt-pp-cli which "<capability in your own words>"which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.
producthunt posts launch-day my-launch-slug --jsonRenders your launch's vote trajectory side-by-side with today's top 5 — the answer to 'am I catching up to the leader' without refreshing the website
producthunt posts questions my-launch-slug --jsonFilters synced comments to only those that look like real questions (regex \\? plus question-verbs) ranked by vote count — replaces scrolling 200 comments to find the 5 that deserve a reply
producthunt posts list --topic artificial-intelligence --posted-after 2026-04-01 --agent --select edges.node.name,edges.node.votesCount,edges.node.user.usernamePosts list responses are deeply nested (edges -> node -> user); pairing --agent with dotted --select paths keeps the output to just the columns the agent needs and slashes token cost
producthunt category snapshot --topic developer-tools --window weekly --jsonSingle-output brief: leaderboard for the week, momentum delta vs prior week, most active poster handles, top emerging tagline tags — slide-deck-ready
producthunt posts grep --term "\\bclaude\\b|\\banthropic\\b" --since 7d --jsonFinds any launch in the window with claude or anthropic in tagline or description — schedule it nightly to catch competitive activity
Product Hunt's GraphQL API supports two auth modes; the CLI handles both. Recommended for personal use: visit https://www.producthunt.com/v2/oauth/applications, create an application (the redirect URL field is required by the form but unused for personal-token flow — set it to https://localhost/callback), then scroll to the bottom of the app page and click Create Token to generate a developer token that never expires. Set PRODUCT_HUNT_TOKEN=<your-token> or run producthunt auth onboard for an interactive walkthrough. For CI/automation, the alternate mode is OAuth client_credentials: set PRODUCT_HUNT_CLIENT_ID and PRODUCT_HUNT_CLIENT_SECRET from the same app page; the CLI exchanges them for an access token internally and refreshes on 401 (note: under OAuth client_credentials, the whoami command returns null because the public scope has no user context). The public Atom feed (producthunt feed) needs no token at all.
Run producthunt-pp-cli doctor to verify setup.
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable — JSON on stdout, errors on stderr
Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
producthunt-pp-cli feed --agent --select id,name,statusPreviewable — --dry-run shows the request without sending
Offline-friendly — sync/search commands can use the local SQLite store when available
Non-interactive — never prompts, every input is a flag
Read-only — do not use this CLI for create, update, delete, publish, comment, upvote, invite, order, send, or other mutating requests
Commands that read from the local store or the API wrap output in a provenance envelope:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal — piped/agent consumers get pure JSON on stdout.
When you (or the agent) notice something off about this CLI, record it:
producthunt-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
producthunt-pp-cli feedback --stdin < notes.txt
producthunt-pp-cli feedback list --json --limit 10Entries are stored locally at ~/.producthunt-pp-cli/feedback.jsonl. They are never POSTed unless PRODUCTHUNT_FEEDBACK_ENDPOINT is set AND either --send is passed or PRODUCTHUNT_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|---|---|
stdout | Default; write to stdout only |
file:<path> | Atomically write output to <path> (tmp + rename) |
webhook:<url> | POST the output body to the URL (application/json or application/x-ndjson when --compact) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
producthunt-pp-cli profile save briefing --json
producthunt-pp-cli --profile briefing feed
producthunt-pp-cli profile list --json
producthunt-pp-cli profile show briefing
producthunt-pp-cli profile delete briefing --yesExplicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Parse $ARGUMENTS:
help, or --help → show producthunt-pp-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)go install github.com/mvanhorn/printing-press-library/library/marketing/producthunt/cmd/producthunt-pp-mcp@latestclaude mcp add producthunt-pp-mcp -- producthunt-pp-mcpclaude mcp listwhich producthunt-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:producthunt-pp-cli <command> [subcommand] [args] --agentproducthunt-pp-cli <command> --help.© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in cli-skills/pp-producthunt of mvanhorn/printing-press-library.
Open the folder on GitHubat commit d9a1696
Pp Producthunt next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pp Producthunt this skillmvanhorn/printing-press-library | 2.1k | — | ~5.3k | Automated safety check: Notes | Apache-2.0 | |
| Technical Launch Plannerjamesrochabrun/skills | 216 | 1 repos | ~3.8k | Automated safety check: Pass | MIT | |
| Getxapi ConnectLeoYeAI/openclaw-marketing-skills | 1k | 1 repos | ~715 | Automated safety check: Pass | Custom licence | |
| ProducthuntReScienceLab/opc-skills | 1.8k | — | ~467 | Automated safety check: Pass | Apache-2.0 | |
| Micro SaaS Launchernicepkg/auto-company | 195 | 8 repos | ~1.3k | Automated safety check: Pass | None | |
| Directory Submissionscoreyhaines31/marketingskills | 54k | 2 repos | ~6.7k | Automated safety check: Pass | MIT |
jamesrochabrun/skills
Plan and execute technical product launches for developer tools, APIs, and technical products.
LeoYeAI/openclaw-marketing-skills
Connect GetXAPI to pull public X/Twitter marketing signals into OpenClaw workflows.
ReScienceLab/opc-skills
Search and retrieve content from Product Hunt. An agent skill from ReScienceLab/opc-skills.
nicepkg/auto-company
Expert in launching small, focused SaaS products fast - the indie hacker approach to building profitable software.
coreyhaines31/marketingskills
When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery.
FoundDream/miniclawd
Discover trending tech products, apps, and tools from Product Hunt.
mvanhorn/printing-press-library
Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.
mvanhorn/printing-press-library
Search, browse, and download Google Fonts from the terminal via the gfonts CLI.
mvanhorn/printing-press-library
The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.
mvanhorn/printing-press-library
Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.
mvanhorn/printing-press-library
Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...
mvanhorn/printing-press-library
macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.
Categories
Read Product Hunt from your terminal — works token-free for the daily skim, unlocks a launch-day cockpit and a marketer research desk in one onboarding step. Pp Producthunt is an agent skill from mvanhorn/printing-press-library. Read Product Hunt from your terminal — works token-free for the daily skim, unlocks a launch-day cockpit and a marketer research desk in one onboarding step.
Pp Producthunt fits situations like: phrases: what launched on product hunt today; find ai launches on product hunt this week; how is my product hunt launch tracking; compare these product hunt launches.
Run `npx skills add mvanhorn/printing-press-library --skill pp-producthunt -a claude-code`. Or copy the skill folder (cli-skills/pp-producthunt in mvanhorn/printing-press-library) into .claude/skills/pp-producthunt in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mvanhorn/printing-press-library --skill pp-producthunt -a codex`. Or copy the skill folder (cli-skills/pp-producthunt in mvanhorn/printing-press-library) into .agents/skills/pp-producthunt in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-producthunt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-producthunt, .gemini/skills/pp-producthunt, .github/skills/pp-producthunt and .opencode/skills/pp-producthunt in your project.
Going by SKILL.md and its folder, Pp Producthunt needs the command-line tools its instructions call (go, claude and npx) and credentials named PRODUCT_HUNT_TOKEN and PRODUCT_HUNT_CLIENT_SECRET. Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash.
SKILL.md names 1 domain. As links in the text: producthunt.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Pp Producthunt is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.3k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pp Producthunt: Technical Launch Planner (jamesrochabrun/skills, 216 stars), Getxapi Connect (LeoYeAI/openclaw-marketing-skills, 1k stars), Producthunt (ReScienceLab/opc-skills, 1.8k stars) and Micro SaaS Launcher (nicepkg/auto-company, 195 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,056 GitHub stars. The repository holds 506 skills in this directory. The repository was last updated on October 9, 2026.
Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.