@grgerwcwetwet: 推荐一个开源项目 Horizon,一个专门盯海外科技圈的 AI 信息雷达。 它会自动聚合 Hacker News、Twitter、Reddit、GitHub 等平台内容,再用 AI 做筛选、去重和总结,把真正有价值的信息整理成日报。 比较…
摘要
推荐开源项目 Horizon,这是一个AI驱动的海外科技新闻雷达,自动聚合Hacker News、Twitter、Reddit、GitHub等平台内容,进行筛选、去重和总结,生成中英双语日报,并支持推送到飞书、邮箱、微信等渠道。
查看缓存全文
缓存时间: 2026/05/20 16:35
推荐一个开源项目 Horizon,一个专门盯海外科技圈的 AI 信息雷达。
它会自动聚合 Hacker News、Twitter、Reddit、GitHub 等平台内容,再用 AI 做筛选、去重和总结,把真正有价值的信息整理成日报。
比较实用的是:
- AI 自动给内容打分,低质量直接过滤
- 提取 Reddit / HN 里的高质量评论和观点
- 自动补充陌生公司、技术背景
- 同一新闻全网去重
- 支持生成中英双语简报
- 可推送到飞书、邮箱、微信等渠道
如果你平时靠刷海外社区获取信息,这类工具确实能减少很多“信息噪音”。
GitHub: 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, GitHub releases or user activity, and OpenBB financial news watchlists in one pipeline
- 🤖 Turn Noise Into a Reading List — Score each item from 0-10 with Claude, GPT, Gemini, DeepSeek, Doubao, MiniMax, Ollama, 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"]
openbb["💹 OpenBB"]
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
openbb --> 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,openbb 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.
If you want the optional OpenBB financial-news source, install its extra too:
uv sync --extra openbb
If openbb pulls packages without wheels on your machine, install the SDK manually with binaries only:
uv pip install --only-binary=:all: openbb openbb-benzinga
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
}
}
Any string value in data/config.json can reference environment variables with ${VAR_NAME}. This is useful for values such as ai.base_url, private RSS feed URLs, webhook endpoints, or custom header templates.
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 | — |
| OpenBB | Financial company news by watchlist/provider | — |
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 Discord
- Custom scoring prompts per source
- Publish releases on GitHub
- Publish the package to PyPI for
pip install
Contributing
Contributions are welcome. See CONTRIBUTING.md for code, documentation, and source-sharing guidelines.
Share Sources
Want to share valuable source discoveries with the Horizon community? Please submit them through horizon1123.top.
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
相似文章
@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.
@WEB3_furture: 如何高效获取中英文区最有价值的信息流? 这两个是社区普遍推荐的免费开源工具,能自动抓取中英文区全网热点、AI筛选高价值内容、生成翻译+深度分析简报并一键推送 1. TrendRadar(58k+ stars) 中文区:自动抓取知乎、抖音、…
推荐两个免费开源工具:TrendRadar(中文区,58k+ stars)和Horizon(英文区,4.6k+ stars),能自动抓取全网热点、AI筛选高价值内容、生成翻译与分析简报并一键推送至多种平台。
@Honcia13: 再也不用刷十几个App焦虑错过热点! 这个5万星开源神器 TrendRadar 直接把全网热点聚合起来, 用AI按你的兴趣精准筛选,只推跟你有关的内容到手机! 支持关键词 + 自然语言描述“我想看什么” AI自动翻译+生成简报,一键推送到…
TrendRadar 是一款开源热点聚合工具,利用 AI 按兴趣筛选内容并生成简报,支持 Docker 部署及多平台通知推送。
@tom_doerr: 从 Hacker News、Reddit 和 RSS 生成每日 AI 简报 https://github.com/Thysrael/Horizon…
Horizon 是一款开源工具,通过聚合和总结来自 Hacker News、Reddit、RSS 等来源的新闻,并利用 Claude、GPT 等 AI 模型生成每日 AI 简报。
@VincentLogic: 发现个 AI 圈高质量信息源神器! follow-builders,这个开源项目能帮你每天蹲守全网一线 AI 大佬的动态,自动整理成摘要推给你。 作者张子雅(哈佛文科背景转型 AI)搞的,理念贼正——"关注建设者,而非网红"。 不追那些只…
介绍了一个名为 follow-builders 的开源项目,用于自动追踪 AI 领域建设者的动态并生成摘要推送,旨在帮助用户获取高质量信息。