TelegramでClaude Codeのチャネルを設定する
Claude Codeのチャネルを使うと、Telegram、Discord、iMessageから、実行中のClaude Codeセッションにメッセージを送れます。Claudeはあなたのマシンで作業し、チャットで返信します。設定は5つのステップです。ボット、プラグイン、トークン、チャネルのフラグを付けた再起動、ペアリングです。注意点は、メッセージが届くのはセッションが開いている間だけだということです。そのため、Macは動き続けている必要があります。
チャネルとは
チャネルはMCPサーバーです。すでに動いているClaude Codeセッションに、イベントを送り込みます。双方向にもできます。Claudeはメッセージを読み、作業し、同じチャットで返信します。Anthropicのドキュメントでは、リサーチプレビューの対象としてTelegram、Discord、iMessageが挙がっています(code.claude.com/docs/en/channels、2026年10月)。
これはRemote Controlとは違います。Remote Controlでは、Claudeアプリから自分のセッションを操作します。チャネルは、ほかのプラットフォームからのメッセージを取り込みます。失敗したCIの実行などのWebhookも取り込めます。
必要なもの
- claude.aiのアカウントか、ConsoleのAPIキーでサインインしたClaude Code。Amazon Bedrock、Google Cloud、Microsoft Foundryではチャネルは使えません。
- TeamプランとEnterpriseプランでは、まず管理者がチャネルを有効にする必要があります。組織に属さないProとMaxのユーザーは、そのまま使えます。ドキュメントには、提供は段階的に広げているともあります。
- Bun。チャネルのプラグインはBunのスクリプトです。
- Telegramのチャネルには、BotFatherで発行したTelegramのボットトークン。
必要なものをインストールする
Claude CodeとBunを、それぞれの公式スクリプトでインストールします。
curl -fsSL https://claude.ai/install.sh | bash curl -fsSL https://bun.com/install | bash
TelegramでBotFatherを開き、newbotコマンドを送ります。名前と、botで終わるユーザー名を決めます。返ってきたトークンをコピーします。次にプラグインをインストールします。Claude Codeの中では、スラッシュコマンドで行います。
/plugin install telegram@claude-plugins-official
通常のシェルからなら、pluginのCLIで同じことができます。マーケットプレイスがなければ、先に追加します。
claude plugin marketplace add anthropics/claude-plugins-official claude plugin install telegram@claude-plugins-official
2026年10月2日に、GitHubホスト型のmacOS 26マシンで、ログインせずにこれらを実行しました。インストールは成功しました。出力は次のとおりです。
$ claude --version
2.1.287 (Claude Code)
$ bun --version
1.4.2
$ claude plugin install telegram@claude-plugins-official
Successfully installed plugin: telegram@claude-plugins-official (scope: user)
$ claude plugin list
telegram@claude-plugins-official
Version: 0.0.7
Scope: user
Status: enabledボットを接続してペアリングする
Claude Codeの中で、トークンを保存します。トークンは、Claudeの設定フォルダ内にあるchannelsのtelegramフォルダに保存されます。
/telegram:configure <token>
次に、いったん終了し、シェルからチャネルのフラグを付けてClaude Codeを起動し直します。
claude --channels plugin:telegram@claude-plugins-official
ボットに何かメッセージを送ります。ペアリングコードが返ってきます。Claude Codeでそのコードを承認し、ボットを自分のアカウント専用に制限します。
/telegram:access pair <code> /telegram:access policy allowlist
ここで戸惑いやすい点が2つあります。チャネルのフラグは、プレビュー期間中はヘルプの出力に表示されませんが、機能します。また、ターミナルに表示されるのは、届いたメッセージと送信済みの表示だけで、返信の本文は出ません。返信はTelegramに表示されます。
TelegramではなくDiscordを使う
Discordの手順も同じ流れです。Discord Developer Portalでアプリケーションを作り、ボットトークンをコピーします。Message Content Intentをオンにします。チャンネルの閲覧、メッセージの送信、履歴の閲覧の権限を付けて、ボットをサーバーに招待します。あとは同じように、インストール、設定、ペアリングを行います。再起動の行はシェルで実行します。それ以外の行はClaude Codeの中で実行します。
/plugin install discord@claude-plugins-official /discord:configure <token> claude --channels plugin:discord@claude-plugins-official /discord:access pair <code> /discord:access policy allowlist
channelsのフラグには、スペースで区切って複数のプラグインを渡せます。そうすれば、1つのセッションで両方のアプリからのメッセージを受け取れます。
セッションを24時間開いたままにする
イベントが届くのは、開いているセッションだけです。ターミナルを閉じたり、Macがスリープしたり、再起動したりすると、ボットは黙ります。対策は3つです。スリープをオフにする。Claude Codeをtmuxの中で動かす。そのtmuxセッションをログイン時に起動する。
sudo pmset -a sleep 0 sudo pmset -a disksleep 0 sudo pmset -a displaysleep 10
次のLaunchAgentは、Claude CodeとTelegramのチャネルを動かすchannelsという名前のtmuxセッションを起動します。1分ごとに確認し、セッションがすでにあれば何もしません。LaunchAgentsフォルダに、dev.local.claude-channels.plistという名前で保存します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>dev.local.claude-channels</string>
<key>ProgramArguments</key>
<array>
<string>/bin/zsh</string>
<string>-lc</string>
<string>export PATH="$HOME/.local/bin:$HOME/.bun/bin:/opt/homebrew/bin:$PATH"; tmux has-session -t channels 2>/dev/null || tmux new -d -s channels -c "$HOME" "claude --channels plugin:telegram@claude-plugins-official"</string>
</array>
<key>RunAtLoad</key><true/>
<key>StartInterval</key><integer>60</integer>
</dict>
</plist>tmuxがなければ、先にインストールします。それからエージェントを読み込み、アタッチしてClaudeの様子を確認します。
brew install tmux launchctl load ~/Library/LaunchAgents/dev.local.claude-channels.plist tmux attach -t channels
2026年10月2日に、このファイルをそのまま、GitHubホスト型のmacOS 26マシンでテストしました。読み込んでから20秒後には、launchdがホームフォルダでセッションを作成していて、中でClaude Codeが待機していました。
$ tmux ls channels: 1 windows (created Fri Oct 2 04:21:09 2026) $ tmux capture-pane -pt channels Welcome to Claude Code v2.1.287
セッションはホームフォルダで始まります。Claudeをプロジェクトのフォルダで起動したいなら、HOMEの変数の代わりにプロジェクトのパスを書きます。初回はアタッチして、初回起動時の質問に答え、サインインします。
もう1つ、止まる原因に備えておく必要があります。不在中にClaudeが権限の確認に当たると、セッションはあなたを待ちます。ドキュメントには、信頼できるマシン向けに権限の確認を飛ばすフラグが載っています。使う前にClaude Codeを無人で安全に動かす方法をお読みください。
セキュリティについて
- 各チャネルは送信者の許可リストを持っています。ほかの人からのメッセージは、何も通知されずに破棄されます。
- 許可リストに載っている人は誰でも、あなたのセッションを操作できます。プラグインが権限の確認を中継する場合は、ツールの使用も承認できます。自分のマシンを任せられる人だけを追加してください。
- ボットトークンはパスワードと同じです。漏れたら、BotFatherで無効にし、新しいトークンを設定してください。
- iMessageはメッセージのデータベースを読むので、フルディスクアクセスが必要です。レンタルのMacでは、自分のものではないハードウェアのメッセージアプリに、自分のApple IDでサインインすることになります。TelegramやDiscordなら、それを避けられます。
MacRunのMacで動かす
当社のエージェントプランには、Claude Codeがインストール済みです。ご自身のClaudeのプランでサインインします。Macはスリープせず、セッションは再起動後も残ります。追加するのはBunとプラグインだけで、数分で終わります。あとはノートPCを閉じても、ボットは返信し続けます。
これが不要な人もいます。スマートフォンからセッションを操作したいだけなら、ClaudeアプリのRemote Controlでボットなしにできます。また、Teamプランの管理者がチャネルを有効にしていないなら、新しいMacを用意しても状況は変わりません。
全体像はMacでClaude Codeを24時間動かす方法をお読みください。
よくある質問
Claude CodeのチャネルにはAPIキーが必要ですか?
+
必ずしも必要ではありません。Anthropicのドキュメントによると、チャネルはclaude.aiのログインでもConsoleのAPIキーでも使えます。ProやMaxのログインで使えます。TeamやEnterpriseでは、管理者がチャネルを有効にする必要があります。
Telegramのボットが返信しないのはなぜですか?
+
ボットが返信できるのは、Claude Codeがchannelsのフラグ付きで動いている間だけです。セッションが開いていて、Macが起きていることを確認してください。
Claude Codeが対応しているチャネルは?
+
リサーチプレビューには、Telegram、Discord、iMessageと、fakechatというローカルのデモが含まれます。MCPサーバーとして独自のチャネルを作ることもできます。
claude --helpに--channelsが表示されないのはなぜですか?
+
Anthropicのドキュメントによると、リサーチプレビューの間、チャネルのフラグはヘルプの出力に表示されません。それでも機能します。