Automated daily news digest powered by Claude. Fetches from diverse RSS sources across 5 continents, deduplicates against recent history, curates stories into tiers with bias-aware source attribution, and emails an HTML summary via Resend.
Two components: newsroom (Python pipeline that fetches, curates, and emails) and circulation (Rust web server for the online archive).
- Docker
- A Claude subscription (Max or Pro) or API key
- Resend account (free tier: unlimited broadcasts to 1,000 contacts)
git clone https://github.com/yourusername/news-digest.git
cd news-digest
cp .env.example .envEdit .env with your settings. The required values are:
# Claude authentication (choose one):
CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-... # Subscription: `claude setup-token`
# ANTHROPIC_API_KEY=sk-ant-... # Pay-per-use: console.anthropic.com
# Resend (https://resend.com)
RESEND_API_KEY=re_xxxxxxxx_xxxxxxxxxxxxxxxxxxxx
RESEND_FROM=onboarding@resend.dev
RESEND_AUDIENCE_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxSee .env.example for optional settings (digest name, author, archive URL, etc).
# Test run: fetches articles, generates digest, skips email
docker compose run --rm digest-newsroom --dry-run
# Full run: fetch, curate, email, record
docker compose run --rm digest-newsroomThe database is created automatically on first run.
# Daily at 07:00 UTC
0 7 * * * cd /path/to/news-digest && docker compose run --rm digest-newsroom >> data/cron.log 2>&1docker compose up -d digest-circulation
# Browse at http://localhost:8080Diverse sources weighted toward high-factuality outlets, spanning center to lean-left with lean-right representation. Bias rated on the Ground News 7-point scale. See newsroom/sources.json for the full list.
| Problem | Fix |
|---|---|
| No digest generated | Check data/digest.log; verify auth with docker compose run --rm digest-newsroom claude --version |
| Email not sending | Verify RESEND_API_KEY and RESEND_FROM in .env; test with docker compose run --rm digest-newsroom --test-email you@example.com |
| Container issues | docker compose build --no-cache |
| MCP tool not available | Check newsroom/.mcp.json uses .venv/bin/python not python3 |
- Production deployment -- docs/DEPLOYMENT.md
- Architecture and dev context -- CLAUDE.md
- All CLI flags --
docker compose run --rm digest-newsroom --help
MIT