@NFTCPS: 每天刷Hacker News、Twitter、Reddit、GitHub,你烦不烦?全是水文、重复内容、噪音,跟垃圾堆一样。 我最近挖到一个新工具:Horizon,硬核科技新闻雷达。让它替你盯着全球科技圈,你只需要每天早上开一份简报。 核…
摘要
Horizon is an open-source AI-powered news radar tool that aggregates, deduplicates, scores, and summarizes tech news from Hacker News, Reddit, GitHub and other sources to generate daily bilingual briefings.
查看缓存全文
缓存时间: 2026/05/08 11:30
每天刷Hacker News、Twitter、Reddit、GitHub,你烦不烦?全是水文、重复内容、噪音,跟垃圾堆一样。 我最近挖到一个新工具:Horizon,硬核科技新闻雷达。让它替你盯着全球科技圈,你只需要每天早上开一份简报。 核心就一个字:把噪音全干掉,精华端到你面前。 AI严格把关:支持DeepSeek、Claude等模型,每条资讯打0-10分,低分直接过滤,不糊弄你 神评论自动提取:把Hacker News和Reddit里真正有眼光的讨论总结出来 自动背景调查:遇到陌生术语、公司或技术,自动联网补知识,不用你瞎猜 全网智能去重:同一个新闻在多个平台刷屏,自动合并,只留一次 中英双语日报:生成干净专业的日报,方便快速浏览 一键推送分发:飞书、邮箱、微信、GitHub Pages等渠道随便选 信息差时代,晚知道24小时,可能就错过一轮机会。晚一天,你就落后一拍。感兴趣的去试试吧,DYOR。 https://github.com/Thysrael/Horizon…
Thysrael/Horizon
Source: https://github.com/Thysrael/Horizon
🌅 Horizon
Enjoy the News itself. Leave others to Horizon
📡 Your own AI-powered news radar. Generates daily briefings in English & Chinese. | 构建你专属的 AI 新闻雷达
Screenshots
|
Ranked Daily Briefing
|
Context, Summary & Discussion
|
More Screenshots
|
Terminal Output
|
Feishu Notification
|
Email Delivery
|
Why Horizon?
Good news is scattered; bad news is endless. Horizon gives you a personal first pass over Hacker News, Reddit, Telegram, RSS, and GitHub: it fetches, deduplicates, scores, filters, and enriches stories with background context and community discussion.
But Horizon is not just another summarizer. AI is great at reducing noise, but news still needs human taste: the sources you trust, the comments that change how you read a story, and the hidden gems only people can share. Horizon keeps that human layer in the loop with customizable sources, thresholds, models, languages, delivery channels, comment summaries, and a community source hub.
Features
- 📡 Watch Your Own Sources — Track Hacker News, RSS, Reddit, Telegram, Twitter/X, and GitHub releases or user activity in one pipeline
- 🤖 Turn Noise Into a Reading List — Score each item from 0-10 with Claude, GPT, Gemini, DeepSeek, Doubao, MiniMax, or any OpenAI-compatible API
- 🔗 Merge Repeated Stories — Deduplicate the same story across platforms before it reaches your briefing
- 🔍 Understand the Background — Add web-researched context for unfamiliar concepts, companies, projects, and technical terms
- 💬 Read the Conversation — Collect and summarize community comments from Hacker News, Reddit, and other supported sources
- 🌐 Publish in Two Languages — Generate English and Chinese daily briefings from the same source set
- 📝 Ship a Daily Site — Publish generated Markdown as a GitHub Pages daily briefing site
- 📧 Deliver by Email — Run a self-hosted SMTP/IMAP newsletter with automatic subscribe and unsubscribe handling
- 🔔 Push to Chat or Automations — Send templated results to Feishu/Lark, DingTalk, Slack, Discord, or custom webhook endpoints
- 🧙 Start From Your Interests — Use the setup wizard to generate a personalized source configuration
- ⚙️ Tune the Radar — Customize sources, thresholds, models, languages, and delivery channels from one JSON config
How It Works
%%{init: {
"theme": "base",
"themeVariables": {
"fontFamily": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif",
"fontSize": "18px",
"primaryTextColor": "#2d2a3e",
"primaryBorderColor": "#e0dbd3",
"lineColor": "#7c7891",
"tertiaryColor": "#faf8f5",
"clusterBkg": "#f3f0eb",
"clusterBorder": "#e0dbd3"
}
}}%%
flowchart LR
classDef config fill:#fbbf24,stroke:#d4a017,color:#2d2a3e,stroke-width:1.5px;
classDef source fill:#ede7fb,stroke:#6d4aaa,color:#2d2a3e,stroke-width:1.5px;
classDef process fill:#ffe8db,stroke:#e0652e,color:#2d2a3e,stroke-width:1.5px;
classDef output fill:#f9d7e5,stroke:#be185d,color:#2d2a3e,stroke-width:1.5px;
config["⚙️ Config<br/>sources, thresholds, models, outputs"]
subgraph sources["Configured Sources"]
rss["📡 RSS"]
hn["📰 Hacker News"]
reddit["💬 Reddit"]
telegram["✈️ Telegram"]
twitter["🐦 Twitter / X"]
github["🐙 GitHub"]
end
fetch["📥 Fetch"]
dedup["🧹 Deduplicate"]
score["🤖 AI Score & Filter"]
enrich["🔎 Enrich"]
summary["📝 Summarize"]
subgraph outputs["Outputs"]
direction TB
site["🌐 Pages"]
email["📧 Email"]
webhook["🔔 Webhooks"]
mcp["🧩 MCP"]
end
config --> fetch
rss --> fetch
hn --> fetch
reddit --> fetch
telegram --> fetch
twitter --> fetch
github --> fetch
fetch --> dedup --> score --> enrich --> summary
config --> score
config --> summary
config --> outputs
summary --> site
summary --> email
summary --> webhook
summary --> mcp
class config config
class rss,hn,reddit,telegram,twitter,github source
class fetch,dedup,score,enrich,summary process
class site,email,webhook,mcp output
- Define — Configure sources, thresholds, models, languages, and delivery from one JSON config.
- Fetch — Pull latest content from all configured sources concurrently.
- Deduplicate — Merge items pointing to the same story or URL across platforms.
- Score & Filter — Use AI to rank items and keep only those above your threshold.
- Enrich — Search the web for background context and collect community discussion for important items.
- Summarize — Generate a structured Markdown briefing with summaries, tags, and references.
- Deliver — Publish the result to GitHub Pages, email, webhooks such as Feishu, MCP, or local files.
Quick Start
1. Install
Option A: Local Installation
git clone https://github.com/Thysrael/Horizon.git
cd horizon
# Install with uv (recommended)
uv sync
# Install test/development extras when needed
uv sync --extra dev
# Or with pip
pip install -e .
dev is currently defined as an optional extra in pyproject.toml, so use uv sync --extra dev for pytest and other development dependencies.
Option B: Docker
git clone https://github.com/Thysrael/Horizon.git
cd horizon
# Configure environment
cp .env.example .env
cp data/config.example.json data/config.json
# Edit .env and data/config.json with your API keys and preferences
# Run with Docker Compose
docker-compose run --rm horizon
# Or run with custom time window
docker-compose run --rm horizon --hours 48
2. Configure
Option A: Interactive wizard (recommended)
uv run horizon-wizard
The wizard asks about your interests (e.g. “LLM inference”, “嵌入式”, “web security”) and auto-generates data/config.json.
Option B: Manual configuration
cp .env.example .env # Add your API keys
cp data/config.example.json data/config.json # Customize your sources
Minimal manual configuration:
{
"ai": {
"provider": "openai",
"model": "gpt-4",
"api_key_env": "OPENAI_API_KEY"
},
"sources": {
"rss": [
{ "name": "Simon Willison", "url": "https://simonwillison.net/atom/everything/" }
]
},
"filtering": {
"ai_score_threshold": 6.0
}
}
For the full reference, see the Configuration Guide.
3. Run
Local Installation
uv run horizon # Run with default 24h window
uv run horizon --hours 48 # Fetch from last 48 hours
With Docker
docker-compose run --rm horizon # Run with default 24h window
docker-compose run --rm horizon --hours 48 # Fetch from last 48 hours
The generated report will be saved to data/summaries/.
4. Automate (Optional)
Horizon works great as a GitHub Actions cron job. See .github/workflows/daily-summary.yml for a ready-to-use workflow that generates and deploys your daily briefing to GitHub Pages automatically.
Supported Sources
| Source | What it fetches | Comments |
|---|---|---|
| Hacker News | Top stories by score | Yes (top N comments) |
| RSS / Atom | Any RSS or Atom feed | — |
| Subreddits + user posts | Yes (top N comments) | |
| Telegram | Public channel messages | — |
| Twitter / X | Tweets from specific users | Yes (top N replies) |
| GitHub | User events & repo releases | — |
Where Your Briefing Goes
Horizon can publish or deliver the generated briefing in several ways:
| Channel | What it does |
|---|---|
| GitHub Pages Daily Site | Copies generated Markdown into docs/ so GitHub Pages can publish a daily-updated briefing site |
| Email Subscription | Sends the daily briefing to subscribers and handles subscribe/unsubscribe requests through SMTP/IMAP |
| Webhook Notification | Pushes success or failure results to Feishu/Lark, DingTalk, Slack, Discord, or any custom webhook endpoint |
| MCP Server | Exposes Horizon pipeline steps as tools so AI assistants can fetch, score, filter, enrich, summarize, and run the full workflow |
For setup details, see the Configuration Guide. For MCP tool references and client setup, see src/mcp/README.md and src/mcp/integration.md.
Documentation
| Guide | Description |
|---|---|
| Configuration | AI providers, sources, filtering, email, webhook, GitHub Pages, and MCP setup |
| Scoring | How Horizon evaluates and ranks news items |
| Scrapers | Source scraper details and extension notes |
| MCP Tools | Tool reference for MCP-compatible clients |
Project Status
Horizon already supports the full daily briefing loop: multi-source collection, AI scoring, deduplication, enrichment, comment summaries, bilingual generation, GitHub Pages publishing, email delivery, webhook delivery, Docker deployment, MCP integration, and the setup wizard.
Planned improvements:
- More source types, such as Twitter/X and Discord
- Custom scoring prompts per source
- Publish releases on GitHub
- Publish the package to PyPI for
pip install
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
Share Sources
Want to share valuable source discoveries with the Horizon community? Please submit them through horizon1123.top.
Great candidates: niche RSS discoveries, active subreddit trends, notable GitHub updates, or Telegram channel highlights in your area of expertise.
Acknowledgements
- Special thanks to LINUX.DO for providing a promotion platform.
- Special thanks to HelloGitHub for valuable guidance and suggestions.
- Special thanks to AIGC Link for the promotions on XiaoHongShu.
License
相似文章
@Honcia13: 再也不用刷十几个App焦虑错过热点! 这个5万星开源神器 TrendRadar 直接把全网热点聚合起来, 用AI按你的兴趣精准筛选,只推跟你有关的内容到手机! 支持关键词 + 自然语言描述“我想看什么” AI自动翻译+生成简报,一键推送到…
TrendRadar 是一款开源热点聚合工具,利用 AI 按兴趣筛选内容并生成简报,支持 Docker 部署及多平台通知推送。
@SunNeverSetsX: 别再活在信息茧房里面了!中文区 99% 的内容都是从这些信息源搬运过来的。 关注这 10 个前沿账号,3 个顶级博客,带你看看最前沿的世界! 一、10 个前沿账号 1. @karpathy AI 教育界网红,中文区搬运最狠的人。前 Ope…
一篇推荐10个前沿AI和科技信息源账号及3个顶级博客的帖子,旨在帮助中文读者突破信息茧房,直接获取一手前沿资讯。文章提及karpathy等知名AI领域人物。
@VincentLogic: 发现个 AI 圈高质量信息源神器! follow-builders,这个开源项目能帮你每天蹲守全网一线 AI 大佬的动态,自动整理成摘要推给你。 作者张子雅(哈佛文科背景转型 AI)搞的,理念贼正——"关注建设者,而非网红"。 不追那些只…
介绍了一个名为 follow-builders 的开源项目,用于自动追踪 AI 领域建设者的动态并生成摘要推送,旨在帮助用户获取高质量信息。
@NFTCPS: 有人用Claude造了个内容核弹,我不说一声良心过不去。 随便扔进去任何东西——微信公众号、YouTube、播客、PDF、Word、Excel、电子书,它直接给你吐出播客、PPT、思维导图。 最离谱的是什么? 300多个付费网站,NYT、…
一个开源工具,利用 Claude 将微信公众号、YouTube、播客、PDF 等多种内容转化为播客、PPT 和思维导图,并支持绕过 300+ 付费网站的付费墙。
sansan0/TrendRadar
TrendRadar 是一款轻量级、30 秒即可部署的工具,可聚合 RSS 热门资讯并通过 AI 过滤,向 10+ 平台推送提醒。