Channels Claude Code: Dorong Event ke Sesi yang Hidup

Sebuah MCP server yang mendorong event ke dalam sesi Claude Code Anda yang sedang berjalan alih-alih menunggu ditanya. Claude menanggapi hal yang terjadi selagi Anda pergi, dan channel bisa dua arah sehingga Claude membalas lewat channel yang sama. Telegram, Discord, dan iMessage termasuk dalam research preview-nya.
Arahnya. MCP server standar menunggu ditanya — Claude menanyainya selama sebuah tugas dan tidak ada yang tiba kecuali Claude pergi mencari. Channel mendorong sebuah event ke dalam sesi, jadi Claude menanggapi sesuatu yang tidak pernah ia tanyakan, di dalam sesi yang file-nya sudah terbuka dan konteksnya sudah termuat.
Tiga gerbang independen harus semuanya terbuka. Organisasi Anda harus menyetel channelsEnabled, dan plugin-nya harus ada di allowlist yang berlaku. Server-nya harus disebut di --channels untuk sesi tersebut — berada di .mcp.json saja tidak cukup. Dan ID pengirimnya harus ada di allowlist channel itu, atau pesannya dibuang dalam senyap.
Tergantung cara Anda melakukan autentikasi. Di claude.ai Team dan Enterprise, channel diblokir sampai seorang Owner mengaktifkannya. Dengan autentikasi API key Anthropic Console, ia diizinkan secara default kecuali organisasi Anda menerapkan managed settings. Pengguna Pro dan Max tanpa organisasi sama sekali melewati pemeriksaan ini.
Bisa, kalau channel-nya mendeklarasikan kapabilitas permission relay. Ia meneruskan permission prompt supaya Anda bisa menyetujui atau menolak dari jauh — yang berarti siapa pun di allowlist pengirim bisa menyetujui pemakaian tool di sesi Anda. Hanya masukkan ke allowlist pengirim yang Anda percayai dengan otoritas itu, bukan sekadar untuk mengirim pesan.

Ringkasan Utama
Channel Claude Code adalah MCP server yang mendorong event ke dalam sesi Anda yang sedang berjalan, sehingga Claude bisa menanggapi hal yang terjadi selagi Anda jauh dari terminal. Channel bisa dua arah: Claude membaca event-nya dan membalas lewat channel yang sama. Event hanya tiba selama sesinya terbuka, jadi setup yang selalu menyala butuh proses background.
Hal yang membuat channel klik bagi saya kecil saja. Sebuah build gagal ketika saya sedang membuat kopi, kegagalannya tiba di sesi tempat saya melakukan debug selama satu jam terakhir, dan Claude langsung mengerjakannya dengan seluruh konteks itu sudah termuat — file-nya terbuka, teori yang sedang kami uji, dan dua hal yang sudah kami singkirkan. Sesi cloud yang segar akan mulai dari nol.
Itulah celah yang diisi channel, dan celahnya lebih sempit serta lebih spesifik daripada yang disiratkan bentuk pemasaran notifikasi push. Tulisan ini membahas apa yang membedakan channel dari MCP server biasa, bagaimana ia dibandingkan dengan empat cara lain Claude Code menjangkau luar terminal, pola setup yang sama untuk semua channel, tiga gerbang independen yang harus terbuka sebelum sebuah pesan mendarat, dan otoritas yang sebenarnya diberikan oleh allowlist pengirim.
MCP server biasa menunggu ditanya. Claude menanyainya selama sebuah tugas, mendapat jawaban, lalu berlalu — tidak ada yang tiba kecuali Claude pergi mencari. Channel membalikkannya: server yang mendorong sebuah event ke dalam sesi, dan Claude menanggapi sesuatu yang tidak pernah ia tanyakan. Protokol yang sama, arah yang berlawanan, dan itulah seluruh fiturnya.
Properti kedua yang penting adalah di mana event-nya mendarat. Ia tiba di sesi yang sudah Anda buka, dengan konteks apa pun yang sudah terkumpul di sesi itu, alih-alih memunculkan sesi baru. Itu selisih antara peringatan yang berkata sebuah test gagal dan peringatan yang menjangkau agent yang sudah tiga file dalamnya menelusuri kenapa.
Claude Code punya beberapa cara menjangkau luar terminal dan semuanya sungguh alat yang berbeda. Channel mengisi tepat satu celah dalam daftar itu, dan mengetahui yang mana menghemat Anda dari membangun hal yang keliru.
Lima jalan keluar dari terminal:
| Fitur | Apa yang dilakukannya |
|---|---|
| Claude Code on the web | Menjalankan tugas di sandbox cloud segar hasil clone dari GitHub — cocok untuk kerja asinkron yang mandiri |
| Claude in Slack | Memunculkan sesi web dari sebuah mention, jadi tugasnya berangkat dari konteks percakapan tim |
| MCP server standar | Claude menanyainya selama sebuah tugas; tidak ada yang didorong ke sesi |
| Remote Control | Anda mengemudikan sesi lokal dari ponsel atau browser — mengemudikan, bukan event |
Telegram, Discord, dan iMessage adalah channel dalam research preview ini, dan semuanya plugin yang membutuhkan Bun. Langkahnya identik kecuali dari mana kredensialnya berasal, dan iMessage berbeda karena sama sekali tidak butuh token — ia membaca database Messages secara langsung lalu membalas lewat AppleScript, yang berarti butuh macOS dan full disk access alih-alih sebuah bot.
# The shape is the same for every channel: install, configure
# a credential, restart with the flag, then pair and lock down.
/plugin install telegram@claude-plugins-official
# Marketplace not found? add it first:
# /plugin marketplace add anthropics/claude-plugins-official
# Install summary says "Run /reload-plugins to activate."? Do that.
/telegram:configure <token>
# saved to ~/.claude/channels/telegram/.env
# or set TELEGRAM_BOT_TOKEN before launching
claude --channels plugin:telegram@claude-plugins-official
# Several plugins can be passed, space-separated.
# The flag does NOT appear in claude --help during the
# research preview. It works anyway.
# Then message the bot, and it replies with a pairing code:
/telegram:access pair <code>
/telegram:access policy allowlist # lock it to you only
# Try the mechanics with no credentials at all:
/plugin install fakechat@claude-plugins-official
claude --channels plugin:fakechat@claude-plugins-official
# then type into the UI at localhost:8787Mulai dengan channel demonya alih-alih platform sungguhan. Ia menjalankan antarmuka chat di localhost tanpa apa pun untuk diautentikasi, jadi Anda bisa menonton sebuah pesan tiba di sesi Anda dan sebuah balasan muncul di browser bahkan sebelum Anda membuat satu bot pun. Lima belas menit di sana mengajarkan mekanikanya, dan semua yang Anda pelajari langsung berpindah ke platform yang benar-benar Anda inginkan.
Inilah bagian yang layak dibaca cermat, karena mode gagalnya berupa kesenyapan, bukan error. Pesan yang tidak tiba bisa diblokir di salah satu dari tiga lapisan independen, dan tiap lapisan dimiliki pihak yang berbeda — administrator Anda, sesi Anda, dan allowlist-nya.
# Three independent gates, and all three must open.
# 1. Your organisation
{
"channelsEnabled": true,
"allowedChannelPlugins": [
{ "marketplace": "claude-plugins-official", "plugin": "telegram" },
{ "marketplace": "acme-corp-plugins", "plugin": "internal-alerts" }
]
}
# claude.ai Team and Enterprise: BLOCKED until an Owner
# enables it. Console with an API key: allowed by default,
# unless your org deploys managed settings.
# Pro and Max users without an organisation skip this entirely.
# 2. The session
# Being in .mcp.json is NOT enough. A server must also be
# NAMED in --channels for that session.
# 3. The sender
# Every approved channel keeps a sender allowlist. IDs you
# have not added are SILENTLY DROPPED.
# An empty allowedChannelPlugins array blocks the allowlist but
# NOT --dangerously-load-development-channels. To block channels
# entirely including that flag, leave channelsEnabled unset.Allowlist pengirim memberikan otoritas lebih besar daripada kelihatannya. Kalau sebuah channel mendeklarasikan kapabilitas permission relay, ia bisa meneruskan permission prompt kepada Anda supaya bisa disetujui atau ditolak dari jauh — yang berarti siapa pun yang bisa membalas lewat channel itu bisa menyetujui pemakaian tool di sesi Anda. Hanya masukkan ke allowlist pengirim yang Anda percayai untuk itu, bukan sekadar pengirim yang Anda percayai untuk sebuah pesan.
Asimetri dalam apa yang terlihat sering menjegal orang, jadi layak dinyatakan:
Event hanya tiba selama sesinya terbuka, jadi setup yang selalu menyala berarti proses background atau terminal yang persisten. Itu batasan nyata, bukan detail: channel bukan layanan yang Anda deploy, melainkan kapabilitas yang Anda tempelkan pada sesi yang memang harus sudah berjalan.
Untuk pemakaian yang sungguh tanpa pengawasan, flag bypass permission memang ada dan dokumentasinya cukup lugas soal itu: pakai hanya di lingkungan yang Anda percayai, dan perhatikan bahwa aksi yang tidak disetujui otomatis oleh mode mana pun tetap berlaku. Di mode non-interaktif, tool yang butuh input terminal — pertanyaan pilihan ganda, persetujuan plan mode — dinonaktifkan supaya sesinya tidak macet menunggu sesuatu yang tidak ada orangnya untuk diberikan.
Channel masih research preview, dan dua hal mengikuti dari situ yang jika tidak akan membuang waktu Anda. Baik flag channels maupun flag development channels tidak muncul di keluaran help, dan keduanya tetap bekerja. Dan selama preview, flag itu hanya menerima plugin dari allowlist yang dipelihara Anthropic, atau milik organisasi Anda kalau administrator menyetelnya — masukkan sesuatu di luar itu dan Claude Code menyala normal sementara channel-nya diam-diam tidak terdaftar, dengan pemberitahuan startup yang menjelaskan sebabnya.
Yang pertama jembatan chat. Tanyakan sesuatu kepada Claude dari ponsel Anda lewat Telegram, Discord, atau iMessage, dan jawabannya kembali di chat yang sama sementara pekerjaannya berjalan di mesin Anda terhadap file Anda yang sesungguhnya. Itu berbeda bermakna dari sesi cloud, yang akan bekerja dari sebuah clone tanpa satu pun keadaan lokal Anda.
Yang kedua penerima webhook, dan itulah yang bernilai tertinggi per baris setup. Webhook dari CI, pelacak error, atau pipeline deploy tiba di tempat Claude sudah membuka file Anda dan masih mengingat apa yang sedang Anda debug. Semua yang lain di daftar luar-terminal itu entah mulai dari nol atau menunggu ditanya; hanya ini yang membawa event-nya ke konteksnya.
Channel sengaja dibuat sempit dan kesempitannya justru intinya: ia ada untuk event yang lebih berarti karena tempat mendaratnya. Siapkan channel demonya dulu, pahami ketiga gerbangnya sebelum mendebug pesan yang tidak pernah tiba, dan bersikaplah sadar soal allowlist-nya — karena pada channel yang meneruskan permission, menambahkan seorang pengirim lebih dekat ke memberikan sebuah akun daripada menambahkan sebuah kontak.
Sumber & bacaan lanjutan