cli-web-producthunt
CLI for Product Hunt. Installed at: cli-web-producthunt.
Quick Start
# Today's top products
cli-web-producthunt posts list --json
# Product detail
cli-web-producthunt posts get <slug> --json
# Leaderboard
cli-web-producthunt posts leaderboard --period daily --json
Always use --json when parsing output programmatically.
Commands
Posts
cli-web-producthunt posts list --json # Today's launches
cli-web-producthunt posts get <slug> --json # Product detail
cli-web-producthunt posts leaderboard --json # Daily leaderboard
cli-web-producthunt posts leaderboard --period weekly # Weekly leaderboard
cli-web-producthunt posts leaderboard --period monthly # Monthly leaderboard
cli-web-producthunt posts leaderboard --date 2026-03-15 # Specific date
Output fields: id, name, tagline, slug, url, description, votes_count, comments_count, topics, thumbnail_url, rank
Users
cli-web-producthunt users get <username> --json
Output fields: id, name, username, headline, profile_image, followers_count
Auth
No authentication required.
Agent Patterns
# Get today's top 3 products
cli-web-producthunt posts list --json | python -c "
import sys,json
for p in json.load(sys.stdin)[:3]:
print(f'{p[\"rank\"]}. {p[\"name\"]} ({p[\"votes_count\"]} votes) - {p[\"tagline\"]}')"
# Check a specific product
cli-web-producthunt posts get stitch-2-0-by-google-2 --json
Notes
- Auth: Not required — reads Product Hunt's embedded Next.js data via curl_cffi
- No API key, no tokens, no cookies needed
- Posts come from the Next.js RSC flight stream (
self.__next_f), not DOM scraping; curl_cffi Chrome impersonation handles transport - Rate limiting: Be respectful — avoid rapid successive requests
posts listandposts leaderboardare the most reliable commands — they read the homepage/leaderboard RSC payload, which has clean structured dataposts get <slug>scrapes the detail page —namemay include tagline,votes_count/comments_countmay be 0 (detail page HTML structure differs from list). Prefer using data fromposts listwhen possibledescriptionisnullin list view (only available inposts getdetail view)rankisnullin leaderboard view (use array index for ordering)