reading-digest
v0.1.0
Published
Turn your saved articles into a weekly AI digest. Works with Burn / Readwise / Raindrop / Karakeep / RSS / local URL list.
Downloads
125
Maintainers
Readme
reading-digest
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).
Why
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.
Quick start
# 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=burnSupported sources
| 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.
Usage
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 |
Examples
Weekly Burn digest
ANTHROPIC_API_KEY=sk-ant-... BURN_MCP_TOKEN=... \
reading-digest --source=burn --days=7 --output=weekly.mdSingle RSS feed digest
ANTHROPIC_API_KEY=sk-ant-... \
reading-digest --source=rss --feed=https://simonwillison.net/atom/everything/ --days=14Custom URL list (any source)
echo "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=stdinSchedule weekly via GitHub Action
# .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.mdSample output
See 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
Configuration
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) |
Roadmap
- [x] 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)
Contributing
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.
About
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.
License
MIT — see LICENSE
