AI Daily Digest turns a curated set of high-signal technology blogs into a structured daily reading brief. It fetches RSS/Atom feeds, filters recent articles, asks Gemini to score and classify them, and writes a Markdown digest with trend highlights, ranked articles, category groups, and Mermaid-friendly statistics.
The project is packaged as an OpenCode-compatible skill and as a direct CLI script.
- Docs site: https://firejw.github.io/ai-daily-digest/
- Demo runbook: docs/demo-runbook.md
- Source methodology: docs/source-methodology.md
- Privacy notes: docs/security-and-privacy.md
- Fetches 90 RSS/Atom sources from the Hacker News Popularity Contest 2025 list recommended by Andrej Karpathy.
- Filters articles by a configurable time window.
- Uses Gemini to score relevance, quality, and timeliness.
- Classifies articles into six practical reading buckets.
- Generates Chinese or English Markdown reports.
- Includes trend notes, top reads, category sections, Mermaid charts, ASCII fallback charts, and a keyword cloud.
RSS sources -> time filter -> AI scoring -> summaries/translations -> digest.md
The implementation is intentionally compact: one TypeScript script, standard runtime APIs, no committed API keys, and no backend service.
Requires Bun and a Gemini API key.
export GEMINI_API_KEY="your-key"
bun scripts/digest.ts --hours 48 --top-n 15 --lang zh --output ./output/digest.mdIf Bun is not installed, the original skill workflow can use:
export GEMINI_API_KEY="your-key"
npx -y bun scripts/digest.ts --hours 48 --top-n 15 --lang zh --output ./output/digest.mdShow CLI help:
bun scripts/digest.ts --helpAs an OpenCode skill, invoke:
/digest
The agent collects:
| Parameter | Options | Default |
|---|---|---|
| Time window | 24h, 48h, 72h, 7 days | 48h |
| Article count | 10, 15, 20 | 15 |
| Language | Chinese, English | Chinese |
| Gemini key | Environment variable or guided input | Required |
The skill stores reusable preferences in:
~/.hn-daily-digest/config.json
Generated Markdown includes:
| Section | Purpose |
|---|---|
| Daily highlights | 3-5 sentence trend synthesis |
| Top reads | Ranked top 3 with translated title, summary, reason, and keywords |
| Data overview | Counts, category distribution, keyword frequency, Mermaid charts |
| Category lists | Grouped article cards across six buckets |
| Footer | Source and run metadata |
| Category | Coverage |
|---|---|
| AI / ML | AI, machine learning, LLMs, deep learning |
| Security | Security, privacy, vulnerabilities, cryptography |
| Engineering | Software engineering, architecture, programming languages, systems |
| Tools / Open Source | Developer tools, releases, libraries, frameworks |
| Opinion | Industry commentary, personal essays, career reflections |
| Other | Useful items outside the other buckets |
Raw RSS firehoses are noisy. A daily digest needs more than a chronological list: it needs deduped sources, ranking criteria, enough summary to decide what to read, and a view of what themes are moving across the technical blogosphere.
This repo demonstrates a small but complete agent workflow: source collection, structured scoring, summarization, report generation, and a repeatable skill interface.
- No API key is committed.
GEMINI_API_KEYis read from the environment for CLI runs.- The skill may store a local config under
~/.hn-daily-digest/; keep that file out of version control. - Generated reports are local Markdown files.
- RSS source URLs are public.
See docs/security-and-privacy.md for details.
The original skill build notes are available here:
https://mp.weixin.qq.com/s/rkQ28KTZs5QeZqjwSCvR4Q
