Claude Code Channelsとは — 常駐セッションにイベントを届ける仕組み
Claude Code Channelsは、Telegram・Discordなどのチャットアプリから開いたままのセッションへイベントを送り込む研究プレビュー機能です。仕組みと他の遠隔操作系機能との違いをまとめます。
Claude Code Channelsとは
Claude Code Channelsは、MCPサーバーを経由してイベントを実行中のセッションへ直接push(送信)する研究プレビュー機能です。CI結果・監視アラート・Telegramなどのチャットメッセージを、ターミナルの前にいなくてもClaudeへ転送できます。セッションが開いている間だけイベントが届くのが最大の特徴で、常時稼働させたいならバックグラウンドプロセスか常駐ターミナルでセッションを開いたままにする必要があります。
対応チャットアプリの一覧と個別のセットアップ手順は対応アプリと研究プレビューの制約にまとめました。本記事はChannelsという仕組み自体の動き方と、他の遠隔操作系機能との違いに絞ります。
Channelsはどう動くか
Channelsはプラグインとしてインストールし、自分の認証情報(Botトークンなど)で設定します。研究プレビューの時点でTelegram・Discord・iMessageの3つが同梱され、双方向のやり取りにも対応します。Claudeがイベントを読み、同じチャネルへreplyツールで返信を送り返す仕組みです。
ここで押さえておきたいのは、返信そのものはターミナルに表示されないという挙動です。ターミナルにはツール呼び出しと「送信済み」のような完了確認だけが出て、実際の返信テキストは相手のチャットアプリ側に届きます。ログを追う場所と、会話を追う場所が分かれるということです。
チャネルを有効にするには、セッション起動時に--channelsフラグでプラグイン名を渡します。
claude --channels plugin:telegram@claude-plugins-official.mcp.jsonにサーバーを登録しただけではメッセージは届きません。--channelsで名指ししたプラグインだけがイベントを受け取れます。この二段構えが、意図しないチャネルからの割り込みを防ぐ最初の防御線になっています。
使えるようになるまでの3段階のゲート
Channelsが実際にメッセージを届けるには、3つのゲートを順番に通過する必要があります。まずTeam・Enterprise組織では、Ownerが管理コンソールでChannels自体を有効化していること。個人のPro・Maxプランにはこの制約がなく、次のステップからすぐ始められます。次に、ユーザー自身がセッション起動時に--channelsでプラグイン名を渡してopt-inしていること。そして最後に、送信者がそのチャネルの許可リストに載っていること。どれか1つでも欠けると、MCPサーバー自体は起動していてもメッセージはセッションに届きません。組織側で有効化されていない場合、MCPサーバーへの接続自体は成功しツールも一見動きますが、チャネル経由のメッセージだけが届かず、起動時の警告が「管理者に有効化を依頼してください」と表示されます。既定値は認証方式で分かれ、claude.aiのTeam・Enterpriseは有効化されるまでブロック、APIキー認証のConsoleは(組織がmanaged settingsを配布していない限り)既定で許可という違いがあります。組織側の有効化手順はClaude Code Channels組織管理にまとめています。
誰がメッセージを送れるか — 送信者の許可リスト
承認済みのチャネルプラグインは、それぞれ独自の送信者許可リストを持ちます。リストに載っていないIDからのメッセージは、通知なく破棄されます。TelegramとDiscordはペアリングでリストに登録し、自分のBotへ何かメッセージを送るとBotがペアリングコードを返し、Claude Codeのセッション側でそのコードを承認すると送信者IDが許可リストに加わります。iMessageだけは方式が違い、自分自身にテキストすると許可チェックを自動でバイパスし、ほかの相手は/imessage:access allowで個別に許可します。
権限確認プロンプトをチャネル経由で承認できる「permission relay」に対応したプラグインでは、この許可リストがそのままプロンプトの承認権限にもなります。誰が承認できるかを増やす操作でもあるため、許可リストの管理はセキュリティ設計の中核です。詳しい防御パターンはChannelsセキュリティ設計で扱っています。
モデルに届くイベントの形と複数チャネルの同時起動
Channels経由のメッセージは、地の文としてではなく<channel source="plugin:サーバー名">という形式のタグ付きイベントとしてモデルに渡ります。どのプラットフォームのどのサーバーから届いたかをモデル自身が区別できる形です。ターミナル側にも着信を示す行が出て、たとえばfakechatなら← fakechat · web: メッセージ内容のように送信元とテキストが並びます。
--channelsには複数のプラグインをスペース区切りで渡せるので、Telegramで個人の質問を受けつつ、別のサーバーでCIのWebhookも受信するといった組み合わせも1つのセッションで成立します。非対話モード(-p)でChannelsを使う場合は、選択式の質問やplanモード承認のように端末入力を要するツールが無効化され、応答待ちでセッションが固まらない設計になっています。無人稼働のパイプラインに組み込むときはこの挙動を前提にします。
他の遠隔操作系機能とどう違うか
Claude Codeには、ターミナルの外から作業に関わる手段がChannels以外にも複数あります。何が「新しいセッションを起動する」のか、何が「今のセッションに割り込む」のかで役割が分かれます。
| 機能 | やること | 向く場面 |
|---|---|---|
| Claude Code on the web | やることGitHubからクローンした新しいクラウドサンドボックスでタスクを実行 | 向く場面自己完結した非同期作業を任せて後で確認する |
| Claude in Slack | やることチャンネルやスレッドでの@Claudeメンションから新しいWebセッションを起動 | 向く場面チームの会話の文脈からそのままタスクを始める |
| 標準のMCPサーバー | やることClaudeがタスク中に問い合わせる。セッションへのpushはしない | 向く場面外部システムへのオンデマンドな読み取り・照会 |
| Remote Control | やることclaude.aiやモバイルアプリからローカルセッションを操作 | 向く場面席を外した状態で進行中のセッションを操縦する |
| Channels | やること非Claude発のイベントをすでに開いているローカルセッションへpush | 向く場面外部からの割り込みにその場のファイル状態のまま反応する |
Channelsが他と違うのは、新しいセッションを作らず、今動いているセッションにイベントを差し込む点です。デバッグの途中でCIの失敗通知が届けば、Claudeはすでに開いているファイルとやり取りの文脈を保ったまま反応できます。Claude in Slackがメンションのたびに新しいセッションを起動するのとは対照的な設計です。
似た用途に見えるScheduled Tasksとの違いは、pushかpollかです。Scheduled Tasksはタイマーで定期的にタスクを起動する仕組みで、外部イベントの発生タイミングとは無関係に動きます。Channelsは逆に、イベントが実際に起きた瞬間にセッションへ届きます。締切のある定型作業はScheduled Tasks、いつ起こるか分からない外部イベントへの即応はChannels、と使い分けの軸がはっきり分かれます。
Channelsが向く作業
Channelsのユースケースは大きく2つに分かれます。ひとつはチャットブリッジとしての使い方で、外出先からTelegramやDiscord経由でClaudeに質問を送り、返事は同じチャットに届きながら実際の処理は自分のマシン上で実ファイルを見て進みます。もうひとつはWebhook受信で、CIパイプラインやエラー監視サービス、デプロイパイプラインからのWebhookを、Claudeがすでにファイルを開いてデバッグの文脈を覚えているセッションへ届けます。
Remote Controlとの違いも実運用では効いてきます。Remote Controlは自分がスマホから操縦する能動的な手段ですが、Channelsは何もしなくてもイベント発生時に自動で反応します。CIが落ちたら気づいて直す、という受け身の作業を自動化したいならChannelsの設計に分があります。逆に、今どこまで進んでいるかを確認しながら自分の判断で次の指示を出したいなら、Remote Controlのほうが向いています。
いずれの用途でも、Claudeが権限確認プロンプトに当たるとセッションはいったん停止します。permission relay対応のチャネルなら、そのプロンプトをチャットへ転送して遠隔から承認・拒否できますが、対応していないチャネルではターミナルに戻るまで停止したままです。無人運用が前提なら--dangerously-skip-permissionsでほとんどのプロンプトを回避できますが、信頼できる環境に限る運用が前提です。
Telegram・Discord・iMessage以外のシステムをChannelsに繋ぎたい場合、自分でMCPサーバーを書いて独自のチャネルを作ることもできます。CIやモニタリングサービスからのWebhookを受け取るサーバーの自作手順はClaude Code ChannelsでWebhook受信サーバーを自作するにまとめています。
まとめ
Claude Code Channelsは、外部イベントを開いたままのセッションへpushする研究プレビュー機能です。新しいセッションを起動するClaude Code on the webやClaude in Slackとは違い、今動いているセッションの文脈を保ったまま外部からの割り込みに反応します。タイマーで動くScheduled Tasksとは、pollかpushかという発想そのものが逆になっている点も押さえておくと選び分けに迷いません。組織有効化・--channelsフラグでのopt-in・送信者ごとの許可リストという3段階のゲートを理解しておくと、どこまでが安全な運用かの判断がしやすくなります。スマホからClaude Codeにアクセスする他の経路との比較はClaude Codeをスマホから使う4つの経路の選び方にまとめています。