Horizon

Build a self-hosted AI news radar to fetch, filter, and summarize content from Hacker News, Reddit, RSS, and more into a daily briefing.

Build a self-hosted AI news radar to fetch, filter, and summarize content from Hacker News, Reddit, RSS, and more into a daily briefing.

The gist

Horizon is an open-source, AI-powered news radar. It addresses information overload by aggregating content from sources like Hacker News, Reddit, RSS, and GitHub. The tool fetches, deduplicates, and uses a large language model to score and filter stories based on user preferences. It then enriches the most relevant items with background context and community discussion summaries, generating a personalized daily briefing to help users focus on news that matters to them.

What it does

  • Aggregate content from sources like Hacker News, RSS, Reddit, Telegram, Twitter/X, and GitHub.
  • Score and filter news items using LLMs such as Claude, GPT, Gemini, or any OpenAI-compatible API.
  • Deduplicate stories that appear across multiple platforms before generating a briefing.
  • Summarize community comments from Hacker News and Reddit for key stories.
  • Enrich important stories with web-researched background context for unfamiliar concepts.
  • Publish daily briefings as a static website using GitHub Pages or deliver them via email and webhooks.

How it works

Horizon is a self-hosted Python application run via the command line or Docker. Users define sources, LLM providers, and filtering thresholds in a JSON configuration file. The tool then fetches content, uses the specified AI model to score and summarize it, and outputs a daily briefing in Markdown format. The briefing can be published to GitHub Pages, delivered via a self-hosted newsletter, or pushed to a webhook. The project is open-source and free to use.

Best for

This tool is best for developers and technical users who want to create a personalized, automated daily news digest from a wide range of online sources without manually checking each site.

Watch out for

Setup is technical, requiring comfort with the command line, editing JSON configuration files, and managing API keys for language models and other services. It is not a point-and-click web application.