Horizonで自分の情報源を読むデイリーブリーフィングを作る
プロジェクト概要:AI を活用した独自のニュース レーダー。毎日のブリーフィングを英語と中国語で生成します。 | AI 。
ひと目でわかる
- これは何?
- Thysrael/Horizonは、複数のニュース源を取得し、重複排除、スコアリング、背景補完、コメント要約を行い、英語と中国語の毎日レポートを配信するPython製ニュースレーダーです。
- 誰に向いている?
- Horizonは、Hacker NewsやRSSやRedditなど自分で選んだ情報源を一つの処理パイプラインへ集め、毎日の読む順番を作りたい人に向きます。READMEは取得、重複排除、分析、背景補完、英語と中国語の要約、PagesやメールやWebhookへの配信を説明していますが、AIの判断を人の編集やニュースの原典確認に置き換えるものではありません。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 1 日前です。
- 何の言語で書かれている?
- 主に Python です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
情報源を自分で選ぶニュースレーダー
HorizonはPythonで書かれたAI搭載の個人向けニュースレーダーです。Hacker News、RSSとAtom、Reddit、Telegram、Twitter/X、GitHub、OpenBBの金融ニュースを監視し、英語と中国語のデイリーブリーフィングを生成します。READMEは、散らばった良いニュースと増え続ける情報を個人向けの最初のフィルターで読むという位置づけを示しています。
取得した項目は重複排除、スコアリング、フィルタリングを通り、背景情報やコミュニティの議論で補われます。情報源、処理プロファイル、モデル、言語、配信経路、コメント要約、コミュニティのソースハブを調整できる一方、最終的な重要度の判断を完全に自動化する製品だとは説明されていません。
取得から配信まで七段階で見る
READMEの流れはDefine、Fetch、Deduplicate、Analyze and Filter、Enrich、Summarize、Deliverの七段階です。最初に情報源、処理プロファイル、モデル、言語、配信を定義し、設定済みの全ソースから並行して取得します。同じ記事やURLを指す項目を統合した後、プロファイルのプロンプトと利用者の閾値で分析と選別を行います。
エンリッチでは許可されたツールだけで内容ブロックを生成し、要約段階でローカライズされたタイトル、リード、章、引用元をMarkdownへ整えます。最後にGitHub Pages、メール、Webhook、MCP、ローカルファイルへ届けます。各段階が成功しても原典が正しいとは限らないため、引用先と要約の対応を読む工程を残すことが必要です。
七種類のソースとコメントの扱い
対応表には、Hacker Newsの上位ストーリー、任意のRSSとAtom、Redditのサブレディットとユーザー投稿、Telegramの公開チャンネル、Twitter/Xの指定ユーザー、GitHubのユーザーイベントとリポジトリリリース、OpenBBのウォッチリストとプロバイダーによる金融企業ニュースが並びます。ソースごとに取得できる情報の粒度と規約が違うため、一つのフィルター設定を全てへ適用するとは限りません。
コメント収集に対応するのはHacker News、Reddit、Twitter/Xの三つです。表にはtop Nコメントやtop Nリプライとありますが、Nの具体値はREADMEにありません。Telegram、GitHub、OpenBBのコメント対応も資料には書かれていません。コメント要約を本文の事実と混ぜず、投稿、原典、AIによる解釈を分けて表示するのが妥当です。
ウィザードとJSON設定を使い分ける
対話式のhorizon-wizardは、LLM推論、組み込み、Webセキュリティなどの関心を尋ね、data/config.jsonを自動生成します。手動設定では、AIプロバイダー、モデル、APIキーの環境変数名、RSSのURLとプロファイル、processingの既定プロファイルと閾値を記述します。文字列の${VAR_NAME}参照も使え、実際の秘密値は.envへ置く構成です。
任意のdigestブロックは最終レポートの大きさを制限し、単一カテゴリの独占を防ぎます。グループ制限はプロファイルによるフィルタリング後、エンリッチ前に適用されます。自動生成された設定をそのまま信頼せず、ソースURL、モデル名、閾値、APIキーの読み込み、保存先をレビューし、不要なソースを切ってから実行してください。
uv、pip、Dockerと日次実行
インストール経路は、git clone後にuv syncを使う方法、pip install -e .、Docker Composeです。dev extraでpytestなどの開発依存関係、openbb extraでOpenBB金融ニュース源を追加できます。OpenBBの依存物に環境のwheelがない場合の手動導入例もあります。Dockerでは初回前にtrafilaturaやopenbbなどのextraをビルド引数で指定します。
起動はuv run horizonで、hours、data-dir、config、log-levelのオプションがあります。結果はdata/summaries、指定したデータディレクトリならその下のsummariesへ保存されます。GitHub Actionsのdaily-summary.ymlを定期実行し、GitHub Pagesへ自動配備する例もありますが、スケジュール、API制限、失敗時の通知、保存データの削除は自分の運用として設計してください。
Pages、メール、Webhook、MCPへ届ける
生成したMarkdownはdocsへコピーしてGitHub Pagesのサイトとして公開できます。メール経路はSMTPとIMAPを使うセルフホスト型ニュースレターで、購読と解除の要求を自動処理します。WebhookはFeishuとLark、DingTalk、Slack、Discord、任意のカスタムエンドポイントへ結果を送れます。
MCPサーバーは取得、スコアリング、フィルタリング、エンリッチ、要約、全体ワークフローをツールとしてAIアシスタントへ公開します。配信先が増えるほど、記事本文、URL、APIキー、購読者情報の境界が広がります。まずローカルファイルだけで生成物を確認し、引用、言語、個人情報、失敗時の再送を点検してから外部配信を有効にするのが安全です。
現行機能と未実装ロードマップを分ける
プロジェクトステータスでは、複数ソース収集、プロファイル駆動の分析とエンリッチ、重複排除、コメント要約、二言語生成、Pages、メール、Webhook、Docker、MCP、セットアップウィザードを実装済みのループとして説明しています。一方、Discordソース、GitHub Releases公開、PyPI公開は計画中です。計画項目を現在の機能として紹介しないことが重要です。
メタデータではMITライセンス、スター9058、フォーク1397、オープンIssue3、既定ブランチmainが確認できます。MITはコードの利用、変更、配布を扱いますが、ニュースの正確性、AI要約の品質、配信の可用性、セキュリティ体制を保証しません。編集部の判断では、少数の信頼できるソースで原典リンクと生成ログを確認できる人に適した道具です。
編集部の結論
Horizonは、Hacker NewsやRSSやRedditなど自分で選んだ情報源を一つの処理パイプラインへ集め、毎日の読む順番を作りたい人に向きます。READMEは取得、重複排除、分析、背景補完、英語と中国語の要約、PagesやメールやWebhookへの配信を説明していますが、AIの判断を人の編集やニュースの原典確認に置き換えるものではありません。まず少数のソースと一つのプロファイルで、APIキー、コメント量、引用、保存先、配信先を確認し、結果を読んでから対象を増やしてください。
コミュニティノート