mcpField
S
Summarix

Summarix

ローカル
github.com/AndreySukhanovコミュニケーション05 日前に更新

Summarix について

Summarixは、多数のTelegramチャンネルをフォローする人向けのセルフホスト可能な要約ツールで、非公開チャンネルも読めます。出典リンク付きのダイジェストを作成し、ボット、Claude Codeプラグイン、CLI、MCPサーバーとして利用できます。

主な機能

  1. 01公開・非公開チャンネルの読み取り
  2. 02投稿リンク付き要約
  3. 03画像や図表のキャプション生成
  4. 04トピックごとの投稿統合
  5. 05チャンネルの検索と発見
  6. 06ダイジェストのMarkdown出力

活用シーン

  1. 01フォロー中のチャンネルの日次ダイジェストを受け取る
  2. 02要約の各項目に対応する投稿を確認する
  3. 03フォロー中のチャンネルから話題を検索する

MCP 対応

MCPサーバーは、投稿取得や検索を含む8つのツールでTelegramの収集機能を提供します。ユーザー自身のTelegramアカウントで読み取り、既読マークは変更しません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"andreysukhanov-summarix-telegram": {
"command": "uvx",
"args": [
"summarix-telegram"
],
"env": {
"SUMMARIX_HOME": "<SUMMARIX_HOME>"
}
}
}
}
起動コマンドuvx summarix-telegram
設定が必要な環境変数
SUMMARIX_HOMEFolder with your .env (TG_API_ID, TG_API_HASH) and data/; log in there once: tgdigest login

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisummarix-telegram1.2.1

ツール

8

掲載時のツール一覧 · 5 日前に更新

このツールにパラメーターはありません。

詳細

Summarix — 個人向け Telegram チャンネルダイジェスト

📰 Summarix

Telegram チャンネルをあなたに代わって読み、毎日短いダイジェストにまとめます。すべての要点から元の投稿にリンクします。

English | Русский

Summarix はセルフホスト可能な Telegram チャンネル要約ツールです。Telegram ボット、Claude Code プラグイン、MCP サーバーで構成され、あなたがフォローしている Telegram チャンネル(プライベートチャンネルも含む)を AI で要約し、すべての投稿へのリンク付きで、短いダイジェストにまとめます。

「また別の要約ボット」ではありません。 Summarix は、あなた自身のアカウントを使ってフォロー中のチャンネルを読み取ります。プライベートチャンネルやアルバムも対象に、画像にはキャプションを付け、各チャンネルを引用付きの箇条書き数件にまとめ、その日の注目ポイントを選んで、1 つのメッセージでお届けします。すべての要点から元の投稿に戻ることができ、モデルが作り出した URL が紛れ込むこともありません。

あなたのチャンネル → 新着投稿 → 画像のキャプション → チャンネルごとに引用付きの箇条書き 2~6 件 → 注目ポイント → 1 件のメッセージ。セルフホスト可能。1 日あたり数セント。

CI Python PyPI aiogram Telethon LLM PRs Welcome License

クイックスタート · 3 つの使い方 · 得られるもの · 仕組み · 機能 · コマンド · Claude Code プラグイン · MCP サーバー · FAQ · プライバシー


💡 問題点

30 個のチャンネルをフォローしているのは、それぞれに価値のある投稿が時々あるからです。ところが実際には、未読件数が数百件に膨れ上がり、重要な投稿は広告や相互宣伝に埋もれ、そのほとんどがニュースではないと分かるまで、毎日 1 時間もスクロールすることになります。

要約ボットはこの問題を解決すると謳っていますが、同じ壁にぶつかります。プライベートチャンネルを読めず、画像やグラフを見落とし、障害時に投稿を取りこぼし、要約の根拠を確認する手段もありません。

Summarix は、フォローしている内容をすべて読み、時間をかける価値のある情報を、根拠とともにお届けします。


🔥 選ばれる理由

スクロールする、または一般的なダイジェストツールSummarix
1つの話題、5つのチャンネルどのチャンネルでも同じニュースが5回表示されます話題ごと:各チャンネルの投稿に関連付けた1つの要点。引用された事実が抜けたり、投稿が追加されたりするグループ分けはコードが拒否します
信頼性モデルがリンクを作成するか、チャンネルごとにリンクが1つあります各箇条書きに投稿番号が記載され、リンクはコードが作成します。そのため、捏造されたURLが表示されることはありません
画像とグラフ省略されるか、[photo] というプレースホルダーが表示されます画像認識モデルがキャプションを付けます。画像だけの投稿も対象で、1回の実行あたりのコスト上限も設定できます
失敗への対応固定の時間枠では、実行に失敗したり遅れたりすると投稿が漏れます既読マークは配信後にのみ更新されます。未処理の投稿は古いものから届き、読み取りに失敗したチャンネルは致命的なエラーにならず、一覧に表示されます
ノイズプレゼント企画やプロモーションもすべて読み上げられます/mute giveaway, crypt — ミュートした投稿はモデルに届かず、コストもかかりません
文体中立的な文体のみ13種類のスタイルと独自のプロンプトに対応し、5言語で要約できます
チャンネルの発見すでに知っているチャンネルだけが対象です/find で、登録者数、月間投稿数、話題の共有度を確認しながら新しいチャンネルをリアルタイムで検索できます。/search ではクエリを拡張して自分のチャンネル全体を検索できます
プライベートチャンネルホスト型ダイジェストボットでは、公開チャンネルのみ無料で、プライベートチャンネルは有料プラン限定です自分のアカウントを使って読み取ります(Telethon)。プライベートチャンネルやアルバムにも無料で対応します
実行環境ボットまたはスクリプト1つのエンジンを4つの方法で利用できます:Telegram ボット、オプションのパネルを備えた Claude Code プラグイン、MCP サーバー、CLI。すぐに使える Docker イメージまたは pipx に対応します
コストとデータ自分のフィードが他人のサーバーに保存されますセルフホスト可能:名前と既読マークだけを保存する SQLite、OpenAI 互換モデルまたはローカルモデルに対応。すべてのダイジェストを Obsidian の保管庫に Markdown として保存できます

🎬 得られるもの

ダイジェストの例(チャンネルとニュースは架空です):

Digest · 13.09.2026
Channels with news: 3 · posts: 27

Highlights
• OpenAI shipped a cheaper vision model (AI Weekly)
• Central bank kept the key rate at 16% (Markets)
• ...

AI Weekly
• A new small vision model is priced 4x below the previous one; benchmarks in the post show it on par for OCR (1, 4)
• Two posts about an agent framework release - mostly a changelog (2, 3)

Markets
• ...

角括弧内の数字は投稿へのリンクです。モデルが引用するのは投稿番号だけで、ボットがリンクに変換します。すべての行をワンタップで確認できます。


⚙️ 仕組み

flowchart LR
    A[📡 Your channels<br/>Telethon · your account] --> B[🆕 New posts<br/>since the last delivered digest]
    B --> C[🖼 Image captions<br/>vision model · cost cap]
    C --> D[✍️ Per-channel summary<br/>2-6 bullets citing post numbers]
    D --> E[⭐ Highlights<br/>top 3 across channels]
    E --> F[📬 One message<br/>then posts are marked read]
1回の実行の流れ
every day at DIGEST_TIME                      /digest, /digest 48
          │                                          │
          ▼                                          ▼
   for each channel: new posts since the last delivered digest
          │   Telethon, your account (private channels, albums)
          ▼
   images ──▶ vision model: one-line caption   (capped per run)
          ▼
   posts + captions ──▶ model: 2-6 bullets citing [post numbers]
          ▼
   2+ channels ──▶ model: top 3 highlights
          ▼
   HTML message(s) to you ──▶ only then posts are marked read
  • 失敗しても何も失われません。 既読マークが更新されるのは、ダイジェストの配信後です。クラッシュ、API エラー、送信失敗が発生した場合も、同じ投稿が次回処理されます。
  • 1つのチャンネルで問題が起きても、ダイジェスト全体には影響しません。 読み取れなかったチャンネルは、末尾に「読み取り不可」として表示されます。
  • 広告や相互プロモーションは要約プロンプトで除外されます。

デモのときだけでなく、うまくいかない日にも信頼できるように作られています。


✨ 機能

機能仕組み
📡あなたとして読み込み自分のアカウントで Telethon を使用し、公開・非公開のチャンネルを読み込みます。アルバムは1件の投稿として扱います。読み取り専用のため、投稿、参加、退出は一切行いません
🔗出典付きの箇条書きモデルは投稿番号だけを引用し、ボットがそれらをリンクとして表示するため、すべての主張が出典につながります
🖼画像のキャプション写真やチャートには、ビジョンモデルが1行のキャプションを付けます(必要なら、別の安価なモデルも使用できます)。実行ごとに上限があります
⭐注目トピック2つ以上のチャンネルからニュースを取得した場合、重要な項目の上位3件をダイジェストの冒頭に掲載します
🧩トピック別複数のチャンネルにまたがる1つの話題を、各チャンネルの投稿へのリンク付きで1つの項目にまとめます。コードでグループ化を検証し、引用された事実をすべて残し、投稿を追加していないことを確認します。検証に失敗した場合は、チャンネルごとにダイジェストを送信します
🔇単語フィルター/mute giveaway, crypt を指定すると、該当する単語を含む投稿を除外します。単語は先頭から一致するため、「crypt」は「cryptocurrency」もミュートします。ミュートされた投稿は料金がかからず、既読として扱われます
📝Markdown エクスポートDIGEST_EXPORT_DIR を設定すると、ニュースを含む各ダイジェストも Markdown ファイルとして保存されます。Obsidian の保管庫や同期済みのメモ用フォルダーに保存でき、投稿へのリンクも保持されます
🎭13種類のスタイル+独自のプロンプトDigest、Explainer、Insights、TL;DR、ELI5、Storytime、HotTake、Twist、Vibes、Meme、Conspiracy、Roast、Rickから選ぶか、独自のプロンプトを記述できます
🌍5言語対応チャンネルの投稿言語にかかわらず、ロシア語、英語、スペイン語、フランス語、カザフ語で要約します。インターフェースも同じ5言語に対応します
📁フォルダーからグループを作成t.me/addlist/… のフォルダーリンクを送信すると、その中のチャンネルが独自のダイジェストを持つグループになり、「My channels」の隣に表示されます
🔍/searchチャンネルが特定のトピックについて書いた内容を検索します。モデルは単語の語形や同義語を使ってクエリを拡張し、別の意味で単語が一致した検索結果を除外します
🧭/findトピックに関する新しい公開チャンネルを検索します。実際に投稿している運営中のチャンネルのみを対象とし、登録者数、月間投稿数、トピックに関する投稿の割合を表示します。➕で追加できます
⏰毎日のスケジュール/settings から時刻とタイムゾーンを設定できます。Celery も Redis も不要です
🧱投稿を失いません既読のマークは配信後にのみ付けられます。チャンネルごとの上限を超えた未処理投稿は、以降のダイジェストで古い順に届きます
🔐オーナー専用OWNER_ID 以外からの更新は、ハンドラーが実行される前にすべて破棄されます
🤖Claude Code プラグイン2つのコマンドで summarix-telegram スキルをインストールできます。独自のセッションとチャンネル一覧を使い、Claude Code 内でチャンネルの内容を再構成するため、ボットのダイジェストに漏れがありません
🔌MCP サーバーscripts/mcp_server.py:同じコレクターを8つのツールとして、Claude Desktop、Cursor、Claude Code など、あらゆる MCP クライアントから利用できます

🧭 3 つの使い方

基盤となるエンジンは 1 つです。Summarix は Telethon を使い、ご自身のアカウントでチャンネルを読み取ります。3 つの使い方の違いは、誰が要約を作成し、どこで読むかです。

BotClaude Code skillMCP server
読む場所Telegram のボットとのチャットClaude Code任意の MCP クライアント — Claude Desktop、Cursor、Claude Code
要約の作成者ご自身のキー(LLM_API_KEY)を使うボットClaude — モデルキーは不要クライアントのモデル — モデルキーは不要
実行タイミング毎日、設定した時刻に自動実行。さらに /digest でも実行「3 日分のダイジェスト」のように普通の言葉で依頼したときクライアントが fetch_posts、search_posts… を呼び出したとき
既読位置既読位置を進めます。次のダイジェストは今回の続きから始まります変更しません — N 時間分を読み取ります変更しません。skill と同じです
セットアップDocker または python run_bot.py、ボットトークン、OWNER_ID/plugin コマンドを 2 つclaude mcp add を 1 回、または Claude Desktop の設定に数行
おすすめの用途何も開かずにダイジェストを受け取るClaude Code での作業:「新着情報は?」や、その場での追加質問別のクライアント、または独自のツール

skill と MCP server の基盤は scripts/tgdigest.py です。こちらは CLI として自分で実行することもできます。ボットは独自のセッションとチャンネルリストを使用します。skill と MCP server はセッションとチャンネルリストを共有し、OS のファイルロックで保護され、同時に実行できるプロセスは 1 つです。

3 つすべてを使いましょう。ボットが朝のダイジェストを送り、Claude は「今月、私のチャンネルではスマートグラスについて何と言っていましたか?」に回答します。


🚀 クイックスタート

必要なものは 4 つです。

項目入手先
BOT_TOKEN@BotFather → /newbot。ダイジェストは、このボットとのチャットに届きます。
OWNER_ID@userinfobot。それ以外のユーザーは無視されます。
TG_API_ID、TG_API_HASHmy.telegram.org → API development tools。ボットがご自身としてチャンネルを読み取れるようになります。
LLM_API_KEY、LLM_MODELOpenAI、OpenRouter、DeepSeek、Qwen、または OpenAI 互換 API。モデルは画像を受け付ける必要があります。そうでない場合は DESCRIBE_IMAGES=false を設定してください。
# 1) Clone
git clone https://github.com/AndreySukhanov/summarix-telegram.git
cd summarix-telegram

# 2) Keys
cp .env.example .env            # fill in the keys

# 3) Once: log in to your Telegram account (phone, code, 2FA password)
docker compose run --rm bot python -m scripts.login

# 4) Run
docker compose up -d

Docker はすぐに使えるイメージ ghcr.io/andreysukhanov/summarix-telegram を取得します(amd64 と arm64 に対応。VPS、Raspberry Pi、Mac で利用できます)。ビルドは不要です。docker compose build を実行すると、代わりにソースからビルドします。

Docker を使わずに 1 つのコマンドでセットアップするには、pipx install summarix-telegram を実行します。その後、.env があるフォルダーで summarix-login を 1 回実行し、続けて summarix-bot を実行します(または SUMMARIX_HOME にそのフォルダーを指定します)。リポジトリを clone する場合は、pip install -r requirements.txt を実行してから、python -m scripts.login、続けて python run_bot.py を実行します。Windows では start_bot.bat が起動し、2 つ目のコピーの起動を拒否します。

次に、ボットを開いて Start を押し、チャンネルを追加します。


💬 コマンド

コマンド説明
/add @channel https://t.me/other t.me/+invite1つまたは複数のチャンネルを追加します。チャンネルの投稿を転送しても追加できます。また、t.me/addlist/… フォルダーのリンクを追加すると、フォルダー全体がグループとして追加されます
/channelsグループとそのチャンネルを表示します。チャンネルをタップすると削除でき、➕をタップするとグループに追加できます
/remove @channel or a t.me link削除します
/digest現時点で未読の投稿をダイジェストにまとめます(既読になります)
/digest 48過去48時間のまとめを表示します。既読にはなりません
/search smart glasses 14過去14日間(デフォルトは30日間)にチャンネルで話題になった内容を検索します
/find smart glasses話題に関連する新しい公開チャンネルを、統計情報とともに検索します
/settingsスタイル、カスタムプロンプト、ダイジェストの言語、インターフェースの言語、時刻、タイムゾーン、レイアウト(チャンネル別またはトピック別)、単語フィルターを設定します
/mute giveaway, promo, cryptこれらの単語を含む投稿をスキップします。/mute off でフィルターを無効にします
/statusモデル、次回のダイジェスト予定時刻、投稿数・画像数・トークン数を含む前回の実行結果を表示します

ボットメニューには、グループごとのダイジェスト、スタイルの切り替え、チャンネル一覧など、すべての機能のボタンがあります。

🔧 設定

すべて任意の設定で、.env に記述します。時刻、タイムゾーン、言語は初期値です。/settings からいつでも変更できます。

変数デフォルト
DIGEST_TIME / TIMEZONE09:00 / Europe/Moscow毎日のダイジェストが届く時刻
DIGEST_LANGUAGEruru、en、es、fr、kk のいずれか。チャンネルで使われている言語に関係なく、要約に使用する言語です
UI_LANGUAGEru同じ5言語から選択します。ボットのメッセージとボタンに使用する言語です
LLM_BASE_URLOpenAI例:https://openrouter.ai/api/v1
VISION_MODELLLM_MODEL画像の説明に使う、別の低コストなモデルです
DESCRIBE_IMAGEStrue写真を説明します。画像やグラフだけの投稿も対象です
MAX_IMAGES_PER_RUN20コスト上限です。この数を超える画像はスキップされます
LOOKBACK_HOURS24新しく追加されたチャンネルの最初のダイジェストで、どこまで遡って取得するかを指定します
MAX_POSTS_PER_CHANNEL60ダイジェストあたりのチャンネルごとの投稿数の上限です。これを超える未処理分は、スキップされず、次のダイジェストで古いものから順に届きます
DIGEST_EXPORT_DIR—ニュースを含む各ダイジェストを Markdown ファイルとして保存するフォルダーです(Obsidian の保管庫、メモ用フォルダーなど)。Docker では、exports は compose ファイルと同じ場所にある ./exports です

🤖 Claude Code プラグイン

ターミナルを離れずにチャンネルを読むことができます。Summarix は summarix-telegram スキルを備えた Claude Code プラグインとして提供されています。「チャンネルの過去3日分のダイジェスト」「ロースト調で先週の分」「チャンネルでスマートグラスについて何と言っていた?」「AI エージェントについてのチャンネルを探して」のように普通の言葉で尋ねると、Claude が投稿を集め、各投稿へのリンク付きで内容を伝え、追加の質問にも答えます。

/plugin marketplace add AndreySukhanov/summarix-telegram
/plugin install summarix-telegram@summarix-telegram

プラグインを使わず、スキルだけを使いたい場合は、skills/summarix-telegram を ~/.claude/skills/ にコピーしてください。同じファイルです。

このスキルは、このリポジトリのクローンで動作します。SUMMARIX_HOME にそのパスを設定するか、Claude に一度場所を伝えてください。.env に TG_API_ID / TG_API_HASH を設定し、自分のターミナルで python scripts/tgdigest.py login を実行して一度だけログインします。モデルキーは不要です。Claude が13種類のスタイルから選んでダイジェストを作成します。

独自の Telegram セッションとチャンネル一覧を使用し、最近の一定期間のみを読み取ります。ボットの既読位置が変わることはありません。ボットとプラグインを並行して実行しても、互いに干渉しません。

🪟 チャットの横に表示するダイジェスト(オプションの Mod)

Claude Code 2.1.287 以降では、もうひとつインストールすると、ダイジェスト専用のペインが表示されます。

/plugin install summarix-panel@summarix-telegram

スキルがダイジェストを作成すると、Claude はその内容もペインに表示します。各項目には引き続き投稿へのリンクが付いています。< Older / Newer > で過去 10 件のダイジェストをページ送りできます。ダイジェストはセッションをまたいで保存されます。24 h / 3 days / Week を押すと、新しいダイジェストをすぐに作成できます。/summarix-panel を実行すれば、いつでもペインを開けます。この Mod にキーは不要で、Telegram のデータを読み取ることもありません。詳細:mods/summarix-panel。

スキルを支えるスクリプトのコマンド
python scripts/tgdigest.py login                    # once: phone, code, 2FA
python scripts/tgdigest.py add t.me/addlist/slug    # a folder, @name, t.me/name, t.me/+invite
python scripts/tgdigest.py fetch --hours 24 --style tldr
python scripts/tgdigest.py search "smart glasses" --days 30
python scripts/tgdigest.py find "smart glasses" --top 10
python scripts/tgdigest.py styles

🔌 MCP サーバー

Claude Code をお使いでない場合も、同じコレクターを MCP サーバーとして実行できます。そのため、Claude Desktop、Cursor、Claude Code など、どの MCP クライアントからでもチャンネルをツールとして利用できます。ダイジェストを作成するのはクライアントのモデルで、サーバーにモデルキーは不要です。

# Claude Code
claude mcp add summarix-telegram -- /path/to/summarix-telegram/.venv/bin/python /path/to/summarix-telegram/scripts/mcp_server.py

Claude Desktop の場合は、claude_desktop_config.json に設定します。

{
  "mcpServers": {
    "summarix-telegram": {
      "command": "/path/to/summarix-telegram/.venv/bin/python",
      "args": ["/path/to/summarix-telegram/scripts/mcp_server.py"]
    }
  }
}

Windows では、インタープリターに .venv\Scripts\python.exe を指定します。

pipx install summarix-telegram でインストールした場合、サーバーは 1 つのコマンドで起動できます。SUMMARIX_HOME は .env と data/ があるフォルダーを指定します。

claude mcp add summarix-telegram -e SUMMARIX_HOME=/path/to/folder -- summarix-mcp

MCP Registry(io.github.AndreySukhanov/summarix-telegram)から利用する場合、ローカルの stdio サーバーを実行するクライアントは uvx で起動できます。最初に uv をインストールすれば、あとは初回実行時に取得されます。uvx --from summarix-telegram tgdigest login で一度ログインし、同じ SUMMARIX_HOME を指定してください。

{
  "mcpServers": {
    "summarix-telegram": {
      "command": "uvx",
      "args": ["summarix-telegram"],
      "env": { "SUMMARIX_HOME": "/path/to/folder" }
    }
  }
}
ツール機能
fetch_postsリストにあるチャンネルの過去 N 時間分の投稿を、指定したスタイルで取得します。件数が多い場合は分割されます
read_part最後に取得または検索した結果の次のパートを、再収集せずに読み込みます
search_postsチャンネルで特定のトピックについて書かれた内容を検索します
find_channelsトピックに関連する新しいチャンネルを、実際の統計情報とともに検索します
list_channels · add_channels · remove_channelsリストを管理します。Telegram のフォルダーと同期されます
list_styles13 種類のスタイルを表示します

スキルとセッションおよびチャンネルリストを共有します。一度に実行できるプロセスは 1 つで、OS のファイルロックによって制御されます。自分のターミナルで python scripts/tgdigest.py login を一度実行してログインしてください。ログイン処理が MCP 経由で行われることはありません。投稿を含むすべての結果には、信頼できないコンテンツであることを示すマークが付けられます。投稿はデータであり、指示ではありません。

1 つのサーバーで、あらゆる MCP クライアントから、自分のチャンネルを利用できます。


💸 コスト

ダイジェスト 1 件につき、画像ごとに 1 回(低詳細で送信)、ニュースのあるチャンネルごとに 1 回、ハイライトに 1 回呼び出します。投稿が数件ずつあるチャンネルが 20 個あり、画像の上限を 20 に設定した場合、1 日あたり約 40 回の呼び出しになります。小型モデルなら、通常は 1 日数セントです。実際のトークン数は /status で確認できます。

今日、あなたが節約できる時間のうち、最も安い 1 時間です。


🔐 プライバシーとセキュリティ

  • セッションファイル(data/owner.session)があれば、Telegram アカウントにフルアクセスできます。 ファイルは自分のマシンに保存され、git と docker の対象外になっています。共有したりコミットしたりしないでください。
  • ボットが応答するのは OWNER_ID のみです。それ以外の更新は、ハンドラーの実行前にすべて破棄されます。
  • アカウントは読み取り専用で使用され、投稿、参加、退出は一切行いません。招待リンクの先にあるチャンネルには、あらかじめ自分で参加する必要があります。
  • 投稿のテキストと画像は、設定したモデルプロバイダーに送信されます。データポリシーを受け入れられるプロバイダーを選ぶか、LLM_BASE_URL にローカルモデルを指定してください。
  • データはローカルの SQLite ファイルに保存されます。保存されるのはチャンネル名、グループ、既読マークのみで、投稿内容は保存されません。

フィードはあなたのものです。選んだモデルに送信するもの以外が、あなたのマシンから外部に送られることはありません。

📁 プロジェクトの構成
summarix_telegram/
  bot/
    main.py           wiring: settings, SQLite, Telethon, model, bot, scheduler, "/" menu
    handlers.py       commands, groups, digest per group, search and find
    settings_menu.py  /settings: style, prompt, languages, time, timezone, layout, word filter
    keyboards.py      reply and inline keyboards
    middlewares.py    owner-only gate
    texts.py          interface strings in five languages
  services/
    reader.py         Telethon: resolve channels and folders, fetch posts, albums, photos
    llm.py            prompts: image captions, channel summary, highlights, grouping by topic
    styles.py         13 styles, each with a prompt per digest language
    digest.py         build a digest by channel or by topic, mark read after delivery
    export.py         a Markdown copy of each digest with news
    search.py         /search query expansion and /find channel discovery
    scheduler.py      daily run in your timezone
    refs.py           parse @name, t.me links, invite and folder links
  database/           channels, groups, digest runs, settings
  scripts/
    login.py          one-time account login
    tgdigest.py       collector behind the Claude Code skill
    mcp_server.py     MCP server: the collector as tools
  utils/text.py       citations → links, safe HTML, splitting at 4096 chars, the word filter
  cli.py              summarix-bot and summarix-login of the pipx package
scripts/              the old paths keep working: scripts/tgdigest.py, scripts/mcp_server.py, python -m scripts.login
skills/summarix-telegram/  the Claude Code skill
mods/summarix-panel/  the optional panel mod for Claude Code
.claude-plugin/     plugin and marketplace manifests
tests/              offline: fake Telegram reader and fake model


🧪 テスト

pip install -r requirements.txt
pytest

ネットワーク接続なしで140件のテスト:リンクとフォルダーの解析、アルバムのグループ化、引用リンクとHTMLエスケープ、メッセージの分割、ローカル時間でのスケジュール設定、コミット後のみの既読マーク、要約対象期間、画像コストの上限、壊れたチャンネル、グループ、検索と検出、設定、tgdigestコンパニオン、MCP サーバー(スキーマと上限、収まるパーツ、古い結果が残らないこと、キャンセル後も維持されるロック、安全なエラー、分離されたプロトコルストリーム)、所有者限定のアクセス。CIでは、mainへのプッシュごとにflake8のチェックとあわせてテストを実行します。

❓ よくある質問

TelegramチャンネルをAIで要約するにはどうすればよいですか?

Summarixを起動し、フォローするチャンネルを追加します(/addまたはTelegramフォルダーのリンク)。ボットが1日1回、各チャンネルにつき2~6個の箇条書きでダイジェストを送信します。その日の注目情報が先頭に並び、各項目から投稿にリンクできます。/digestを使えば、いつでもダイジェストを取得できます。

複数のチャンネルにある同じニュースをまとめられますか?

はい。/settingsでレイアウト → トピック別を選択します。3つのチャンネルで取り上げられたニュースが、3つすべての投稿へのリンク付きで1つの項目になります。コードがグループ化をチェックし、引用された事実がすべて残っていること、投稿が追加されていないことを確認します。チェックに2回失敗した場合は、チャンネルごとにダイジェストを送信します。

非公開のTelegramチャンネルも要約できますか?

はい。ご自身のTelegramアカウント(Telethon)を通じて読み取るため、参加済みのチャンネルであれば、非公開チャンネルも利用できます。通常のボットは単独ではこれを行えません。

Telegramチャンネル向けのMCP サーバーはありますか?

はい。scripts/mcp_server.pyを使うと、任意のMCPクライアント(Claude Desktop、Cursor、Claude Code)で、ご自身のチャンネル向けに投稿の取得、続きの読み取り、検索、新しいチャンネルの検出、リストの管理を行う8つのツールを利用できます。MCP サーバーをご覧ください。

Claude Codeで使えますか?

はい。summarix-telegramプラグインを2つの/pluginコマンドでインストールし、自然な言葉で「チャンネルの過去3日分のダイジェスト」と尋ねてください。Claude Codeプラグインをご覧ください。

OpenAI APIキーは必要ですか?

ボットには必要です。OpenAI、OpenRouter、DeepSeek、Qwen、またはLLM_BASE_URLを介して接続するローカルモデルなど、OpenAI互換のAPIであれば利用できます。Claude CodeのスキルとMCP サーバーにはモデルキーは不要です。クライアントのモデルがダイジェストを作成します。

代わりにチャンネルへ投稿したり、参加・退出したりしますか?

いいえ。アカウントは読み取り専用で使用され、ボットが応答するのは所有者(OWNER_ID)のみです。

費用はいくらですか?

個人で実行する場合、かかるのはモデルのトークン費用だけです。20のチャンネルで1日あたり約40回の呼び出しとなり、小規模なモデルなら通常は数セントです。コードはソース公開されており、無料で読んだり、実行したり、学んだりできます。

対応言語は何ですか?

チャンネルの投稿言語を問わず、ロシア語、英語、スペイン語、フランス語、カザフ語で要約できます。ボットのインターフェースも同じ5言語に対応しています。

何が保存されますか?

チャンネル名、グループ、既読マークを含むローカルのSQLiteファイルが保存されます。投稿の内容は保存されません。


🤝 コントリビューション

このボットは、小さくて置き換え可能なパーツで構成されています。初めてのコントリビューションにおすすめの内容:

  • 新しいダイジェストスタイル — summarix_telegram/services/styles.pyにエントリーを1つ追加
  • 新しい言語 — summarix_telegram/bot/texts.pyにインターフェース文字列と、各スタイル用のプロンプトを追加
  • リーダーの機能 — tests/fakes.pyのTelegramクライアントを使ってテスト

CONTRIBUTING.mdをご覧ください。大きな変更については、まずissueを立ててください。設計について喜んで話し合います。


⭐ プロジェクトを応援する

このプロジェクトで時間を節約できたり、新しい発見があったりしたら、スターを付けてください。ほかの人がプロジェクトを見つける助けになります。

💜 開発を支援する

これは自己資金で運営しているプロジェクトです。すべてのダイジェスト、キャプション、検索で有料モデル API を使用しており、新しいスタイルはリリース前に実際のチャンネルでテストしています。寄付金はすべて、モデルのクレジットと新機能に充てられます。

USDT — TRC-20(Tron ネットワーク)

TERj89Gjf4qsMW7xyKQWGWtNmBQaDUPnnH

⚠️ このアドレスには、**TRC-20(Tron)**ネットワーク経由の USDT のみを送金してください。他のネットワーク経由で送金された資金は失われます。

USDT TRC-20 寄付用 QR コード

ありがとうございます。少額のご支援でも、ダイジェストの配信を続ける力になります。🙏


📄 ライセンス

ソース公開 — 無料で閲覧、実行、学習に利用できます。商用利用または派生物の利用には、書面による許可が必要です。LICENSE をご覧ください。

ライセンスに関するお問い合わせ:[email protected]


Python + aiogram + Telethon + OpenAI 互換モデルで構築

GitHub · LinkedIn · メール

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。