Claude を使った Telegram リレー(claude-telegram-relay)

Tool

概要

Claude Code CLI をバックエンドにした「常時稼働の Telegram ボット」を最小構成で実現するリファレンス実装です。Telegram から受け取ったメッセージをトリガーに claude -p(対話モード)プロセスを起動し、その出力を Telegram に返す、というシンプルなリレー動作を TypeScript で実装しています。クロスプラットフォーム向けにデーモン化の例も含まれており、プロトタイプや学習用途に適しています。README には「参照実装でありそのままコピーして使うものではない」旨が明記されています。

GitHub

リポジトリの統計情報

  • スター数: 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字程度)

リポジトリ情報:

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   │...