Horizon is a Python-based, self-hosted AI news radar that aggregates sources, deduplicates, analyzes with configurable profiles, and delivers via Markdown site, email, or webhooks. It supports English/Chinese briefings and multiple delivery channels.
Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).
What it is
Horizon is an AI-powered news radar that generates daily briefings in English and Chinese. It aggregates content from sources such as RSS, Hacker News, Reddit, Telegram, Twitter/X, GitHub, and OpenBB, then deduplicates, scores, enriches, and summarizes items into a Markdown briefing. It can publish to GitHub Pages, send via email, and push to webhooks or MCP.
How it works
The README describes a pipeline: Configure sources, profiles, models, languages, and outputs; Fetch content from configured sources; Deduplicate items across platforms; Analyze and filter with a chosen profile; Enrich with contextual blocks; Summarize into a Markdown briefing; Deliver to outputs (site, email, webhook, MCP).
Getting started
Install options:
"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 ."
If you want the optional OpenBB source:
"uv sync --extra openbb"
For OpenBB without wheels:
"uv pip install --only-binary=:all: openbb openbb-benzinga"
Docker option:
"git clone https://github.com/Thysrael/Horizon.git" "cd Horizon" "docker compose build --build-arg EXTRAS=trafilatura horizon"
Configure options:
Interactive wizard (recommended):
"uv run horizon-wizard"
The wizard auto-generates data/config.json. See Interactive Wizard docs for CLI options.
Manual configuration:
"cp .env.example .env # Add your API keys" "cp data/config.example.json data/config.json # Customize your sources"
Minimal configuration example is provided in JSONC format covering ai provider, sources, and processing profiles.






