mcpField
D
daily-briefing

daily-briefing

github.com/halanhuang2025-lgtmProductivity058 installsUpdated 35w ago
Repository

About daily-briefing

A skill that gathers content from five news and community sources into a daily digest. Its Markdown output can be generated on demand or scheduled with OpenClaw cron for delivery to Telegram.

Key features

  1. 01Aggregate five news and community sources
  2. 02Create a Markdown digest with summaries
  3. 03Fetch RSS, HN, and GitHub concurrently
  4. 04Adjust item counts by section
  5. 05Disable sections or change the RSS list

Use cases

  1. 01Schedule a daily digest to Telegram
  2. 02Gather tech and community headlines on demand
  3. 03Adjust digest sections and item counts

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/halanhuang2025-lgtm/daily-briefing-skill --skill daily-briefing

After installing, type/daily-briefingin Claude Code to confirm it loaded.

Bundled filesREADME.mdscripts/daily-briefing.py

Details

From the project README

Daily Briefing Skill

Aggregates 5 news sources into a formatted daily digest with summaries. Designed for Telegram push via OpenClaw cron.

Sources

#SourceAPI / Method
1Readhub 早报https://api.readhub.cn/daily — Chinese tech news with full summaries
2Karpathy RSS92 HN popular blogs OPML, concurrent fetch, latest posts with descriptions
3GitHub TrendingScrape github.com/trending + GitHub API for repo descriptions & stars
4Hacker NewsFirebase API hacker-news.firebaseio.com/v0/topstories.json
5V2EX 热帖https://www.v2ex.com/api/topics/hot.json

Quick Start

Run once (on-demand)
python3 scripts/daily-briefing.py 2>/dev/null

Output is Markdown-formatted, suitable for direct Telegram send.

Set up daily cron (08:00 CST)
openclaw cron add \
  --name "每日资讯早报" \
  --cron "0 8 * * *" \
  --session isolated \
  --announce \
  --channel telegram \
  --thinking low \
  --message "运行 python3 <workspace>/scripts/daily-briefing.py 2>/dev/null 并将完整输出分段发送到 Telegram 主群"

Replace <workspace> with actual path (e.g. /Users/you/.openclaw/workspace-main).

Send output to Telegram (split by section)

The output is ~200 lines. Split into 4 messages by section (📰 / 🔖 / ⭐ / 🔥+💬) to stay under Telegram's 4096-char limit.

Script Details

File: scripts/daily-briefing.py

  • Pure Python stdlib only — no pip dependencies
  • Concurrent fetching: 25 workers for RSS feeds, 10 for HN items, 8 for GitHub API
  • Total runtime: ~25 seconds
  • Karpathy OPML source: https://gist.githubusercontent.com/emschwartz/e6d2bf860ccc367fe37ff953ba6de66b/raw/hn-popular-blogs-2025.opml

Customization

Change number of items per section — edit the n= parameter in each get_*() call in main():

readhub  = get_readhub(8)        # default 8
rss      = get_karpathy_rss(10)  # default 10
gh       = get_github_trending(8) # default 8
hn       = get_hn_top(8)         # default 8
v2       = get_v2ex_hot(8)       # default 8

Disable a section — comment out its block in main().

Change RSS feed list — the script dynamically fetches the OPML from GitHub Gist on each run. To use a static local list instead, replace load_opml_feeds() return value with a hardcoded list.

Comments

Markdown supported