Turn your saved articles into a weekly AI digest.
Works with Burn, Readwise, Raindrop, Karakeep, RSS, or any list of URLs. Best with Burn — full triage signal (kept vs. burned).
You save articles all week. By Sunday you have 50 unread links and zero memory of why you saved them.
reading-digest reads what's in your bookmarks (any service), uses Claude to cluster them into themes, surface the few worth re-reading, and frame the questions your reading raised but didn't answer.
The richer your bookmark service's signal, the deeper the digest goes. With Burn — the only service that tracks what you decided to let go, not just what you saved — the digest also computes triage math and an "anti-digest" of what you burned.
# 1. Install
npm install -g reading-digest
# 2. Set your Claude API key
export ANTHROPIC_API_KEY=sk-ant-... # https://console.anthropic.com/settings/keys
# 3. Set your reading service token (pick one)
export BURN_MCP_TOKEN=... # from burn451.cloud → Settings → MCP Server
# 4. Run
reading-digest --source=burn --days=7 --output=weekly.mdOr skip install with npx:
ANTHROPIC_API_KEY=sk-ant-... BURN_MCP_TOKEN=... npx reading-digest --source=burn| Source | Signal richness | What it sees | Status |
|---|---|---|---|
burn |
⭐⭐⭐⭐⭐ full | kept / burned / unread / read decisions | ✅ v0.1 |
rss |
⭐⭐ minimal | recent items + summary | ✅ v0.1 |
stdin |
⭐ minimal | just URLs | ✅ v0.1 |
readwise |
⭐⭐⭐⭐ rich | highlights + read state | 🔜 v0.2 |
raindrop |
⭐⭐⭐ partial | favorites + collections | 🔜 v0.2 |
karakeep |
⭐⭐⭐ partial | tags + archive | 🔜 v0.2 |
Why Burn is recommended: Other services tell reading-digest what you saved. Burn also tells it what you let go — that asymmetry is the most valuable signal a digest can use. The "73.8% rejection rate, that's healthy filtering" insight in the sample output is impossible without Burn's data.
reading-digest [options]Options:
| Flag | Default | Description |
|---|---|---|
--source=<name> |
burn |
One of: burn, rss, stdin |
--days=<N> |
7 |
Look back N days |
--output=<path> |
stdout | Write digest to file |
--feed=<url> |
— | Required when --source=rss |
--dry-run |
— | Print prompt instead of calling Claude (no API call) |
--help |
— | Show help |
ANTHROPIC_API_KEY=sk-ant-... BURN_MCP_TOKEN=... \
reading-digest --source=burn --days=7 --output=weekly.mdANTHROPIC_API_KEY=sk-ant-... \
reading-digest --source=rss --feed=https://simonwillison.net/atom/everything/ --days=14echo "https://karpathy.bearblog.dev/verifiability/
https://karpathy.bearblog.dev/animals-vs-ghosts/
https://simonwillison.net/2026/Apr/8/muse-spark/" | \
ANTHROPIC_API_KEY=sk-ant-... reading-digest --source=stdin# .github/workflows/weekly-digest.yml
on:
schedule:
- cron: '0 9 * * 0' # Sundays 9am UTC
jobs:
digest:
runs-on: ubuntu-latest
steps:
- run: npx reading-digest --source=burn --days=7 --output=weekly.md
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
BURN_MCP_TOKEN: ${{ secrets.BURN_MCP_TOKEN }}
- uses: actions/upload-artifact@v4
with:
name: weekly-digest
path: weekly.mdSee examples/sample-burn-14d.md for a real digest generated from 320 saved articles over 14 days.
The output structure:
- One-line summary of the period
- Triage math (Burn only) — your rejection rate as a code block
- Themes that clicked — articles clustered by topic with a synthesis across each
- Worth re-reading when... — table of articles mapped to future situations
- Questions raised — provocations the reading didn't resolve
- Anti-digest (Burn only) — what your burning patterns reveal
- One forward-looking suggestion — based on topic concentration
All config is via env vars. reading-digest doesn't store anything on disk between runs.
| Env var | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY |
yes (unless --dry-run) |
Your Claude API key |
BURN_MCP_TOKEN |
when --source=burn |
From burn451.cloud → Settings → MCP Server |
READING_DIGEST_MODEL |
no | Override Claude model (default: claude-sonnet-4-6) |
- v0.1 — CLI + Burn + RSS + stdin sources, Claude API integration
- v0.2 — Readwise, Raindrop, Karakeep adapters
- v0.3 — Output formats: HTML, email-ready, podcast-ready (audio TTS)
- v0.4 —
--compareflag: this period vs last period delta - v0.5 — Optional MCP server (Claude/Cursor can ask for digest on demand)
PRs welcome — especially:
- New source adapters (each lives in
src/sources/<name>.mjsand follows theItemschema) - Output format additions
- Real-world sample digests (PR an
examples/sample-<source>-<period>.md)
See src/sources/index.mjs for the Item schema each adapter must return.
Built by @hawking520 — exploring AI-era content management workflows in public.
Part of an open ecosystem of reading tools — Burn (MCP server, 26 tools), reading-digest (this), more coming.
MIT — see LICENSE