@grgerwcwetwet: 推荐一个开源项目 Horizon,一个专门盯海外科技圈的 AI 信息雷达。 它会自动聚合 Hacker News、Twitter、Reddit、GitHub 等平台内容,再用 AI 做筛选、去重和总结,把真正有价值的信息整理成日报。 比较…

X AI KOLs Timeline 工具

摘要

推荐开源项目 Horizon,这是一个AI驱动的海外科技新闻雷达,自动聚合Hacker News、Twitter、Reddit、GitHub等平台内容,进行筛选、去重和总结,生成中英双语日报,并支持推送到飞书、邮箱、微信等渠道。

推荐一个开源项目 Horizon,一个专门盯海外科技圈的 AI 信息雷达。 它会自动聚合 Hacker News、Twitter、Reddit、GitHub 等平台内容,再用 AI 做筛选、去重和总结,把真正有价值的信息整理成日报。 比较实用的是: * AI 自动给内容打分,低质量直接过滤 * 提取 Reddit / HN 里的高质量评论和观点 * 自动补充陌生公司、技术背景 * 同一新闻全网去重 * 支持生成中英双语简报 * 可推送到飞书、邮箱、微信等渠道 如果你平时靠刷海外社区获取信息,这类工具确实能减少很多“信息噪音”。 GitHub: https://github.com/Thysrael/Horizon…
查看原文
查看缓存全文

缓存时间: 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

License uv Daily Summary GitHub commit activity PRs Welcome Sources Welcome Featured|HelloGitHub

Claude GPT Gemini DeepSeek Doubao MiniMax OpenClaw Ollama

📡 Your own AI-powered news radar. Generates daily briefings in English & Chinese. | 构建你专属的 AI 新闻雷达

📖 Live Demo · 📋 Configuration Guide · 简体中文

Screenshots

Ranked Daily Briefing

Daily Overview

Context, Summary & Discussion

News Detail
More Screenshots

Terminal Output

Terminal Output

Feishu Notification

Feishu Notification

Email Delivery

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
  1. Define — Configure sources, thresholds, models, languages, and delivery from one JSON config.
  2. Fetch — Pull latest content from all configured sources concurrently.
  3. Deduplicate — Merge items pointing to the same story or URL across platforms.
  4. Score & Filter — Use AI to rank items and keep only those above your threshold.
  5. Enrich — Search the web for background context and collect community discussion for important items.
  6. Summarize — Generate a structured Markdown briefing with summaries, tags, and references.
  7. 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

SourceWhat it fetchesComments
Hacker NewsTop stories by scoreYes (top N comments)
RSS / AtomAny RSS or Atom feed
RedditSubreddits + user postsYes (top N comments)
TelegramPublic channel messages
Twitter / XTweets from specific usersYes (top N replies)
GitHubUser events & repo releases
OpenBBFinancial company news by watchlist/provider

Where Your Briefing Goes

Horizon can publish or deliver the generated briefing in several ways:

ChannelWhat it does
GitHub Pages Daily SiteCopies generated Markdown into docs/ so GitHub Pages can publish a daily-updated briefing site
Email SubscriptionSends the daily briefing to subscribers and handles subscribe/unsubscribe requests through SMTP/IMAP
Webhook NotificationPushes success or failure results to Feishu/Lark, DingTalk, Slack, Discord, or any custom webhook endpoint
MCP ServerExposes 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

GuideDescription
ConfigurationAI providers, sources, filtering, email, webhook, GitHub Pages, and MCP setup
ScoringHow Horizon evaluates and ranks news items
ScrapersSource scraper details and extension notes
MCP ToolsTool 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

MIT

相似文章

@NFTCPS: 每天刷Hacker News、Twitter、Reddit、GitHub,你烦不烦?全是水文、重复内容、噪音,跟垃圾堆一样。 我最近挖到一个新工具:Horizon,硬核科技新闻雷达。让它替你盯着全球科技圈,你只需要每天早上开一份简报。 核…

X AI KOLs Timeline

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) 中文区:自动抓取知乎、抖音、…

X AI KOLs Timeline

推荐两个免费开源工具:TrendRadar(中文区,58k+ stars)和Horizon(英文区,4.6k+ stars),能自动抓取全网热点、AI筛选高价值内容、生成翻译与分析简报并一键推送至多种平台。

@VincentLogic: 发现个 AI 圈高质量信息源神器! follow-builders,这个开源项目能帮你每天蹲守全网一线 AI 大佬的动态,自动整理成摘要推给你。 作者张子雅(哈佛文科背景转型 AI)搞的,理念贼正——"关注建设者,而非网红"。 不追那些只…

X AI KOLs Timeline

介绍了一个名为 follow-builders 的开源项目,用于自动追踪 AI 领域建设者的动态并生成摘要推送,旨在帮助用户获取高质量信息。