Documentation
Digg AI CLI
digg-pp-cli
Install
npx -y @mvanhorn/printing-press-library install diggInstalls the CLI binary and the agent skill for Claude Code, Codex, Cursor, Gemini CLI, Copilot, and more. Add --cli-only or --skill-only for one half. Requires Node.
Documentation
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).
Authentication
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.
Quick Start
# 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
Unique Features
These capabilities aren't available in any other tool for this API.
Topic search and per-post citations
-
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
Author lookup and roster browse
-
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> --agentTrimmed 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 --agentSort with
--by rank|rankChange|category|followers; filter with--category "<name>",--only-new,--only-fallers.
Live pipeline observability
-
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
Local state that compounds
-
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
Transparency
-
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
Usage
Run digg-pp-cli --help for the full command reference and flag list.
Commands
feed
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
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.
Rankings views
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.
search
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.
authors
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.
posts
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.
story
Full cluster detail. The envelope now includes posts and postsMeta fields populated by the U5 RSC parser.
trending
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).
Output Formats
# 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 --agent
Agent Usage
This 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.
Health Check
digg-pp-cli doctor
Verifies configuration and connectivity to the API.
Configuration
Config file: ~/.config/digg-pp-cli/config.toml
Troubleshooting
Not found errors (exit code 3)
- Check the resource ID is correct
- Run the
listcommand to see available items
API-specific
- 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.
HTTP Transport
This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints. It does not require a resident browser process for normal API calls.
Sources & Inspiration
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
For agents: pass /documentation/digg/agents.md to install this CLI from a prompt.