Claude を使った Telegram リレー(claude-telegram-relay)
概要
Claude Code CLI をバックエンドにした「常時稼働の Telegram ボット」を最小構成で実現するリファレンス実装です。Telegram から受け取ったメッセージをトリガーに claude -p(対話モード)プロセスを起動し、その出力を Telegram に返す、というシンプルなリレー動作を TypeScript で実装しています。クロスプラットフォーム向けにデーモン化の例も含まれており、プロトタイプや学習用途に適しています。README には「参照実装でありそのままコピーして使うものではない」旨が明記されています。
リポジトリの統計情報
- スター数: 11
- フォーク数: 5
- ウォッチャー数: 11
- コミット数: 2
- ファイル数: 8
- メインの言語: TypeScript
主な特徴
- Telegram ボットで受信したメッセージをトリガーに Claude Code CLI を起動して応答を返す単純明快なリレー構成
- TypeScript 実装でコードの可読性と型安全を確保
- クロスプラットフォームのデーモン化(常駐プロセス)セットアップ例を同梱
- 参照実装として設計され、実運用向けにカスタマイズしやすい構成
技術的なポイント
このプロジェクトの核は「TCP/HTTP 経由ではなく、ローカルで動く Claude Code の CLI を Telegram とつなぐ」点にあります。実装は Telegram の Bot API(Webhook ではなく Long polling など想定)でメッセージを受け取り、受信ごとに Node/TypeScript プロセスが child_process.spawn 相当で claude -p を立ち上げて対話を行います。CLI を直接叩くため、API キー管理やネットワーク要件が不要な一方で、プロセス管理・入出力ストリームの正しい扱い(stdout/stderr の読み取り、プロセス終了時のクリーンアップ)が重要になります。
またデーモン化のサンプルが含まれており、システムの再起動後もボットを常時稼働させるための仕組み(systemd や launchd、クロスプラットフォームの起動スクリプト想定)が示されています。TypeScript を採用しているため、環境変数(.env)でのシークレット管理、型定義を活かしたエラー抑止、非同期処理の明確化が可能です。
設計上の注意点としては、メッセージごとに CLI を生成するため、短時間に大量リクエストが来るとプロセスの多重生成・リソース競合が起きやすいこと、また Claude CLI の出力が長い場合のストリーミング処理、部分応答の扱い、タイムアウトや例外時のユーザー通知などの追加実装が必要になります。実運用ではキューイングやプロセスプール、ログの永続化、レート制御、セキュリティ(Telegram トークンやホスト上のアクセス制限)を追加することで安定性を高められます。本リポジトリは「どう繋ぐか」の最小構成を示すものなので、ここから監視・スケーリング・エラーハンドリングの層を設計していくのが推奨です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .env.example: file
- .gitignore: file
- LICENSE: file
- README.md: file
- daemon: dir
…他 3 ファイル
まとめ
Claude CLI を Telegram に繋ぐ最小限の設計パターンを学べる参照実装です。(50字程度)
リポジトリ情報:
- 名前: claude-telegram-relay
- 説明: Minimal pattern for running Claude Code as an always-on Telegram bot. Cross-platform daemon setup included.
- スター数: 11
- 言語: TypeScript
- URL: https://github.com/godagoo/claude-telegram-relay
- オーナー: godagoo
- アバター: https://avatars.githubusercontent.com/u/124162586?v=4
READMEの抜粋:
Claude Code Telegram Relay
A pattern for running Claude Code as an always-on Telegram bot.
This is a reference implementation, not a copy-paste solution. Take the patterns here and build your own system tailored to your needs.
What This Is
A minimal relay that connects Telegram to Claude Code CLI. You send a message on Telegram, the relay spawns claude -p, and sends the response back. That’s it.
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Telegram │...