Fetch real-time hot news from 28 sources, generate deep analysis reports in Chinese.
Every news request follows the same workflow, regardless of source or combination:
bash
# Single source
python3 scripts/fetch_news.py --source <source_key> --no-save
# Multiple sources (comma-separated)
python3 scripts/fetch_news.py --source hackernews,github,wallstreetcn --no-save
# All sources (broad scan)
python3 scripts/fetch_news.py --source all --limit 15 --deep --no-save
# With keyword filter (auto-expand: "AI" → "AI,LLM,GPT,Claude,Agent,RAG")
python3 scripts/fetch_news.py --source hackernews --keyword "AI,LLM,GPT" --deep --no-save
Read the output JSON and format every item using the Unified Report Template below. Translate all content to Simplified Chinese.
Save the report to reports/YYYY-MM-DD/<source>_report.md, then display the full content to the user.
All sources use this single template. Show/hide optional fields based on data availability.
markdown
#### N. [标题 (中文翻译)](https://original-url.com)
- **Source**: 源名 | **Time**: 时间 | **Heat**: 🔥 热度值
- **Links**: [Discussion](hn_url) | [GitHub](gh_url) ← 仅在数据存在时显示
- **Summary**: 一句话中文摘要。
- **Deep Dive**: 💡 **Insight**: 深度分析(背景、影响、技术价值)。
Only the differences from the universal template:
SourceAdaptationHacker News****MUST include [Discussion](hn_url) linkGitHubUse 🌟 Stars for Heat, add Lang field, add #Tags in Deep DiveHugging FaceUse 🔥 +N upvotes for Heat, include [GitHub](url) if present, write 深度解读 (not just translate abstract)WeiboPreserve exact heat text (e.g. "108万")
ArgDescriptionDefault--sourceSource key(s), comma-separated. See table below.all``--limitMax items per source15``--keywordComma-separated keyword filterNone--deepDownload article text for richer analysisOff--saveForce save to reports dirAuto for single source--outdirCustom output directoryreports/YYYY-MM-DD/
CategoryKeyNameGlobal NewshackernewsHacker News36kr36氪wallstreetcn华尔街见闻tencent腾讯新闻weibo微博热搜v2exV2EXproducthuntProduct HuntgithubGitHub TrendingAI/TechhuggingfaceHF Daily Papersai_newslettersAll AI Newsletters (aggregate)bensbitesBen's BitesinterconnectsInterconnects (Nathan Lambert)oneusefulthingOne Useful Thing (Ethan Mollick)chinaiChinAI (Jeffrey Ding)memiaMemiaaitoroiAI to ROIkdnuggetsKDnuggetsPodcastspodcastsAll Podcasts (aggregate)lexfridmanLex Fridman80000hours80,000 HourslatentspaceLatent SpaceEssaysessaysAll Essays (aggregate)paulgrahamPaul GrahamwaitbutwhyWait But WhyjamesclearJames ClearfarnamstreetFarnam StreetscottyoungScott YoungdankoeDan Koe
Pre-configured multi-source profiles:
bash
python3 scripts/daily_briefing.py --profile <profile>
ProfileSourcesInstruction FilegeneralHN, 36Kr, GitHub, Weibo, PH, WallStreetCNinstructions/briefing_general.md``financeWallStreetCN, 36Kr, Tencentinstructions/briefing_finance.md``techGitHub, HN, Product Huntinstructions/briefing_tech.md``socialWeibo, V2EX, Tencentinstructions/briefing_social.md``ai_dailyHF Papers, AI Newslettersinstructions/briefing_ai_daily.md``reading_listEssays, Podcasts(Use universal template)
Workflow: Execute script → Read corresponding instruction file → Generate report following both the instruction file AND the universal template.
"AI,LLM,GPT,Claude,Agent,RAG,DeepSeek". Similar expansions for other domains.reports/YYYY-MM-DD/ before displaying.When the user says "如意如意" or asks for "menu/help":
templates.mdpip install -r requirements.txtplaywright install chromium