Tail Digg's news cycle from the terminal — read-only, with the full pipeline event stream, GitHub feeds, and rank-history nobody else surfaces.
Digg is a curated AI-news leaderboard powered by tracked accounts on X and a parallel GitHub feed (stars / new / activity / recent). The web UI shows you today's snapshot. This CLI tails the pipeline events, keeps a local rank-history that survives daily overwrites, exposes Digg's own replacement rationale and gravity components, and surfaces the four GitHub feeds as structured data.
Created by @mvanhorn (Matt Van Horn).
The recommended path installs both the digg-pp-cli binary and the pp-digg agent skill (Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, and other agents supported by the upstream skills CLI) in one shot:
npx -y @mvanhorn/printing-press-library install diggFor CLI only (no skill):
npx -y @mvanhorn/printing-press-library install digg --cli-onlyFor skill only — installs the skill into the same agents as the default command above, but skips the CLI binary (use this to update or reinstall just the skill):
npx -y @mvanhorn/printing-press-library install digg --skill-onlyTo constrain the skill install to one or more specific agents (repeatable — agent names match the skills CLI):
npx -y @mvanhorn/printing-press-library install digg --agent claude-code
npx -y @mvanhorn/printing-press-library install digg --agent claude-code --agent codexIf npx isn't available (no Node, offline), install the CLI directly via Go (requires Go 1.26.4 or newer):
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/digg/cmd/digg-pp-cli@latestThis installs the CLI only — no skill.
Download a pre-built binary for your platform from the latest release. On macOS, clear the Gatekeeper quarantine: xattr -d com.apple.quarantine <binary>. On Unix, mark it executable: chmod +x <binary>.
Install the CLI binary first. The installer writes binaries to a per-user managed bin directory by default: $HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows.
npx -y @mvanhorn/printing-press-library install digg --cli-onlyThen install the focused Hermes skill.
From the Hermes CLI:
hermes skills install mvanhorn/printing-press-library/cli-skills/pp-digg --forceInside a Hermes chat session:
/skills install mvanhorn/printing-press-library/cli-skills/pp-digg --forceRestart the Hermes session or gateway if the newly installed skill is not visible immediately.
Install both the CLI binary and the focused OpenClaw skill. The installer defaults binaries to a per-user bin directory ($HOME/.local/bin on macOS/Linux, %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows):
npx -y @mvanhorn/printing-press-library install digg --agent openclawRestart the OpenClaw session or gateway if the newly installed skill is not visible immediately.
This CLI ships an MCPB bundle — Claude Desktop's standard format for one-click MCP extension installs (no JSON config required).
To install:
- Download the
.mcpbfor your platform from the latest release. - Double-click the
.mcpbfile. Claude Desktop opens and walks you through the install.
Requires Claude Desktop 1.0.0 or later. Pre-built bundles ship for macOS Apple Silicon (darwin-arm64) and Windows (amd64, arm64); for other platforms, use the manual config below.
Manual JSON config (advanced)
If you can't use the MCPB bundle (older Claude Desktop, unsupported platform), install the MCP binary and configure it manually.
Install the MCP binary from this CLI's published public-library entry or pre-built release.
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"digg": {
"command": "digg-pp-mcp"
}
}
}No auth required. The CLI uses only public surfaces — the /ai page (HTML+RSC scrape) and /api/trending/status (public JSON). It does not use Clerk session cookies or any authenticated endpoint, by design: this is a read-only research tool, and Digg's parent platform was shut down over AI-agent abuse. The CLI is read-only and identifies itself with a clear User-Agent so Digg ops can rate-limit it cleanly.
# Pull the current /ai feed and /api/trending/status events into the local store
digg-pp-cli sync
# Read today's top 10 clusters as structured JSON
digg-pp-cli top --limit 10 --json
# See which stories climbed the rankings in the last hour with explicit rank deltas
digg-pp-cli events --since 1h --type fast_climb
# What got knocked out of the rankings overnight and Digg's own rationale for each
digg-pp-cli replaced --since 24h
# Top influencers tracked by Digg, ranked by Digg's score
digg-pp-cli authors top --by influence --limit 25
# Top AI repos by starring activity from Digg-tracked accounts
digg-pp-cli github stars --limit 10 --json
# Smart-money convergence — repos starred by >= 2 distinct AI-builder accounts
digg-pp-cli github stars --min-starrers 2 --json
# Live GitHub activity feed: who starred / committed / opened issues, in real time
digg-pp-cli github recent --limit 20 --json
# Curated emerging AI companies from the /ai/x/rankings/companies snapshot
digg-pp-cli rankings emerging --json
# Companies climbing fastest in follower count since the last snapshot
digg-pp-cli rankings movers --direction up --json
# Full company ranking (initial-HTML slice)
digg-pp-cli rankings list --limit 20 --json
These capabilities aren't available in any other tool for this API.
-
search— Topic search across Digg's full window. Live by default — hits/api/search/stories, the same server-side search that backs the di.gg/ai Cmd+K modal — with FTS5 fallback to the local store on network error or--data-source local.Returns ranked clusters with engagement metadata (postCount, uniqueAuthors, firstPostAge); the load-bearing recipe for last30days-style research workflows.
digg-pp-cli search "<topic>" --since 30d --agent --select clusterUrlId,title,rank,postCount,uniqueAuthors,firstPostAge--since Nh|Nd|Nw|Nm— filter to clusters first posted within the window (live mode parses Digg's ownfirstPostAge; local mode readsdigg_clusters.first_post_at).
-
posts— X posts attached to one cluster, with author rank, body when rendered, media URLs, repost-context, and minted xUrl for one-click citation.The citations recipe: surface the highest-credibility AI 1000 voices on a story, sortable by rank, type, or time.
digg-pp-cli posts <clusterUrlId> --by rank --limit 5 --agent --select author.username,author.rank,post_type,xUrl,body
-
authors get— Look up any X handle in Digg's full author universe (1000 + off-1000) via/api/search/users. For off-1000 handles, the response includessubject_peer_follow_count, the rank-1000 anchor'speer_follow_count, and a signedpeer_follow_gap— the gap to the 1000 measured in AI-1000 peer follows (NOT raw X follower count).The credibility lookup: an agent can decide whether to quote a handle by reading one structured record.
digg-pp-cli authors get <handle> --agent
Trimmed off-1000 example for
mvanhorn:{ "username": "mvanhorn", "current_rank": null, "subject_peer_follow_count": 19, "nearest_in_1000": {"rank": 1000, "username": "...", "peer_follow_count": 90}, "peer_follow_gap": 71 }peer_follow_gapis the gap to rank-1000'sfollowed_by_count(peer follows from inside the AI 1000). Do not read it as a raw X follower delta. -
authors list— Full ranked AI 1000 from/ai/1000, persisted with rich fields (rank, category, bio, vibeDistribution, GitHub URL).Identify rising voices in a category, find authors who just joined the 1000, see who's falling fast — sortable, filterable, scriptable.
# Biggest movers since the last snapshot digg-pp-cli authors list --by rankChange --limit 20 --agent # Newly listed (first appearance in the 1000) digg-pp-cli authors list --only-new --agent
Sort with
--by rank|rankChange|category|followers; filter with--category "<name>",--only-new,--only-fallers.
-
events— Tail Digg's ingestion pipeline in real time — see clusters as they're detected, stories fast-climbing the leaderboard with explicit rank deltas, X posts being processed, batch breakdowns.When an agent needs 'tell me when story X just climbed N ranks' or 'what new clusters did Digg detect in the last hour', this is the only way.
digg-pp-cli events --since 1h --type fast_climb --json --select clusterId,label,delta,currentRank,previousRank
-
watch— Poll /ai, diff against last snapshot, alert when any cluster moves N+ ranks.Read-only operational watcher; never writes anything back to Digg.
digg-pp-cli watch --alert 'rank.delta>=10' -
pipeline status— One-screen view of /api/trending/status: isFetching, nextFetchAt, storiesToday, clustersToday, last 5 events.Lets ops and power users see when a fresh batch is about to land and what's been ingested in the last hour.
digg-pp-cli pipeline status --watch
-
replaced— Show stories that were knocked out of the rankings since the last sync, with Digg's own published replacement rationale.Best-of-feed shifts faster than people remember. This makes 'what did Digg drop and why' queryable.
digg-pp-cli replaced --since 24h --json
-
crossref— Show this cluster's Hacker News and Techmeme mirrors when Digg has detected the story is being discussed there.Removes the manual 'is HN talking about this too' step from any cross-aggregator research workflow.
digg-pp-cli crossref iq7usf9e
-
authors top— Top accounts Digg tracks, ranked by Digg's influence score, story count, or reach.Investors and AI scouts care which accounts move the news cycle. Now queryable, sortable, scriptable.
digg-pp-cli authors top --by influence --limit 50 --json
-
history— Full trajectory of one cluster's currentRank, peakRank, and delta over local snapshot history.'Entered at #18, peaked at #4 over 6h, dropped to #22 by 24h' is impossible to learn from the live site.
digg-pp-cli history iq7usf9e --json -
author— Every cluster a given X account contributed to, with post type (original, retweet, quote, reply).'Show me every story this account surfaced this week' is the investor-scout query.
digg-pp-cli author Scobleizer --since 7d --json
-
evidence— Print the full ranking transparency record for one cluster — scoreComponents, evidence array, numeratorLabel, percentAboveAverage.When a user asks 'why is THIS the top story', the answer is structured data; agents can compose with it.
digg-pp-cli evidence iq7usf9e --json
-
sentiment— Read per-time-window positivity ratios (pos6h, pos12h, pos24h, posLast) for a cluster.Tells an agent whether the conversation around a story is still net-positive or has soured; useful before quoting a story.
digg-pp-cli sentiment iq7usf9e --window 6h --json
Run digg-pp-cli --help for the full command reference and flag list.
Top-level story feed (HTML page; CLI parses the embedded RSC stream)
digg-pp-cli feed raw- Fetch the raw /ai HTML page. The CLI's sync command parses this; most users should runsyncthentopinstead of calling this directly.digg-pp-cli feed story_raw- Fetch the raw /ai/{clusterUrlId} story detail page (HTML). The CLI'sstorycommand parses this; users should not need to call this directly.
GitHub feeds Digg surfaces alongside the X-account leaderboard. Four flavors, each parsed from the embedded RSC stream.
digg-pp-cli github stars- Top AI repos ranked by starring activity from Digg-tracked accounts. Returns repo name, language, stargazers_count, recent starrer list, breakout_score, novel_score, ai_related_score, and the model's one-sentence classification. Flag:--min-starrers Nfilters to repos starred by >= N distinct accounts (smart-money convergence).digg-pp-cli github new- Recently first-seen repos with the Digg-tracked creator/starrer who first put them on Digg's radar (event_id, event_created_at, repo_full_name, creator).digg-pp-cli github activity- Top GitHub contributor leaderboard: per-author rank, contribution count, and distinct repos.digg-pp-cli github recent- Live activity feed: per-event entries with the GitHub URL and the user who acted.
Sub-views of the /ai/x/rankings/companies page, each parsed from a distinct section of the same RSC stream. Every command shares a schema-drift gate via --max-skip-ratio (default 0.10).
digg-pp-cli rankings emerging- Curated list of small AI companies (the "EMERGING STARTUPS — CURATED THIS SNAPSHOT" section). ~10 rows per snapshot. Each row carriesisEmergingStartup(the AI judge's verdict) plus the curator'semergingReasoningtext.digg-pp-cli rankings movers- Companies whose follower count shifted most since the last snapshot.--direction up|down|both(default both, with direction tagged per row). ~10 rows per side.digg-pp-cli rankings list- Full company ranking (the "Companies followed by the AI 2K" section). Server-paginated; returns the initial-HTML slice.--limitcaps.
Topic search across the full Digg window
digg-pp-cli search "<query>"- Live by default (/api/search/stories); FTS5 fallback to the local store. Flags:--since Nh|Nd|Nw|Nm,--data-source live|local|auto,--limit.
Inspect Digg's tracked AI-news accounts (the /ai/1000 roster).
digg-pp-cli authors get <handle>- Look up any X handle (1000 + off-1000); off-1000 records includesubject_peer_follow_count, the rank-1000nearest_in_1000anchor, andpeer_follow_gap. Flag:--limit(fuzzy fallback).digg-pp-cli authors list- Full ranked roster from/ai/1000, persisted with rich fields. Flags:--by rank|rankChange|category|followers,--category,--only-new,--only-fallers,--limit.digg-pp-cli authors top- Top contributors by influence, post count, or reach.
X posts attached to one cluster
digg-pp-cli posts <clusterUrlId>- Origins, replies, quotes, retweets with author rank, body when rendered, media URLs, minted xUrl. Flags:--by rank|type|time,--type tweet|reply|quote|retweet,--limit,--no-cache.
Full cluster detail. The envelope now includes posts and postsMeta fields populated by the U5 RSC parser.
Public ingestion-pipeline status and event stream
digg-pp-cli trending status- Read the current pipeline status: storiesToday, clustersToday, isFetching, nextFetchAt, and the recent event stream (cluster_detected, fast_climb, post_understanding, batch_started, batch_breakdown, posts_stored, embedding_progress).
# Human-readable table (default in terminal, JSON when piped)
digg-pp-cli feed raw
# JSON for scripting and agents
digg-pp-cli feed raw --json
# Filter to specific fields
digg-pp-cli feed raw --json --select id,name,status
# Dry run — show the request without sending
digg-pp-cli feed raw --dry-run
# Agent mode — JSON + compact + no prompts in one flag
digg-pp-cli feed raw --agentThis CLI is designed for AI agent consumption:
- Non-interactive - never prompts, every input is a flag
- Pipeable -
--jsonoutput to stdout, errors to stderr - Filterable -
--select id,namereturns only fields you need - Previewable -
--dry-runshows the request without sending - Read-only by default - this CLI does not create, update, delete, publish, send, or mutate remote resources
- Offline-friendly - sync/search commands can use the local SQLite store when available
- Agent-safe by default - no colors or formatting unless
--human-friendlyis set
Exit codes: 0 success, 2 usage error, 3 not found, 5 API error, 7 rate limited, 10 config error.
digg-pp-cli doctorVerifies configuration and connectivity to the API.
Config file: ~/.config/digg-pp-cli/config.toml
Not found errors (exit code 3)
- Check the resource ID is correct
- Run the
listcommand to see available items
- All commands return empty after install — Run
digg-pp-cli syncfirst — the local store is empty until the first sync. eventsshows no fast_climb / cluster_detected events — The pipeline batches every ~10 minutes. Wait fornextFetchAtfromdigg-pp-cli pipeline statusor filter by a different--type.- HTTP 429 on sync — Adaptive limiter backs off automatically. If it persists, lower the polling rate with
--interval 120sonwatchcommands. - Story command returns 'cluster not found' — Use
clusterUrlId(the 8-char alphanumeric short ID), not the UUID-style clusterId.digg-pp-cli top --json --select clusterUrlIdlists them.
This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints. It does not require a resident browser process for normal API calls.
This CLI was built by studying these projects and resources:
- haxor-news — Python (4000 stars)
- circumflex — Go (1900 stars)
- rafaelrinaldi/hn-cli — JavaScript (700 stars)
- brianlovin/hn-cli — TypeScript (250 stars)
- heartleo/hn-cli — Rust (100 stars)
- hntop-cli — Go (30 stars)
Generated by CLI Printing Press