Every Techmeme headline, searchable and cached locally — plus topic tracking, trending analysis, and catch-up workflows no other tool has.
The Techmeme CLI puts the tech industry's most trusted news curation into your terminal. Sync headlines to a local SQLite store, then search, filter by time, track topics, and analyze which stories and sources are dominating. The 'since' command answers the question every tech professional asks: 'what did I miss?'
Created by @davemorin (Dave Morin).
The recommended path installs both the techmeme-pp-cli binary and the pp-techmeme 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 techmemeFor CLI only (no skill):
npx -y @mvanhorn/printing-press-library install techmeme --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 techmeme --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 techmeme --agent claude-code
npx -y @mvanhorn/printing-press-library install techmeme --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/productivity/techmeme/cmd/techmeme-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 techmeme --cli-onlyThen install the focused Hermes skill.
From the Hermes CLI:
hermes skills install mvanhorn/printing-press-library/cli-skills/pp-techmeme --forceInside a Hermes chat session:
/skills install mvanhorn/printing-press-library/cli-skills/pp-techmeme --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 techmeme --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.
go install github.com/mvanhorn/printing-press-library/library/other/techmeme/cmd/techmeme-pp-mcp@latestAdd to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"techmeme": {
"command": "techmeme-pp-mcp"
}
}
}# See today's top tech headlines
techmeme-pp-cli headlines
# Sync 5 days of headlines to local SQLite
techmeme-pp-cli sync
# What happened in the last 4 hours?
techmeme-pp-cli since 4h
# Search all cached headlines
techmeme-pp-cli search 'Apple AI'
# What topics are hot right now?
techmeme-pp-cli trending
# Which publications lead the coverage?
techmeme-pp-cli sources --top 10
These capabilities aren't available in any other tool for this API.
-
since— See every tech headline from the last N hours — the perfect catch-up when you've been awayWhen an agent needs to brief a user on what happened in tech while they were in meetings, this is the single command that answers it
techmeme-pp-cli since 4h --agent
-
digest— Get a day's tech news grouped by topic — the briefing you'd write if you had timeWhen an agent needs to produce a tech news briefing for a specific date, this structures raw headlines into a readable summary
techmeme-pp-cli digest --date 2026-05-08 --agent
-
track— Save topics and get alerts when they hit Techmeme — persistent monitoring without browser tabsAgents monitoring specific companies or technologies can subscribe to exactly what matters without polling the full feed
techmeme-pp-cli track add 'OpenAI' && techmeme-pp-cli track check --agent
-
sources— See which publications dominate Techmeme and track source frequency over timeWhen analyzing media landscape or choosing which publications to prioritize, this gives hard data on source influence
techmeme-pp-cli sources --top 20 --agent
-
trending— Extract the hottest topics from recent headlines using frequency analysis on cached dataWhen an agent needs to answer 'what's hot in tech right now' with data instead of vibes
techmeme-pp-cli trending --hours 24 --agent
-
velocity— Find stories that are blowing up — multiple sources covering the same topic in a short windowWhen an agent needs to identify breaking news vs steady coverage, velocity shows what's accelerating now
techmeme-pp-cli velocity --agent
-
author— Find all Techmeme headlines by a specific journalist across the cached archiveWhen tracking a specific journalist's coverage or building a media contact list, this surfaces their Techmeme footprint
techmeme-pp-cli author 'Kara Swisher' --agent
Run techmeme-pp-cli --help for the full command reference and flag list.
Manage feed xml
techmeme-pp-cli feed-xml get-main-feed- Top 15 headlines currently on Techmeme. RSS 2.0 format. Each item has title, link (to Techmeme permalink), description (HTML with source attribution, image, and excerpt), pubDate, guid.
Manage lb opml
techmeme-pp-cli lb-opml get-leaderboard-opml- OPML file listing Techmeme's top 51 sources with source name, website URL, and RSS feed URL. Updated regularly based on headline prominence over the past 180 days.
Manage river
techmeme-pp-cli river get- 5-day rolling archive of all Techmeme headlines in reverse chronological order. 150+ headlines with timestamp, author, source publication, headline text, and article link. HTML page.
Manage techmeme search
techmeme-pp-cli techmeme-search headlines- Search Techmeme headlines. Supports quoted phrases, wildcards, +/-, AND/OR/NOT, parentheses. Can filter by url, author, date, sourcename. Default searches title+summary; can extend to full text. Results available as HTML or RSS.techmeme-pp-cli techmeme-search rss- RSS feed of search results. Same query syntax as /search/query. Subscribe in any RSS reader for alerts on specific topics.
# Human-readable table (default in terminal, JSON when piped)
techmeme-pp-cli river
# JSON for scripting and agents
techmeme-pp-cli river --json
# Filter to specific fields
techmeme-pp-cli river --json --select id,name,status
# Dry run — show the request without sending
techmeme-pp-cli river --dry-run
# Agent mode — JSON + compact + no prompts in one flag
techmeme-pp-cli river --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.
# Morning catch-up: what happened overnight?
techmeme-pp-cli sync && techmeme-pp-cli since 12h
# Track a company and check for mentions
techmeme-pp-cli track add "OpenAI" && techmeme-pp-cli track check
# Find breaking stories (multiple sources covering the same topic)
techmeme-pp-cli velocity --hours 4
# Get a daily briefing grouped by source
techmeme-pp-cli digest --date 2026-05-08
# Who are the top 10 publications on Techmeme?
techmeme-pp-cli sources --top 10 --json
# Search for a topic across all cached headlines
techmeme-pp-cli search 'Apple AI'
# Find all headlines by a specific journalist
techmeme-pp-cli author 'Kara Swisher'
# What's trending in the last 24 hours?
techmeme-pp-cli trending --hours 24
# Export all synced data for analysis
techmeme-pp-cli export --format jsonl --output techmeme-backup.jsonl
# Agent pipeline: sync, then get compact JSON digest
techmeme-pp-cli sync && techmeme-pp-cli digest --agent
# Pipe trending topics to another tool
techmeme-pp-cli trending --json | jq '.[].topic'
# Full archive sync for offline access
techmeme-pp-cli workflow archive$ techmeme-pp-cli doctor --json
{
"api": "reachable",
"auth": "not required",
"base_url": "https://www.techmeme.com",
"cache": {
"status": "unknown",
"hint": "sync_state is empty; run 'techmeme-pp-cli sync' to hydrate."
},
"config": "ok",
"version": "1.0.0"
}Config file: ~/.config/techmeme-pp-cli/config.toml
| Variable | Description |
|---|---|
TECHMEME_CONFIG |
Override config file path |
TECHMEME_BASE_URL |
Override API base URL (default: https://www.techmeme.com) |
TECHMEME_FEEDBACK_ENDPOINT |
URL for sending CLI feedback upstream |
TECHMEME_FEEDBACK_AUTO_SEND |
Set to true to auto-send feedback on submit |
No API key is required. Techmeme's public feeds are openly accessible.
Not found errors (exit code 3)
- Check the resource ID is correct
- Run the
listcommand to see available items
Empty results from since or search (exit code 0, no output)
- Run
techmeme-pp-cli syncfirst to populate the local cache from the 5-day river archive
Only 15 headlines from headlines
- The RSS feed carries only the top 15 items. Use
riverorsyncfor the full 5-day archive (150+ headlines)
Search finds nothing for a recent topic
- The search endpoint indexes Techmeme headlines only. Topics that haven't made Techmeme's curated feed won't appear
API error (exit code 5)
- Run
techmeme-pp-cli doctorto verify connectivity - Check that
TECHMEME_BASE_URLis not set to an invalid URL
Rate limited (exit code 7)
- Use
--rate-limit 1to throttle requests to 1 per second
Generated by CLI Printing Press