Horizon: AI-Powered News Radar
Horizon: Your AI-powered News Radar
Welcome to Horizon, a personal AI-driven news radar designed to bring order to the flood of information. Horizon goes beyond simple summarization by creating a human-centric reading experience. It scours Hacker News, Reddit, Telegram, RSS feeds, GitHub activity, and more, then cleans, scores, enriches, and presents bite-sized briefings in both English and Chinese. The result is a trustworthy, customizable daily briefing that respects your sources, your thresholds, and your own taste.
Screenshots The Horizon project showcases visual evidence of its daily briefings and contextual depth:
- Ranked Daily Briefing overview:

- Context, Summary & Discussion:

Additional visuals capture the practical uses of Horizon:
- Terminal Output:

- Feishu Notification:

- Email Delivery:

A Featured Partner Horizon is supported by a community of collaborators, including Compshare. Their logo and partnership are highlighted here:
- Compshare / 优云智算:

Why Horizon Stands Out
Good news is scattered; bad news is endless. Horizon answers this truth by giving you a personal first pass over multiple information streams—the way you read, not just what you read. It is not a mere summarizer. AI excels at reducing noise, but the human touches matter: trusting sources, valuing the comments that alter your understanding, and discovering hidden gems that only a community can reveal. Horizon keeps that human layer in the loop through a flexible, configurable pipeline that blends automation with discernment.
Key motivations behind Horizon include:
- A unified pipeline for diverse sources: Hacker News, RSS, Reddit, Telegram, Twitter/X, GitHub, and OpenBB financial feeds all feed into one coherent briefing.
- A ranking system that filters noise: stories are scored and filtered using Claude, GPT, Gemini, DeepSeek, Doubao, MiniMax, Ollama, or any OpenAI-compatible API.
- De-duplication across platforms: the same story appearing in multiple places is merged so you don’t see duplicates.
- Contextual enrichment: background information about unfamiliar concepts, companies, projects, and technical terms is added to each item.
- Community-aware summaries: the pipeline can collect and summarize relevant comments from Hacker News, Reddit, and other sources.
- Bilingual reach: daily briefings can be generated in both English and Chinese from the same sources.
- A portable, publishable briefing: the output can become a GitHub Pages daily briefing site, an email, or a webhook-ready payload for your automation stack.
- A human-forward philosophy: Horizon invites customization, translating your interests into a radar that evolves with you.
Core Features That Shape Your Reading Experience
Watch Your Own Sources: Horizon tracks a broad array of signals in one place. You can monitor Hacker News, RSS feeds, Reddit communities, Telegram channels, Twitter/X activity, GitHub releases or user events, and even OpenBB financial news watchlists. The system is designed to be a single pipeline that centralizes your preferred sources so you don’t have to juggle multiple apps or dashboards.
Turn Noise Into a Reading List: Each item is scored on a 0-10 scale using AI models such as Claude, GPT, Gemini, DeepSeek, Doubao, MiniMax, Ollama, or any OpenAI-compatible API. This scoring helps you focus on what matters, trimming away the fluff while preserving items that align with your interests and risk tolerance.
Merge Repeated Stories: Deduplication is built in so the same story that appears across different platforms is recognized as one item. This keeps your briefing concise and prevents redundancy from polluting your daily read.
Understand the Background: Horizon enriches items with web-researched context. You’ll see background information about unfamiliar concepts, companies, projects, and technical terms, making each briefing more informative and actionable.
Read the Conversation: Community voices matter. Horizon collects and summarizes discussions from Hacker News, Reddit, and other supported sources so you can quickly gauge opinions, debates, and consensus.
Publish in Two Languages: The same source set can fuel both English and Chinese daily briefings, offering a bilingual experience that broadens accessibility without duplicating effort.
Ship a Daily Site: The generated Markdown can be published as a GitHub Pages daily briefing site. This creates a stable, shareable, and accessible archive of your daily briefing.
Deliver by Email: Horizon supports self-hosted SMTP/IMAP email delivery, with automatic subscribe/unsubscribe handling. This makes your briefing a familiar, comfortable channel for daily reading.
Push to Chat or Automations: Share results via Feishu/Lark, DingTalk, Slack, Discord, or any custom webhook endpoint. Horizon integrates with your collaboration tools so you can discuss important items in real time.
Start From Your Interests: The setup wizard asks about your topics and preferences, then generates a personalized source configuration. It’s a guided path to a radar that truly fits your curiosity.
Tune the Radar: A single JSON config lets you customize sources, thresholds, models, languages, and delivery channels. You have one control center for the radar’s behavior, from data intake to delivery.
How Horizon Works: A Clear, Reproducible Flow
The Horizon pipeline is designed to be transparent and controllable. Here is a concise walk-through of the essential steps:
1) Define — Configure sources, thresholds, models, languages, and delivery from one JSON config. This single source of truth orchestrates how Horizon runs.
2) Fetch — Pull the latest content from all configured sources concurrently. Horizon doesn’t wait on one feed at a time; it gathers everything in parallel for speed and coherence.
3) Deduplicate — Merge items that point to the same story or URL across platforms. Deduplication ensures your briefing remains focused and free from repetition.
4) Score & Filter — Use AI to rank items and keep only those that pass your threshold. This step narrows the field to what truly deserves your attention.
5) Enrich — Search the web for background context and collect community discussion for important items. Enrichment helps you understand why something matters and how it’s being discussed.
6) Summarize — Generate a structured Markdown briefing with summaries, tags, and references. The final briefing is readable, scannable, and ready to publish or share.
7) Deliver — Publish the result to GitHub Pages, email, webhooks such as Feishu, MCP, or local files. Delivery is flexible, enabling a workflow that fits your routines.
A Quick Start Guide: Getting Horizon Up and Running
Option A: Local Installation (Recommended for testing and customization)
- Install with uv (recommended):
- git clone https://github.com/Thysrael/Horizon.git
- cd Horizon
- uv sync to install dependencies by default
- uv sync --extra dev to include test/development extras
- If you want the optional OpenBB financial-news source:
- uv sync --extra openbb
- If wheels aren’t available for some packages:
- 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
- Run with Docker Compose:
- docker compose run --rm horizon
- Or run with a custom time window:
- docker compose run --rm horizon --hours 48
Option A: Interactive Wizard (Recommended)
- uv run horizon-wizard
- Answer questions about your interests (for example, "LLM inference," "web security"), and Horizon will auto-generate data/config.json.
Option B: Manual Configuration
- Copy and customize:
- cp .env.example .env
- cp data/config.example.json data/config.json
- Minimal manual configuration example (illustrative):
- { "ai": { "provider": "openai", "model": "gpt-4", "apikeyenv": "OPENAIAPIKEY" }, "sources": { "rss": [ { "name": "Simon Willison", "url": "https://simonwillison.net/atom/everything/" } ] }, "filtering": { "aiscorethreshold": 6.0 } }
- Note: apikeyenv should be the environment variable name, not the key itself. Put secrets in .env:
- OPENAIAPIKEY=sk-your-key
- Gemini users can switch providers with:
- "provider": "gemini", "model": "gemini-2.0-flash", "apikeyenv": "GOOGLEAPIKEY"
Run and Publish
- Local installation: uv run horizon
- With a longer time window: uv run horizon --hours 48
- Docker: docker compose run --rm horizon
- Horizon saves the generated report to data/summaries/
Automating with GitHub Actions
- Horizon supports being run as a cron job via GitHub Actions. See .github/workflows/daily-summary.yml for a ready-to-use workflow that generates and deploys your daily briefing to GitHub Pages automatically.
Where Your Briefing Goes: Channels and Delivery
Horizon recognizes multiple delivery endpoints, letting you choose how you want to receive and share your briefings:
- GitHub Pages Daily Site: The generated Markdown is copied into docs/ so GitHub Pages can publish a daily-updated site.
- Email Subscription: The daily briefing is emailed to subscribers while handling subscribe/unsubscribe requests through SMTP/IMAP.
- Webhook Notification: Successes or failures can be pushed to Feishu/Lark, DingTalk, Slack, Discord, or any custom webhook endpoint.
- MCP Server: Horizon’s pipeline steps are exposed as tools so AI assistants can fetch, score, filter, enrich, summarize, and run the entire workflow.
Supported Sources: A Rich Set of Feeds
- Hacker News: Top stories by score, with access to top comments.
- RSS / Atom: Any RSS or Atom feed.
- Reddit: Subreddits and user posts, including top comments.
- Telegram: Public channel messages.
- Twitter / X: Tweets from specific users, with top replies.
- GitHub: User events and repository releases.
- OpenBB: Financial news via watchlists and providers.
A bilingual, globally accessible briefing is a central tenet of Horizon, with English and Chinese output generated from the same source set.
Where Horizon is Supported and Who Backing It
Horizon is a community-maintained open-source project. Support, suggestions, and feature requests are welcome. If you’d like Horizon to be listed here or contribute, you can open an issue or reach out via email.
- Compshare is a current supporter: Compshare / 优云智算 is highlighted as a partner that offers AI cloud platform services, including model agents and enterprise-grade support. Their logo presence signals collaboration and shared goals.
Documentation and Reference
Horizon’s documentation provides a comprehensive map of capabilities and configuration:
- Configuration: Defines AI providers, sources, filtering, email, webhook, GitHub Pages, and MCP setup.
- Scoring: Explains how Horizon evaluates and ranks items.
- Scrapers: Details about source scrapers and extension notes.
- MCP Tools: Tool references for MCP-compatible clients.
Project Status: What Horizon Supports Today and What’s Planned
Current 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 a setup wizard.
Planned improvements
- More source types (e.g., Discord).
- Custom scoring prompts per source.
- Publish releases on GitHub.
- Publish the package to PyPI for pip installability.
Contributing and Sharing Sources
Contributions from the community are welcome. If you’d like to share valuable sources with the Horizon community, you can submit them through the Horizon platform or project pages. A dedicated spotlight invites contributors to share diverse and valuable feeds and signals.
- Share Sources: Horizon welcomes new sources from users and developers to broaden the radar’s horizons. A community-driven approach helps Horizon stay current and useful.
- You can submit suggestions and discoveries via community channels, or share sources through provided links and forums as described in the project guidelines.
Acknowledgements
Horizon acknowledges several collaborators for guidance and promotion:
- Linux.D0: Providing a promotion platform and collaboration support.
- HelloGitHub: Offering valuable guidance and suggestions.
- AIGC Link: Promotions on XiaoHongShu and related communities.
License
Horizon is released under the MIT license, encouraging openness, reuse, and community-driven improvement:
Closing Thoughts
Horizon embodies a practical philosophy for handling information in the modern era: keep the human in the loop, empower personalized curation, and deliver timely, contextual reading in a way that respects your time and your sources. The dual-language capability makes Horizon accessible to broader audiences, while its modular, configurable pipeline lets you tailor it to your exact needs. Whether you’re a developer seeking a robust pipeline for your own AI-assisted news flow or a curious reader who wants a reliable, multilingual briefing, Horizon offers a flexible, thoughtful solution.
In practice, Horizon is more than a tool—it’s a reading assistant that understands what you care about, why it matters, and how your community is talking about it. It respects your workflow, integrates with the channels you already use, and scales with your curiosity. The included visuals and samples in the project illustrate a working, end-to-end briefing system in action, from source ingestion to final delivery. If you’re ready to build your own AI-powered newsroom, Horizon invites you to begin with the setup wizard, tune the configuration, and start receiving a daily briefing that makes sense to you—both in English and Chinese.
Enjoying this project?
Discover more amazing open-source projects on TechLogHub. We curate the best developer tools and projects.
Repository:https://github.com/Thysrael/Horizon
GitHub - Thysrael/Horizon: Horizon: AI-Powered News Radar
Horizon: Your AI-powered News Radar. A personal AI-driven news radar designed to bring order to the flood of information, summarizing and enriching feeds from H...
github - thysrael/horizon
