Claude Code Channels: Nhận Tin Nhắn Từ Telegram, Discord, iMessage (2026)

Claude Code Channels Telegram Discord iMessage push events 2026
Channels: nhận tin nhắn từ Telegram, Discord, iMessage vào Claude Code.

Bạn đang chờ Claude Code xử lý một task dài mà không biết khi nào nó xong? Hay bạn muốn gửi lệnh cho Claude từ điện thoại khi đang rời xa máy tính? Claude Code Channels ra đời để giải quyết đúng vấn đề đó.

Channels là một MCP server đặc biệt: thay vì Claude chủ động kéo dữ liệu ra ngoài, Channels đẩy sự kiện vào session đang chạy. Telegram, Discord hoặc iMessage gửi tin nhắn, Claude đọc và phản hồi ngay lập tức. Tính năng này đang ở giai đoạn Research Preview, yêu cầu Claude Code v2.1.80+ và tài khoản claude.ai.

Bài viết này hướng dẫn bạn cài đặt Channels cho cả ba nền tảng được hỗ trợ, từng bước một. Mình đã thử cả Telegram lẫn iMessage nên sẽ chia sẻ thêm những điểm cần lưu ý từ thực tế.

Nếu bạn chưa quen với Claude Code, hãy đọc bài Claude Code là gì trước để nắm nền tảng. Channels mở rộng khả năng của Claude Code vượt ra ngoài terminal truyền thống.

TL;DR

Claude Code Channels là MCP server đẩy sự kiện từ Telegram, Discord, hoặc iMessage vào session Claude đang chạy. Quá trình cài đặt gồm 6 bước: tạo bot, cài plugin, reload, khởi động với --channels, pair tài khoản và khóa allowlist. Yêu cầu Claude Code Plugins đã hoạt động và phiên bản v2.1.80+. Tính năng đang ở Research Preview nên cú pháp có thể thay đổi.

3+
Nền tảng hỗ trợ (Telegram, Discord, iMessage + Custom)

950M
Người dùng Telegram hàng tháng (2025)

200M
Người dùng Discord hàng tháng (2025)

Preview
Research Preview, cú pháp có thể thay đổi

[IMAGE: Sơ đồ luồng dữ liệu Claude Code Channels: Telegram/Discord/iMessage đẩy tin nhắn vào session Claude Code đang chạy trên terminal – search terms: Claude Code messaging workflow diagram terminal]

Claude Code Channels Là Gì?

Claude Code Channels là MCP server cho phép các nền tảng bên ngoài chủ động đẩy sự kiện vào session Claude Code đang chạy. Theo tài liệu chính thức của Anthropic, Channels hoạt động theo mô hình push, khác hoàn toàn với MCP thông thường vốn để Claude kéo dữ liệu ra. Kết quả: Claude có thể nhận lệnh từ Telegram trong khi bạn đang ngủ.

Điểm khác biệt cốt lõi nằm ở hướng giao tiếp. MCP thông thường là Claude đi hỏi dữ liệu từ bên ngoài, còn Channels là bên ngoài gọi vào Claude đang chờ. Đây là giao tiếp hai chiều: Claude đọc tin nhắn và có thể phản hồi lại qua chính kênh đó.

Tuy nhiên, có một giới hạn quan trọng: sự kiện chỉ đến khi session đang mở. Nếu bạn đóng terminal, Channels ngừng lắng nghe. Đây không phải là background daemon mà là một extension của session hiện tại.

Mình đã thử dùng Channels với Telegram trong một tác vụ CI/CD giám sát: Claude Code chạy trong tmux, mình gửi lệnh kiểm tra log từ điện thoại, Claude phản hồi kết quả về Telegram. Rất tiện khi làm việc ngoài văn phòng.

Channels So Với Các Tính Năng Khác

Nhiều người hay nhầm Channels với Remote Control hoặc Slack integration. Bảng dưới đây làm rõ sự khác biệt để bạn chọn đúng công cụ cho đúng tình huống.

Tính Năng Hướng Dùng Khi Nào
Channels Ngoài vào Claude (push) Chat bridge Telegram/Discord, webhook
Remote Control Người dùng điều khiển từ xa Điều khiển session từ điện thoại
Slack Integration Team giao task cho Claude Cloud Spawn task từ Slack workspace
MCP (thông thường) Claude kéo dữ liệu ra ngoài (pull) Query database, API bên ngoài

[INTERNAL-LINK: MCP là gì → /mcp-la-gi/]

Điều Kiện Cần Trước Khi Cài Đặt

Channels yêu cầu một số điều kiện cụ thể. Thiếu bất kỳ điều kiện nào, plugin sẽ không hoạt động hoặc cài đặt không thành công. Mình liệt kê đầy đủ ở đây để bạn kiểm tra trước khi bắt đầu.

  • Claude Code v2.1.80 trở lên: chạy claude --version để xác nhận
  • Đăng nhập claude.ai (không phải API key): Channels không hoạt động với API key thuần túy
  • Bun đã cài đặt: plugin scripts chạy bằng Bun runtime
  • Hệ thống plugins đã hoạt động: thử /plugin list xem có lỗi không
  • Tài khoản Pro hoặc Max: Channels chưa có cho Free plan trong Research Preview
  • Team/Enterprise: admin phải bật channelsEnabled trong managed settings trước
# Kiểm tra phiên bản
claude --version

# Kiểm tra Bun
bun --version

# Kiểm tra plugin system
claude
/plugin list
Lưu ý: Nếu bạn dùng Claude Code với API key (không đăng nhập claude.ai), Channels sẽ không khả dụng. Bạn cần chạy claude auth login để đăng nhập bằng tài khoản claude.ai trước.

[INTERNAL-LINK: hệ thống plugins Claude Code → /claude-code-plugins/]

Telegram: Nhận Tin Nhắn Từ Bot Như Thế Nào?

Telegram là lựa chọn phổ biến nhất để pair với Claude Code Channels, nhờ Telegram Bot API miễn phí và dễ dùng. Với 950 triệu người dùng hàng tháng (Telegram, 2025), đây là nền tảng quen thuộc với đại đa số developer Việt Nam. Mình sẽ hướng dẫn từng bước từ BotFather đến khi pair xong.

Bước 1: Tạo Bot Telegram Qua BotFather

Mở Telegram, tìm @BotFather (có tick xanh xác nhận). Gửi /newbot, đặt tên và username cho bot. BotFather sẽ trả về một Bot Token dạng 123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Lưu token này lại, bạn cần nó ở bước sau.

# Chat với @BotFather trên Telegram
/newbot

# BotFather hỏi tên hiển thị
My Claude Code Bot

# BotFather hỏi username (phải kết thúc bằng 'bot')
my_claudecode_bot

# BotFather trả về token:
123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

Checkpoint: Bạn có một Bot Token từ BotFather. Bot đã xuất hiện trong Telegram search khi tìm username.

Bước 2: Cài Plugin Và Cấu Hình Token

Mở Claude Code session, chạy lệnh cài plugin. Sau đó reload để Claude nhận diện plugin mới. Hai lệnh này chỉ cần chạy một lần.

# Trong Claude Code session
/plugin install telegram@claude-plugins-official

# Reload để Claude nhận plugin
/reload-plugins

Bước 3: Khởi Động Session Với Flag –channels

Thoát session hiện tại và khởi động lại với flag --channels. Flag này kiểm soát MCP server nào được bật cho session này. Chỉ định plugin Telegram bằng cú pháp plugin:telegram@claude-plugins-official.

claude --channels plugin:telegram@claude-plugins-official

Bước 4: Pair Tài Khoản Telegram

Sau khi session khởi động với Channels, mở Telegram và gửi bất kỳ tin nhắn nào đến bot vừa tạo. Bot sẽ trả về một mã pairing. Quay lại Claude Code, chạy lệnh pair với mã đó.

# Gửi bất kỳ tin nhắn nào trên Telegram để lấy mã
# Bot Telegram trả về: "Your pairing code: ABC123"

# Trong Claude Code, dùng mã vừa nhận
/telegram:access pair ABC123

# Kết quả mong đợi:
Paired successfully with user ID 987654321

Bước 5: Khóa Allowlist Bảo Mật

Sau khi pair thành công, khóa allowlist để chỉ tài khoản của bạn mới gửi được lệnh. Bước này không bắt buộc nhưng mình khuyến nghị luôn làm để tránh bot bị người khác tương tác.

# Khóa chỉ cho phép ID đã pair
/telegram:access policy allowlist

Checkpoint: Gửi một tin nhắn từ Telegram đến bot. Claude Code nên nhận được và phản hồi trong terminal.

[IMAGE: Screenshot giao diện BotFather Telegram tạo bot mới với token – search terms: BotFather Telegram new bot creation token screenshot]

Discord: Setup Bot Và Pair Account Như Thế Nào?

Discord có 200 triệu người dùng hàng tháng (Discord, 2025) và bot ecosystem phong phú. Setup Discord Channels phức tạp hơn Telegram một chút vì cần bật thêm Message Content Intent trong Developer Portal. Nếu bỏ qua bước này, bot sẽ không đọc được nội dung tin nhắn.

Bước 1: Tạo Discord Bot Trong Developer Portal

Truy cập discord.com/developers/applications, chọn “New Application”. Đặt tên, vào tab “Bot”, nhấn “Add Bot”. Trong phần “Privileged Gateway Intents”, bật Message Content Intent. Nhấn “Reset Token” để lấy bot token.

Lưu ý quan trọng: Message Content Intent PHẢI được bật. Nếu không, Discord sẽ chặn bot đọc nội dung tin nhắn và Channels sẽ không nhận được lệnh của bạn. Đây là lỗi phổ biến nhất khi setup Discord.

Bước 2: Mời Bot Vào Server Và Lấy Token

Trong tab “OAuth2”, mục “URL Generator”, chọn scope “bot” và permission “Send Messages” + “Read Message History”. Copy URL và mở trên browser để mời bot vào server của bạn. Sau đó quay lại tab “Bot” để copy token.

Bước 3-5: Cài Plugin, Khởi Động, Pair

Quy trình giống Telegram, chỉ thay tên platform. Chạy ba lệnh sau theo thứ tự:

# Bước 3: Cài plugin Discord
/plugin install discord@claude-plugins-official
/reload-plugins

# Bước 4: Khởi động session với Channels
claude --channels plugin:discord@claude-plugins-official

# Bước 5: Nhắn bot trong Discord để lấy pairing code
# Rồi pair trong Claude Code:
/discord:access pair XYZ789

# Khóa allowlist
/discord:access policy allowlist

Checkpoint: Nhắn bot trong Discord channel. Claude Code nhận tin nhắn và phản hồi trong terminal, đồng thời gửi reply về Discord.

[INTERNAL-LINK: permission modes Claude Code → /claude-code-permission-modes/]

iMessage: Chat Với Claude Từ iPhone Được Không?

iMessage Channels khác hoàn toàn Telegram và Discord: không cần tạo bot hay bot token. Claude Code đọc trực tiếp file database iMessage tại ~/Library/Messages/chat.db. Mình thấy đây là cách nhanh nhất để pair nếu bạn đang dùng Mac vì không cần cấu hình ngoài. Nhưng có một yêu cầu bắt buộc: Full Disk Access.

Lưu ý: iMessage Channels chỉ hoạt động trên macOS. Nếu bạn dùng Linux hoặc Windows, bỏ qua phần này và dùng Telegram hoặc Discord thay thế.

Bước 1: Cấp Full Disk Access Cho Terminal

Vào System Settings (macOS Ventura+), chọn “Privacy & Security”, mục “Full Disk Access”. Thêm Terminal (hoặc iTerm2, Ghostty tùy app bạn dùng). Restart terminal sau khi cấp quyền.

Tại sao cần Full Disk Access? File chat.db của Messages nằm trong vùng bảo vệ của macOS. Terminal thông thường không có quyền đọc file này. Khi bạn cấp Full Disk Access, Claude Code mới đọc được lịch sử tin nhắn.

Bước 2: Cài Plugin iMessage

# Trong Claude Code session
/plugin install imessage@claude-plugins-official
/reload-plugins

Bước 3-5: Khởi Động Và Pair Số Điện Thoại

Khởi động session với flag Channels cho iMessage. Sau đó gửi một tin nhắn iMessage từ iPhone đến Mac của bạn (từ số/email Apple ID của bạn). Claude Code đọc tin nhắn đó và trả về pairing code ngay trong terminal.

# Khởi động với iMessage Channels
claude --channels plugin:imessage@claude-plugins-official

# Gửi tin nhắn iMessage từ iPhone về Mac
# Claude Code hiển thị pairing code trong terminal

# Pair
/imessage:access pair DEF456

# Khóa allowlist
/imessage:access policy allowlist

Checkpoint: Nhắn từ iPhone qua iMessage. Tin nhắn xuất hiện trong Claude Code terminal trong vài giây.

[IMAGE: Sơ đồ luồng iMessage đọc chat.db trên macOS, arrow từ iPhone đến Mac đến Claude Code terminal – search terms: iMessage chat.db macOS Full Disk Access diagram]

So Sánh Channels Với Remote Control, Slack, MCP?

Hiểu rõ vị trí của Channels trong hệ sinh thái Claude Code giúp bạn chọn đúng công cụ. Mỗi tính năng giải quyết một bài toán khác nhau, và roadmap Claude Code cho thấy các tính năng này ngày càng bổ trợ nhau chặt chẽ hơn.

Channels không phải là “Remote Control cải tiến” mà là một paradigm hoàn toàn khác. Remote Control cho phép bạn ngồi xa điều khiển session đang hiển thị. Channels cho phép bên ngoài chủ động kích hoạt hành động trong session, không cần bạn nhìn vào terminal. Dùng Channels khi bạn muốn Claude phản ứng tự động với sự kiện bên ngoài.

Nếu workflow của bạn cần Claude xử lý nhiều task song song hoặc spawn sub-task, hãy kết hợp Channels với sub-agents. Tin nhắn Telegram đến, Claude dùng sub-agent để xử lý task phức tạp mà không block channel chính.

Channels và hooks cũng có điểm giao. Hooks phản ứng với sự kiện nội bộ trong Claude Code (trước/sau tool call). Channels phản ứng với sự kiện bên ngoài. Kết hợp cả hai, bạn có thể xây một pipeline khá mạnh: Telegram trigger qua Channels, xử lý qua hook pre/post, ghi log kết quả.

[INTERNAL-LINK: hooks Claude Code → /claude-code-hooks/]

Bảo Mật: Ai Được Gửi Tin Nhắn Cho Claude?

Channels mở ra kết nối từ bên ngoài vào Claude Code, nên bảo mật là ưu tiên hàng đầu. Anthropic thiết kế ba lớp bảo vệ: pairing flow, sender allowlist, và enterprise policy. Hiểu rõ từng lớp giúp bạn triển khai an toàn mà không bị lockout.

Lớp 1: Pairing Flow

Không ai có thể kết nối với Claude Code Channels chỉ bằng cách biết tên bot. Quá trình pairing yêu cầu: người dùng gửi tin nhắn đến bot, nhận về một mã tạm thời, rồi phải vào Claude Code terminal để xác nhận mã đó. Mã pairing có thời hạn ngắn và chỉ dùng một lần.

Lớp 2: Sender Allowlist

Sau khi pair, bạn nên chạy lệnh /[platform]:access policy allowlist ngay. Lệnh này chuyển bot sang chế độ whitelist: chỉ những user ID đã pair mới được gửi lệnh. Bất kỳ tin nhắn nào từ ID khác sẽ bị bỏ qua hoàn toàn.

# Xem danh sách ID đã pair
/telegram:access list

# Xóa một ID khỏi allowlist
/telegram:access revoke 987654321

# Kiểm tra policy hiện tại
/telegram:access policy

Lớp 3: Flag –channels Theo Session

Flag --channels phải được chỉ định mỗi khi khởi động session. Claude Code không tự động bật Channels mọi lúc. Đây là thiết kế có chủ ý: bạn kiểm soát session nào được expose ra ngoài. Không có session nào “luôn luôn lắng nghe” mà bạn không hay biết.

Enterprise: Quản Lý Tập Trung

Với tổ chức dùng Team hoặc Enterprise plan, admin có thể kiểm soát qua managed settings. Hai tham số quan trọng:

Tham Số Chức Năng
channelsEnabled Bật/tắt tính năng Channels cho toàn bộ org
allowedChannelPlugins Whitelist plugin nào được phép (ví dụ: chỉ cho phép Telegram, chặn Discord)

[INTERNAL-LINK: voice mode và remote control → /claude-code-voice-mode/]

Xây Channel Tùy Chỉnh Như Thế Nào?

Ngoài ba nền tảng có sẵn, Anthropic cung cấp API để bạn tự xây Custom Channel. Đây là hướng dùng khi bạn cần tích hợp với hệ thống nội bộ như webhook CI/CD, Slack tự host, hay bất kỳ event source nào khác. Tài liệu tham khảo nằm tại phần channels-reference trong Anthropic Docs.

Custom Channel về cơ bản là một MCP server tuân theo giao thức Channels. Bạn implement hai phần: event listener (nhận sự kiện từ nguồn bên ngoài) và reply handler (gửi phản hồi của Claude về nguồn đó). Mình chưa dùng Custom Channel trong production nhưng đã thử với một webhook localhost để test, hoạt động khá tốt.

Fakechat: Anthropic cung cấp tool fakechat chạy trên localhost để test Channels mà không cần bot thật. Rất hữu ích khi develop Custom Channel vì bạn có thể giả lập toàn bộ event flow trên máy cục bộ.

Nếu bạn đang xây CI/CD pipeline phức tạp và muốn Claude nhận trigger từ GitHub Actions hoặc Jenkins, Custom Channel là hướng đi. Kết hợp với /loop và /schedule để tạo workflow hoàn toàn tự động.

[IMAGE: Sơ đồ Custom Channel architecture: webhook source, event listener, MCP server, Claude Code session – search terms: custom webhook event-driven architecture diagram Claude]

Câu Hỏi Thường Gặp

Claude Code Channels có hoạt động khi đóng terminal không?

Không. Channels chỉ hoạt động khi session Claude Code đang mở và chạy với flag --channels. Đây không phải là background service. Nếu bạn cần session chạy liên tục, hãy dùng tmux hoặc screen để giữ session sống kể cả khi bạn ngắt kết nối SSH.

Mình có thể pair nhiều người dùng Telegram với một bot không?

Có, nhưng cần cân nhắc về bảo mật. Mỗi người pair riêng, Claude Code lưu danh sách tất cả ID đã pair. Khi dùng policy allowlist, tất cả ID trong danh sách đều được gửi lệnh. Để quản lý chặt hơn, bạn nên tạo bot riêng cho từng người hoặc dùng /telegram:access revoke để xóa ID không còn cần thiết.

Channels có tốn thêm token không?

Có. Mỗi tin nhắn gửi qua Channels sẽ đưa nội dung đó vào context của session, và Claude phản hồi tốn token như bình thường. Bạn nên giữ tin nhắn ngắn gọn và tránh gửi nhiều lệnh liên tục trong thời gian ngắn. Xem thêm các cách tiết kiệm token Claude Code.

Research Preview nghĩa là gì, mình có nên dùng trong production không?

Research Preview có nghĩa Anthropic vẫn đang thu thập feedback và cú pháp lệnh có thể thay đổi trong phiên bản sau. Script automation dùng Channels có thể bị lỗi sau một update. Mình khuyến nghị dùng thử cho workflow cá nhân trước, chưa nên deploy cho team lớn cho đến khi tính năng ra stable release.

Tại sao bot Telegram không phản hồi dù đã cài xong?

Ba nguyên nhân phổ biến nhất: (1) Session không được khởi động với flag --channels, chỉ cài plugin thôi chưa đủ. (2) Chưa chạy /reload-plugins sau khi cài. (3) Token bot sai hoặc bot chưa được add vào đúng chat. Kiểm tra lại ba điểm này theo thứ tự.

iMessage Channels có đọc tin nhắn cũ không?

Claude Code đọc chat.db nên về lý thuyết có quyền truy cập toàn bộ lịch sử. Tuy nhiên, plugin chỉ react với tin nhắn mới gửi sau khi session bắt đầu. Tin nhắn cũ không tự động đưa vào context trừ khi bạn hỏi Claude về chúng một cách tường minh.

Channels có hoạt động với gói Free plan không?

Trong Research Preview hiện tại, Channels chỉ khả dụng với tài khoản Pro và Max. Ngoài ra, bạn phải đăng nhập claude.ai, không dùng API key thuần túy. Anthropic chưa thông báo khi nào mở rộng ra Free plan.

Kết Luận

Claude Code Channels mở ra một hướng mới để làm việc với Claude: thay vì bạn luôn phải ngồi trước terminal, các nền tảng bên ngoài có thể chủ động đẩy sự kiện vào. Telegram với 950 triệu người dùng, Discord với 200 triệu, và iMessage cho người dùng macOS là ba lựa chọn sẵn có ngay hôm nay.

Quy trình cài đặt nhìn chung giống nhau cho cả ba nền tảng: tạo bot hoặc cấp quyền, cài plugin, reload, khởi động với --channels, pair tài khoản, khóa allowlist. Tổng cộng 6 bước, mất khoảng 10-15 phút cho lần đầu.

Vì đây là Research Preview, mình khuyến nghị bắt đầu với Telegram cho workflow cá nhân. Kết hợp Channels với Claude Code skills để tự động hóa phản hồi theo kịch bản sẵn. Khi Anthropic ra stable release, bạn đã quen với flow và sẵn sàng mở rộng hơn. Theo dõi roadmap Claude Code để biết khi nào Channels chính thức ra mắt.

Bạn đang dùng Channels cho use case nào? Để lại comment bên dưới, mình muốn nghe về những workflow thú vị mà cộng đồng developer Việt đang xây.

[INTERNAL-LINK: lịch trình và tự động hóa Claude Code → /claude-code-loop/]

Similar Posts