Claude Code ChannelsとRemote Control、Scheduled Tasks——2026年3月のアップデートで三つの「非同期連携」機能が一気に揃った。どれも「離席中にClaudeを動かす」という目的に見えるが、実際に試してみると設計思想がまるで違う。
本稿では特にChannelsの内部構造を掘り下げつつ、実際に使うべき場面を他機能との比較から整理する。
Channelsとは何か——まず3行で
Channelsは、外部からのプッシュイベントを動作中のClaude Codeセッションに注入する仕組みだ。Telegram・Discord・iMessageのいずれかを経由してメッセージを送ると、ローカルで走っているClaudeがそれを受け取り、あなたのファイルやツールにアクセスしながら処理を実行する。
ポイントは「ローカルセッションがそのまま動く」こと。クラウドに新しいサンドボックスが立ち上がるわけではなく、CLAUDE.md・カスタムスキル・MCP統合——すべてがすでに読み込まれた状態で反応する。
技術的にはMCP(Model Context Protocol)サーバーとして実装されている。チャンネルプラグインがMCPサーバーを起動し、外部プラットフォームからのメッセージを<channel source="telegram">形式のイベントとしてセッションへ届ける。Claudeはそのイベントを読み、応答をプラグインのreplyツール経由で送り返す。
スペック比較——Channels vs Remote Control vs Scheduled Tasks
| 観点 | Channels | Remote Control | Scheduled Tasks |
|---|---|---|---|
| 起点 | 外部からのプッシュ | claude.ai / モバイルアプリから操作 | 時刻ベースのスケジュール |
| セッション | ローカル(起動済み必須) | ローカル(起動済み必須) | Anthropicクラウド(PC不要) |
| 通信方向 | 双方向(チャット橋渡し) | 双方向(UI操作) | 非同期(定時実行のみ) |
| 対応プラットフォーム | Telegram / Discord / iMessage | claude.ai / iOS / Android | GitHub連携 |
| プラン | Pro・Max(個人)/ 企業は管理者許可必要 | Pro・Max | Pro・Max |
| 利用開始 | 2026年3月20日(Research Preview) | 2026年2月(Research Preview) | 2026年3月 |
Channelsの2つのユースケース
ユースケース1: チャット橋渡し(Chat Bridge)
スマートフォンのTelegramからClaudeに指示を出し、ローカルMacのコードベースで作業させる——これがチャット橋渡しの典型だ。
コーヒーを飲みながら「あの関数のテスト追加しておいて」とTelegramに送れば、デスクに戻ったときには変更がコミット済みになっている。Claudeはあなたのエディタ・ファイルシステム・git履歴すべてにアクセスできるまま待機している。
実際のセッション起動例:
# Telegramプラグインをインストール
# Claude Codeのインタラクティブセッション内で実行
/plugin install telegram@claude-plugins-official
# チャンネルを有効にして起動
claude --channels plugin:telegram@claude-plugins-official
起動後、TelegramでBotにメッセージを送るとペアリングコードが届く。Claude Code側で以下を実行してペアリングを完了させる:
# ペアリングコードを登録
/telegram:access pair <code>
# 自分だけが操作できるようにAllowlistポリシーを適用
/telegram:access policy allowlist
動作環境: Claude Code v2.1.80以上 / claude.aiアカウント認証必須(Console・APIキー認証は非対応)/ Bun必須(bun --versionで確認)
ユースケース2: Webhook受信
CI/CDパイプラインの失敗通知・エラートラッカーのアラート・デプロイ完了イベント——これらを「Claudeがすでに開いているセッション」に直接届けられる。
標準的なMCPサーバーとの違いはここだ。通常のMCPサーバーはClaudeから「呼ばれたとき」に応答するプル型だが、ChannelsはClaudeへ「押し込む」プッシュ型。GitHub Actionsのテストが落ちた瞬間にClaudeへ通知し、その場でデバッグを開始させられる。
自前のWebhook受信チャンネルを実装する基本構造(Claude Code Channels Reference準拠):
// webhook-channel/index.ts
// 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server(
{ name: "webhook-receiver", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
// Channelsプロトコルに必要: push_channel_event ツールを公開
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "reply") {
// Claudeからの返信を外部サービスへ転送
const message = request.params.arguments?.message;
await forwardToSlack(message); // 任意のサービスへ
return { content: [{ type: "text", text: "sent" }] };
}
});
const transport = new StdioServerTransport();
await server.connect(transport);
注意: カスタムチャンネルの開発中は --dangerously-load-development-channels フラグで起動する。Research Preview期間中は、Anthropicが管理するAllow-list(またはEnterpriseが設定したリスト)以外のプラグインは本番起動ではブロックされる。
セキュリティ——Allowlistがすべての鍵
Channelsで最も重要なのがセンダー制御だ。Allowlistに登録されたID以外からのメッセージはサイレントに破棄される。ペアリングフローはこのAllowlist登録を確実に踏ませるための仕組みでもある。
特にPermission Relay(ツール実行の許可/拒否をチャンネル経由で行う機能)を使う場合、Allowlistに追加した相手はツール実行権限も持つことになる。信頼できるアカウントのみを登録するべきだ。
EnterpriseプランではIT管理者が channelsEnabled と allowedChannelPlugins をManaged Settingsで制御できる。デフォルトはオフなので、組織利用には管理者の設定が必要になる。
Channelsを使うべき場面・使わない場面
Channelsが向いている
- スマートフォンから非同期指示 — 外出先から「今の実装にユニットテスト追加して」と送る
- CI/CDアラートへの自動対応 — テスト失敗をTelegramで受け取りその場でデバッグ
- 複数人でClaudeへの指示を共有したい場合 — チームのDiscordチャンネルをブリッジ
Remote Controlが向いている
- 進行中タスクのリアルタイム監視・操作
- 許可プロンプトへのリモート応答
Scheduled Tasksが向いている
- PCを閉じた夜間に定期実行させたい処理
- 毎日のPRレビュー・CI確認などルーティン作業
AIエージェントの連携設計全般については、AIエージェント構築完全ガイドで詳しく解説しています。
【要注意】よくある設定ミスと回避策
失敗1: BotがTelegramで応答しない
❌ claudeコマンドを--channelsフラグなしで起動している
⭕ claude --channels plugin:telegram@claude-plugins-official で再起動する
なぜ重要か: .mcp.jsonに記述されているだけではチャンネルは有効にならない。--channelsフラグで明示的に指定した場合だけプッシュイベントを受け付ける。
失敗2: Enterprise組織でチャンネルが動かない
❌ channelsEnabledが組織設定で未構成のまま使おうとしている
⭕ IT管理者にManaged SettingsでchannelsEnabled: trueを設定してもらう
なぜ重要か: Team/EnterpriseプランではChannelsはデフォルトオフ。Pro/Maxの個人プランとは挙動が異なる。
失敗3: Allowlist未設定でセキュリティリスク
❌ ペアリング後にポリシーをallowlistに変更し忘れている
⭕ ペアリング直後に/telegram:access policy allowlistを実行する
なぜ重要か: デフォルトのままだと予期しない送信者がClaudeに指示を送れる状態になる。
失敗4: iMessageでAppleScriptが動かない
❌ Full Disk AccessをターミナルアプリにGrantしていない
⭕ システム設定 → プライバシーとセキュリティ → フルディスクアクセス → 該当ターミナルを追加
なぜ重要か: iMessageチャンネルは~/Library/Messages/chat.dbを直接読む。macOSの保護機能でアクセスが弾かれるとサーバーが即時終了する。
まとめ
Channelsは「すでに動いているClaudeに外から話しかける」機能だ。Remote Controlのような操作UIでも、Scheduled Tasksのような定時実行でもなく、プッシュイベントをトリガーにClaudeを動かすという唯一の設計思想がある。
Telegram・Discordでのチャット橋渡し、CI/CDからのWebhook受信——この二軸でユースケースを考えると、自分の開発ワークフローのどこにChannelsが刺さるかが見えてくるはずだ。
Research Preview段階なのでAPIの仕様変更はありうる。フィードバックはClaude Code GitHubリポジトリで受け付けている。
参考・出典
- Push events into a running session with channels — Anthropic公式ドキュメント(参照日: 2026-04-07)
- Anthropic turns Claude Code into an always-on AI agent with new channels feature — The Decoder(参照日: 2026-04-07)
- Claude Code Channels vs Remote Control: What’s the Difference? — BSWEN(参照日: 2026-04-07)
- claude-plugins-official — Anthropic GitHub(参照日: 2026-04-07)
あわせて読みたい:
– Claude Code Hooks完全解説 — PreToolUse/PostToolUseフックで安全なエージェント設計を実現する
– Claude Agent SDK実践ガイド — PythonとTypeScriptでマルチエージェントを構築する
AIエージェントの導入・活用について詳しく知りたい方は、Uravationへのお問い合わせからご相談ください。
この記事はAIgent Lab編集部がお届けしました。