Cách điều khiển Claude Code từ điện thoại qua Telegram vào năm 2026
MarkdownHướng dẫn từng bước: tạo bot Telegram, cài plugin Claude Code Channels, bảo vệ bot bằng allowlist và chạy 24/7 trên VPS. Hướng dẫn sẵn sàng làm theo, kèm các lệnh.
Đọc toàn bộ bài viết
Các ý chính
Claude Code Channels là plugin chính thức của Anthropic kể từ ngày 20 tháng 3 năm 2026. Tạo bot qua BotFather, cài plugin bằng một lệnh, khởi động lại Claude với cờ --channels, rồi nhắn tin cho bot từ điện thoại. Claude đọc tin nhắn trực tiếp trong phiên chạy trên máy của bạn, ghi mã vào tệp và trả lời trên Telegram. Để chạy 24/7, hãy chuyển phiên sang VPS của riêng bạn bằng systemd.
Bạn có thể xem thêm tài liệu về cấu hình công cụ trong tài liệu Ailoot.
Claude Code Channels là gì và vì sao bạn cần nó
Các ý chính
Channels là plugin MCP chuyển tiếp tin nhắn từ Telegram, Discord hoặc iMessage đến một phiên Claude Code đang chạy. Phiên này xem tin nhắn như một yêu cầu thông thường của người dùng, làm việc với các tệp cục bộ của bạn và trả lời trong cùng cuộc trò chuyện. Laptop vẫn mở trong khi bạn dùng điện thoại để làm việc riêng.
Ngày 20 tháng 3 năm 2026, Anthropic phát hành Claude Code Channels, plugin chính thức để kết nối phiên Claude với các ứng dụng nhắn tin. Plugin hỗ trợ Telegram, Discord và iMessage. Tính năng này đang ở giai đoạn xem trước nghiên cứu: tài liệu có tại code.claude.com/docs/en/channels, còn mã nguồn plugin nằm trong kho mã mở anthropics/claude-plugins-official.
Nói ngắn gọn, đây là “cầu nối trò chuyện” giữa điện thoại và phiên Claude Code của bạn. Tôi nhắn cho bot: “Tiếp tục viết lại bảng giá; cập nhật ngày cho đợt tiếp theo trong business/products/practicum/README.md”, rồi bot chuyển tin nhắn đến phiên trên VPS của tôi. Claude lấy ngữ cảnh, chỉnh sửa tệp, commit các thay đổi và trả lời trên Telegram: “Xong rồi, kiểm tra commit nhé.” Laptop vẫn đóng ở nhà.
⚠️ Hạn chế chính của giai đoạn xem trước nghiên cứu: Channels là cầu nối MCP. Phiên phải đang chạy trên máy tính hoặc VPS của bạn. Khi phiên đóng, sẽ không ai nhận được tin nhắn. Vì vậy, cần cấu hình riêng để chạy 24/7 (xem phần VPS bên dưới).
Channels khác gì với những cách làm việc từ xa khác
Trong tài liệu chính thức, Anthropic có bảng so sánh trực tiếp. Đây là bản chuyển thể:
| Tính năng | Chức năng | Khi nào nên chọn |
|---|---|---|
| Claude Code trên web | Chạy tác vụ trong sandbox đám mây mới, sao chép kho mã từ GitHub | Giao một tác vụ nền độc lập rồi kiểm tra sau |
| Tích hợp Slack | Bắt đầu phiên web trong một luồng khi được nhắc đến bằng @Claude | Bắt đầu tác vụ trực tiếp từ cuộc trò chuyện nhóm |
| MCP server (thông thường) | Claude gọi server trong khi thực hiện tác vụ; server không đẩy nội dung vào phiên | Cấp cho Claude quyền truy cập theo yêu cầu vào các hệ thống bên ngoài |
| Remote Control | Bạn điều khiển phiên cục bộ từ claude.ai hoặc ứng dụng di động | Thao tác với phiên hiện có từ màn hình điện thoại |
| Channels ⭐ | Đẩy sự kiện từ nguồn không phải Claude vào phiên cục bộ đang chạy | Hỏi điều gì đó từ điện thoại rồi nhận trả lời trong chat; nhận webhook từ CI |
Khác biệt chính giữa Channels và Remote Control: Remote Control là “điện thoại như cửa sổ nhìn vào terminal”—bạn thực sự thấy con trỏ và nhấn nút. Channels là chatbot có bộ não là phiên Claude cục bộ của bạn. Với Remote Control, tôi nhìn vào terminal. Với Channels, tôi nhắn cho một trợ lý đọc được các tệp của mình.
Nếu cần toàn quyền điều khiển từ màn hình, hãy dùng Remote Control. Nếu muốn “gửi câu hỏi, tiếp tục công việc trong ngày rồi nhận câu trả lời”, hãy dùng Channels. Tôi dùng cả hai: Remote Control khi cần phê duyệt những thay đổi quan trọng, còn Channels khi đã tin tưởng tác vụ và muốn dành lại buổi tối cho mình.
Cần chuẩn bị gì trước khi bắt đầu
Các ý chính
Claude Code v2.1.80 trở lên, xác thực claude.ai được hỗ trợ hoặc khóa Anthropic Console API, đã cài Bun và có Telegram. Để chạy 24/7, bạn cần VPS chạy Ubuntu hoặc Debian. Mọi thứ hoạt động giống nhau trên macOS, Linux và WSL.
Trước khi chạy các lệnh, hãy kiểm tra danh sách sau:
- Tài khoản Anthropic. Bạn cần gói Pro, Max, Team hoặc Enterprise. Channels không có trên gói miễn phí. Khóa Anthropic Console API cũng dùng được; nếu tổ chức Console triển khai managed settings, kiểm channels được bật ở đó.
- Claude Code v2.1.80 trở lên. Kiểm tra bằng
claude --version. Nếu phiên bản cũ hơn, hãy cập nhật bằngclaude updatehoặcnpm install -g @anthropic-ai/claude-code@latest. - Bun. Plugin Channels là script Bun, không phải Node. Kiểm tra bằng
bun --version. Nếu chưa cài, chạycurl -fsSL https://bun.sh/install | bash, rồi chạysource ~/.bashrc. - Tài khoản Telegram. Tài khoản nào cũng được; điều quan trọng là bạn đã đăng nhập trên điện thoại.
- Nếu bạn dùng gói Team/Enterprise, hãy nhờ quản trị viên bật
channelsEnabledtrong managed settings hoặc qua admin-settings/claude-code. Tính năng này bị tắt theo mặc định đối với các tổ chức.
Nếu đây là lần đầu bạn nghe đến Bun thì không cần lo. Bun là một môi trường chạy JavaScript thay thế, giống như Node. Anthropic chọn Bun cho plugin Channels vì nó khởi động nhanh hơn và dễ đóng gói thành một tệp nhị phân hơn. Cài một lần rồi bạn có thể quên nó đi.
⚠️ Channels chưa hoạt động với Bedrock / Google Vertex / Azure Foundry dành cho doanh nghiệp. Tính năng này chỉ hoạt động với xác thực claude.ai hoặc Anthropic Console.
Bước 1. Tạo bot Telegram qua BotFather
Các ý chính
Mở @BotFather trong Telegram, gửi lệnh /newbot, chọn tên và username (username phải kết thúc bằng bot), rồi nhận token có dạng 12345678:AAH.... Hãy giữ token an toàn: đây là mật khẩu của bot. Bất kỳ ai nhìn thấy token đều có thể nhắn tin với tư cách bot và có khả năng chặn các tin nhắn bạn gửi cho Claude.
BotFather làm mọi việc giúp bạn—bạn chỉ cần nhấn năm lần. Các bước như sau:
- Mở @BotFather trong Telegram (bạn có thể dùng điện thoại; các bước thiết lập còn lại cũng có thể làm trên điện thoại).
- Nhấn “Start” nếu đây là lần đầu bạn sử dụng.
- Gửi lệnh
/newbot. - BotFather sẽ hỏi: “Được rồi, một bot mới. Chúng ta sẽ đặt tên cho nó là gì?” Nhập tên hiển thị, ví dụ
Trợ lý của tôi - Claude Code. - Tiếp theo, BotFather sẽ yêu cầu username. Tên này phải duy nhất trên Telegram và kết thúc bằng
bot. Ví dụ:my_claude_bothoặcmy_dev_bot. - BotFather sẽ trả lời bằng một tin nhắn như sau:
Done! Congratulations on your new bot. You will find it at
'<OFFICIAL_URL>'.
Use this token to access the HTTP API:
1234567890:AAHzlAU...
Keep your token secure and store it safely, it can be used by anyone to control your bot.
Sao chép token. Bạn sẽ cần đến nó trong hai phút nữa.
⚠️ Bảo mật token. Token bot cho phép toàn quyền điều khiển bot. Nếu token bị lộ, bất kỳ ai cũng có thể nhắn tin với tư cách bot và (có khả năng) chặn các tin nhắn bạn gửi cho Claude. Đừng đăng token lên kho mã, dán vào mã nguồn hoặc gửi trong cuộc trò chuyện. Tôi lưu token tại ~/.claude/channels/telegram/.env; plugin sẽ đặt token ở đó trong bước tiếp theo.
Bước 2. Cài plugin Telegram trong Claude Code
Các ý chính
Khởi chạy Claude Code như thường lệ, rồi nhập /plugin install telegram@claude-plugins-official trong phiên. Nếu không tìm thấy plugin, trước tiên hãy thêm marketplace chính thức bằng /plugin marketplace add anthropics/claude-plugins-official. Sau khi cài đặt, chạy /reload-plugins để kích hoạt các lệnh plugin trong phiên hiện tại.
Mở terminal trong bất kỳ thư mục nào bạn thường dùng Claude, rồi chạy:
claude
Nhập lệnh slash trong phiên:
/plugin install telegram@claude-plugins-official
Nếu Claude trả lời “Plugin not found in any marketplace”, nghĩa là client của bạn chưa biết marketplace chính thức. Hãy thêm marketplace:
/plugin marketplace add anthropics/claude-plugins-official
Hoặc cập nhật nếu bạn đã thêm marketplace trước đó:
/plugin marketplace update claude-plugins-official
Sau khi cài đặt thành công, tải lại plugin để kích hoạt các lệnh:
/reload-plugins
Bây giờ bạn sẽ có các lệnh slash như /telegram:configure và /telegram:access. Để kiểm tra, nhập /help; danh sách sẽ có phần telegram.
Bước 3. Liên kết token với plugin
Các ý chính
Trong phiên Claude, nhập /telegram:configure <token> với token từ bước 1. Lệnh này lưu token vào ~/.claude/channels/telegram/.env (chỉ bạn mới truy cập được). Ngoài ra, hãy đặt biến môi trường TELEGRAM_BOT_TOKEN trong shell trước khi khởi chạy Claude. Khi chạy thực tế, tôi dùng cách thứ hai: dễ quản lý hơn qua systemd và tránh đưa ~/.claude/ vào kho mã.
Trong phiên Claude:
/telegram:configure 1234567890:AAHzlAU...
Lệnh sẽ lưu token vào ~/.claude/channels/telegram/.env. Chỉ bạn mới truy cập được tệp này (chmod 600), nên không cần lo lắng.
Một cách khác là đặt token bằng biến môi trường. Cách này hữu ích nếu bạn triển khai Claude bằng systemd hoặc Docker và không muốn dùng lệnh tương tác:
export TELEGRAM_BOT_TOKEN="1234567890:AAHzlAU..."
claude --channels plugin:telegram@claude-plugins-official
⚠️ Khi chạy thực tế, tôi luôn dùng biến môi trường thay vì tệp .env trong thư mục nhà ~/. Cách này giúp quản lý bí mật qua systemd dễ hơn (Environment=TELEGRAM_BOT_TOKEN=...) và tránh vô tình đưa ~/.claude/ vào kho mã.
Bước 4. Khởi động lại Claude với cờ --channels
Các ý chính
Thoát phiên (exit hoặc Ctrl+D), rồi khởi chạy lại với cờ --channels plugin:telegram@claude-plugins-official. Cờ này kích hoạt plugin và yêu cầu Claude thăm dò Telegram API để tìm tin nhắn mới. Nếu không có cờ, bot vẫn tồn tại nhưng im lặng—plugin chưa hoạt động và chưa bắt đầu thăm dò.
Đây là điểm quan trọng nhất, cũng là điều khiến mọi người vướng mắc trong lần chạy đầu tiên. Chỉ cài plugin thôi là chưa đủ. Để bot thực sự bắt đầu nhận tin nhắn, bạn phải khởi chạy Claude với một cờ cụ thể:
claude --channels plugin:telegram@claude-plugins-official
Không có cờ, phiên vẫn hoạt động như thường lệ nhưng plugin Telegram chưa chạy. Khi có cờ, Claude khởi chạy MCP server của plugin, bắt đầu thăm dò Telegram API và phản hồi các tin nhắn gửi đến bot.
Sau khi khởi chạy, bạn sẽ thấy nội dung tương tự trong terminal:
✻ Welcome to Claude Code 2.1.80
Channels: telegram@claude-plugins-official (active)
Polling for messages...
Nếu không có dòng nào nhắc đến channels thì cờ chưa được nhận. Kiểm tra Claude Code có phiên bản 2.1.80+ và plugin đã được cài (/plugin list trong phiên).
⚠️ Mẹo hữu ích. Tôi thêm alias vào ~/.zshrc:
alias claude-tg="claude --channels plugin:telegram@claude-plugins-official"
Sau đó, tôi chỉ cần chạy claude-tg. Bạn có thể truyền nhiều plugin, phân tách bằng dấu cách: --channels plugin:telegram@... plugin:discord@....
Bước 5. Ghép nối tài khoản và chặn mọi người khác
Các ý chính
Mở bot của bạn trong Telegram và gửi một tin nhắn bất kỳ. Bot sẽ trả lời bằng mã ghép nối gồm sáu chữ số. Quay lại terminal và nhập /telegram:access pair <code>. Sau đó, hãy nhớ giới hạn quyền truy cập bằng allowlist: /telegram:access policy allowlist. Chỉ duyệt mã ghép của người định cấp quyền; allowlist người gửi kiểm ai tới được phiên.
Bước này liên quan đến bảo mật. Người gửi được duyệt có thể yêu cầu Claude hành động trên tệp và công cụ phiên có quyền. Chỉ ghép account định dùng và khóa chính sách người gửi trước dựa vào bot.
Các bước:
- Mở bot trong Telegram. Tìm bot bằng username
@my_claude_bothoặc liên kết trong câu trả lời của BotFather. Nhấn “Start”. - Gửi cho bot một tin nhắn bất kỳ. Ví dụ:
hi. - Bot sẽ trả lời bằng mã ghép nối. Mã sẽ trông như sau:
Hi! To pair this account, run in your Claude Code session:
/telegram:access pair 847291
This code is valid for 5 minutes.
- Quay lại terminal. Trong phiên Claude, nhập lệnh từ tin nhắn trả lời:
/telegram:access pair 847291
Claude sẽ trả lời: “Đã ghép nối tài khoản.” Bây giờ tài khoản Telegram của bạn có thể gửi lệnh.
- Bật chính sách allowlist. Chính sách này chặn tất cả mọi người, ngoại trừ các tài khoản đã ghép nối:
/telegram:access policy allowlist
Sau đó, tin nhắn từ các tài khoản khác sẽ bị bỏ qua âm thầm. Chúng không xuất hiện trong terminal và bot không trả lời—như thể chúng chưa từng tồn tại.
⚠️ Bật allowlist ngay sau khi ghép nối là điều rất quan trọng. Đừng để việc này lại sau. Không duyệt pairing lạ trong setup hoặc mặc định một phản hồi thành công chứng minh chính sách người gửi đúng. Lần đầu tiên, bot của tôi chạy không có allowlist trong mười phút và hai người dùng Telegram ngẫu nhiên đã gửi “hi” trong khoảng thời gian đó. May là lúc ấy tôi chưa cho phép lệnh ghi vào tệp.
Nếu cần thêm người khác (ví dụ, một cộng sự trong dự án):
/telegram:access pair <code from their account>
Trước tiên, họ phải nhắn cho bot, nhận mã rồi gửi mã đó cho bạn. Chỉ có thể thêm họ theo cách này.
Xem thêm hướng dẫn trong tài liệu Ailoot.
Cách chạy Claude 24/7 trên VPS của riêng bạn
Các ý chính
Phiên chạy cục bộ hoạt động khi laptop mở; đóng nắp là bot im lặng. Để Claude luôn có thể trả lời, hãy chuyển phiên sang VPS của riêng bạn: cài Claude Code và Bun, xác thực, cài/ghép plugin bằng cùng Unix user riêng rồi dùng systemd tự khởi lại. Máy chủ Coolify xử lý việc này không vấn đề gì.
Nếu muốn bot “hoạt động suốt ngày đêm” thay vì “mở laptop một tiếng rồi dùng”, phiên phải luôn chạy. Bạn có thể làm điều đó tại máy bằng tmux, nhưng VPS đơn giản và đáng tin cậy hơn.
Một cấu hình mẫu dùng VPS Coolify đồng thời lưu trữ một trang web (chi tiết trong hướng dẫn xuất bản qua Coolify). Bạn cũng có thể dùng cùng máy chủ—Claude dùng ít bộ nhớ. Nếu chưa có VPS, hãy thuê gói rẻ nhất với giá 4–5 euro mỗi tháng, chẳng hạn Hetzner CX11 / Yandex Cloud / Selectel.
Bước 1: Cài đặt hệ thống trên VPS
Trước hết quản trị viên tạo Unix account và workspace riêng. Chỉ tái dùng tài khoản hiện có sau kiểm home và ownership:
sudo useradd --create-home --shell /bin/bash claude
sudo install -d -o claude -g claude /home/claude/workspace
sudo -iu claude
Tiếp tục trong login shell claude, không home root. Cài Bun bằng installer chính thức và Claude Code bằng luồng native:
curl -fsSL https://bun.sh/install | bash
curl -fsSL https://claude.ai/install.sh | bash
Mở login shell mới cùng user để PATH mới có hiệu lực. Kiểm account và đường executable:
whoami
printf '%s\n' "$HOME"
command -v bun
command -v claude
bun --version
claude --version
cd /home/claude/workspace
claude
whoami phải in claude, HOME phải là /home/claude. Ghi đường tuyệt đối command -v trả, dùng Claude path thật trong ExecStart, thêm thư mục Bun vào PATH dịch vụ. Thiếu executable nào thì dừng.
Bước 2: Xác thực, cài và ghép nối bằng user dịch vụ
Trong cùng phiên claude tương tác, hoàn tất đăng nhập rồi lặp bước 2–5 trên bằng Unix user này: cài plugin Telegram ở user scope, cấu hình token, khởi lại với --channels, ghép Telegram của bạn và đặt policy allowlist. Thử tin và phản hồi trước cấu hình dịch vụ. Không chép cấu hình/credential Claude của root vào home này.
Cả xác thực thuê bao claude.ai và khóa Anthropic Console API đều hỗ trợ. Team/Enterprise cần tổ chức bật; tổ chức Console managed cũng phải đáp ứng thiết lập channels. Console tính API, không thuộc thuê bao claude.ai. Giữ cùng account và cách xác thực khi chuyển shell tương tác sang dịch vụ.
Bước 3: Chạy phiên bằng systemd
Thoát shell user dịch vụ, tạo unit bằng quản trị viên. Unit dưới giả định đã kiểm ra /home/claude/.local/bin/claude, /home/claude/.bun/bin/bun; thay bằng đầu ra thật nếu khác. Cấp cùng môi trường xác thực đã chọn và token bot, giữ unit chỉ quản trị viên đọc, không commit bí mật. Tạo service tự khởi và restart sau lỗi:
cat > /etc/systemd/system/claude-code.service <<'EOF'
[Unit]
Description=Claude Code with Telegram channel
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=claude
WorkingDirectory=/home/claude/workspace
Environment="HOME=/home/claude"
Environment="TELEGRAM_BOT_TOKEN=1234567890:AAH..."
Environment="PATH=/home/claude/.local/bin:/home/claude/.bun/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/home/claude/.local/bin/claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable claude-code
systemctl start claude-code
Sau đây là các thiết lập tôi đã bật:
Type=simple— chế độ đơn giản; systemd xem tiến trình là đã khởi chạy ngay khi nó bắt đầu.User=claude— chạy dưới một người dùng riêng, không phải root. An toàn hơn.WorkingDirectory=/home/claude/workspace— workspace đã chuẩn bị thuộc user dịch vụ. Đặt kho định dùng ở đó trước startup; không để clone thuộc root hay chạy từ home root.Environment=TELEGRAM_BOT_TOKEN=...— token được truyền trực tiếp cho tiến trình. Không cần tệp.env.--dangerously-skip-permissions— cần thiết để chạy không giám sát. Nếu không có cờ này, Claude sẽ chờ câu trả lời “yes/no” của bạn trước mỗi hành động và phiên sẽ bị treo. Allowlist nhận diện người gửi, không làm lệnh họ yêu cầu an toàn. Chỉ dùng bypass này ở môi trường cách ly với tệp, credential và mạng chủ động hạn chế.Restart=on-failure— nếu tiến trình gặp sự cố (Claude bị treo hoặc mạng ngừng hoạt động), systemd sẽ khởi động lại sau 10 giây.
Xem log bằng lệnh:
journalctl -u claude-code -f
Nếu có sự cố, journalctl -u claude-code -n 100 sẽ hiển thị 100 dòng cuối.
Bước 4: Kiểm tra bot đang hoạt động
Chỉ khởi service sau setup tương tác có phản hồi Telegram thật. Gửi cùng bot tin vô hại từ tài khoản đã ghép, xác nhận phản hồi lẫn log service. Tương tác chạy nhưng systemd lỗi thì so Unix user, HOME, workspace, executable path, PATH và môi trường xác thực trước.
Muốn đổi pairing sau, dừng service, chạy sudo -iu claude, vào /home/claude/workspace, mở cùng channel tương tác. Ghép và bật allowlist tại đó, thoát rồi bật service. Không chạy hai poller cho cùng bot đồng thời. journalctl đọc log, không cung cấp prompt Claude tương tác.
5 vấn đề thường gặp trên máy chủ production và cách tránh
Các ý chính
Tôi tổng hợp các vấn đề từ một tuần thiết lập production: systemd không thấy Bun, long polling ngừng hoạt động sau khi không dùng trong thời gian dài, giới hạn gói Max hết giữa ngày, --dangerously-skip-permissions có thể gây rò rỉ và allowlist bị quên sau khi cài đặt lại. Mỗi vấn đề đều có thể giải quyết bằng một dòng cấu hình, nhưng nếu không biết trước, bạn sẽ gặp chúng trong vài ngày nữa.
1. Bun không nằm trong PATH của systemd
systemd khởi chạy tiến trình với môi trường tối thiểu: nó không thấy các biến trong ~/.bashrc. Nếu chỉ cài Bun trong home root nhưng service User=claude, dịch vụ không kế thừa bản cài hay shell PATH của root.
Cách khắc phục. Cài Bun trên toàn hệ thống (/usr/local/bin/bun) hoặc truyền PATH một cách tường minh:
Environment="PATH=/home/claude/.bun/bin:/usr/local/bin:/usr/bin:/bin"
2. Phiên mất kết nối TCP với Telegram API sau thời gian dài không hoạt động
Sau 6–12 giờ không hoạt động, bot có thể “im bặt”—tin nhắn được gửi đến Telegram nhưng plugin không nhận được. Đây là trục trặc của long polling.
Cách khắc phục. Thêm lịch khởi động lại định kỳ cho systemd (mỗi 24 giờ):
Restart=always
RuntimeMaxSec=86400
Hoặc thiết lập cron job: 0 5 * * * systemctl restart claude-code (khởi động lại lúc 5 giờ sáng).
3. Giới hạn Claude Max hết giữa ngày
Nếu bạn dùng Claude nhiều qua Telegram, gói Max 5x (~$100/tháng) có thể hết giới hạn trong 4–6 giờ. Yêu cầu Telegram không khác yêu cầu từ terminal thông thường; chúng dùng chung một hạn mức.
Cách khắc phục. Đặt lời nhắc: “Bot không phản hồi—kiểm tra /stats.” Nếu chạm giới hạn, hãy chờ đến khi được đặt lại hoặc nâng cấp lên Max 20x ($200/tháng). Hướng dẫn tiết kiệm token và hướng dẫn so sánh mô hình Sonnet với Opus có thể hữu ích.
4. --dangerously-skip-permissions nguy hiểm ngay cả khi có allowlist
Cờ này tắt mọi xác nhận. Mọi lệnh bạn gửi qua Telegram đều chạy mà không hỏi: xóa tệp, gửi yêu cầu ra bên ngoài, bất cứ việc gì. Có lần tôi yêu cầu Claude “xóa các câu lệnh console.log không cần thiết”, và vì quá nhiệt tình dọn dẹp, Claude xóa mất một nửa log gỡ lỗi trong script production. Tôi khôi phục chúng bằng git, nhưng thiệt hại đã xảy ra.
Cách khắc phục. Đừng bật --dangerously-skip-permissions nếu đang làm việc với dự án quan trọng. Thay vào đó, dùng Remote Control để chạy phiên—các yêu cầu cấp quyền sẽ gửi đến điện thoại để bạn tự phê duyệt. Channels cùng --dangerously-skip-permissions phù hợp với bản nháp, tái cấu trúc và kiểm thử.
5. allowlist “hỏng” sau khi cài đặt lại
Allowlist được lưu trong ~/.claude/channels/telegram/. Nếu chuyển sang VPS mới, cài lại Claude hoặc đổi người dùng, dữ liệu ghép nối cũ sẽ không được dùng. Allowlist người gửi cũ vắng; không mặc định instance mới có chính sách truy cập trước.
Cách khắc phục. Trước khi chuyển, sao lưu ~/.claude/channels/telegram/. Sau đó chép nó trở lại. Hoặc ghép nối lại ngay sau khi cài đặt và đừng để trôi qua dù chỉ một phút giữa lúc khởi chạy bot và đặt policy allowlist.
Nên chọn Channels hay Remote Control?
Các ý chính
Channels trả lời trong chat từ phiên Claude của bạn, còn bạn gửi prompt từ điện thoại. Remote Control hiển thị màn hình terminal trên điện thoại và bạn điều khiển phiên bằng các nút. Channels tiện hơn khi “hỏi rồi đi làm việc khác”, còn Remote Control dành cho những bước quan trọng khi bạn cần xem Claude đang làm gì và phê duyệt từng hành động rủi ro.
Anthropic phát hành hai tính năng gần như cùng thời điểm: Remote Control vào ngày 25 tháng 2 năm 2026 và Channels vào ngày 20 tháng 3 năm 2026. Chúng không trùng lặp; mỗi tính năng giải quyết một vấn đề khác nhau.
| Tình huống | Channels | Remote Control |
|---|---|---|
| Hỏi “Hôm qua có những commit nào?” khi đang ở ngoài | ✅ Lý tưởng | Quá mức cần thiết—cần toàn bộ màn hình |
| Phê duyệt thay đổi tệp | ⚠️ Phê duyệt mù qua --dangerously-skip-permissions | ✅ Bạn thấy Claude định làm gì |
| Chạy Claude 24/7 | ✅ Thiết lập VPS + systemd | ⚠️ Cần để laptop mở |
| Chỉ gửi vài prompt từ điện thoại | ⚠️ Quá mức cần thiết—cần bot, token, plugin | ✅ Chỉ cần một mã QR |
| Nhận webhook từ CI / Sentry | ✅ Trường hợp sử dụng gốc | ❌ Không dành cho việc này |
| Nhóm có nhiều người | ✅ Allowlist cho nhiều tài khoản | ⚠️ Chỉ chủ sở hữu phiên |
| Giữ tệp ngoài đám mây Anthropic | ✅ Chỉ gửi văn bản qua MCP | ✅ Cũng chỉ là văn bản |
Tôi phân chia cách sử dụng như sau: dùng Channels cho công việc không đồng bộ khi ở xa laptop, thông báo CI và các tích hợp. Dùng Remote Control khi cần xem Claude đang làm gì hoặc phê duyệt một bước rủi ro.
Bạn có thể dùng cả hai cùng lúc. Bot Telegram cho bạn một kênh nhanh để “hỏi rồi nhận câu trả lời”; Remote Control cho bạn một kênh để “điều khiển những việc quan trọng”. Cả hai dùng chung hạn mức Claude.
Câu hỏi thường gặp
Các ý chính
Bảy câu hỏi thường gặp nhất về Channels: kết nối nhiều bot, điều gì xảy ra khi đóng terminal, webhook từ CI, Telegram so với Discord, giới hạn gói Team, Claude có thể thấy gì từ điện thoại của bạn và gói miễn phí. Xem thêm tài liệu trong tài liệu Ailoot.
Tôi có thể kết nối nhiều bot cùng lúc không?
Có. Cờ --channels nhận danh sách cách nhau bằng dấu cách: --channels plugin:telegram@claude-plugins-official plugin:discord@claude-plugins-official. Một phiên Claude có thể trả lời trong cả hai cuộc trò chuyện.
Điều gì xảy ra nếu tôi đóng terminal?
Phiên sẽ đóng, plugin dừng và bot im lặng. Trên VPS, phiên tiếp tục chạy trong systemd. Trên máy cục bộ, đóng laptop thì claude sẽ ngắt kết nối bằng SIGHUP sau vài giây.
Tôi có thể nhận thông báo từ CI hoặc Sentry không?
Có. Channels là kênh hai chiều. Bạn có thể viết plugin của riêng mình để chuyển tiếp webhook vào phiên bằng Channels Reference. Claude sẽ thấy sự kiện theo thời gian thực và phản hồi.
Telegram có hạn chế hơn Discord ở điểm nào không?
Các khả năng cơ bản giống nhau. Discord yêu cầu bật Message Content Intent trong cài đặt bot. iMessage chỉ hoạt động trên macOS và đọc trực tiếp cơ sở dữ liệu ~/Library/Messages/chat.db. Telegram dùng được ở mọi nơi.
Nếu dùng gói Team, tôi cần làm gì?
Quản trị viên tổ chức phải bật channelsEnabled: true trong managed settings hoặc qua admin-settings/claude-code. Nếu không, plugin vẫn kết nối nhưng tin nhắn không được chuyển đi—một cảnh báo khởi động sẽ xuất hiện trong terminal.
Claude có thể thấy gì từ điện thoại của tôi—chính cuộc trò chuyện Telegram?
Không. Claude chỉ thấy tin nhắn bạn gửi cho bot. Lịch sử trò chuyện Telegram, danh sách chat và danh bạ của bạn không thể truy cập được. Plugin MCP chỉ đọc tin nhắn gửi cho bot thông qua Telegram Bot API.
Tôi có thể chạy Claude qua Channels mà không đăng ký Pro/Max không?
Có, khóa Anthropic Console API cũng hỗ trợ, tính phí API cho tổ chức Console đó. Free claude.ai không là đường thuê bao nêu ở đây. Team/Enterprise và Console managed cần đáp ứng thiết lập bật channels.
Tiếp theo là gì
Các ý chính
Bot đã được cấu hình, allowlist đã bật và phiên đang chạy trên VPS. Tiếp theo, đưa Channels vào thói quen hằng ngày: kết nối webhook từ GitHub Actions và Sentry, kết hợp với Routines cho các tác vụ định kỳ và thiết lập công cụ theo dõi tình trạng bot. Mỗi bước mất 15–30 phút và khép lại một khoảng trống về khả năng quan sát.
Khi bot đã chạy ổn định, bạn có thể làm thêm một số việc để tận dụng Channels tốt hơn:
- Kết nối webhook từ CI. Nếu dùng GitHub Actions / GitLab CI, bạn có thể cấu hình plugin Channels để chuyển kết quả build thẳng vào phiên. Claude sẽ thấy “kiểm thử thất bại” ngay sau một lần push và đề xuất cách sửa. Xem tài liệu channels-reference.
- Kết hợp với Routines. Bạn có thể chạy Routines trong cùng phiên cho các tác vụ định kỳ. Buổi sáng, bot tự gửi “Chào buổi sáng, đây là bản tóm tắt dự án”, rồi bạn trả lời từ điện thoại: “lập báo cáo doanh thu”.
- Thiết lập công cụ theo dõi bot. Nếu bot im lặng, tôi muốn biết. Một script cron nhỏ trên VPS ping bot Telegram mỗi giờ. Nếu bot không trả lời, script gửi cảnh báo đến một kênh riêng. Nếu không có công cụ này, bot có thể ngừng hoạt động lúc 4 giờ sáng mà đến trưa bạn mới biết.
- Cân nhắc hooks. Hooks phản hồi các sự kiện Claude (bắt đầu dùng công cụ, kết thúc tin nhắn). Hooks kết hợp với Channels có thể gửi thông báo Telegram tự động như “Claude đã hoàn thành tác vụ N.”
Đừng gắn Channels vào mọi thứ. Đây là cách tiện lợi để theo dõi công việc khi bạn đang ở ngoài hoặc tại quán cà phê. Khi cần suy nghĩ nghiêm túc, hãy mở laptop và ngồi xuống. Channels giúp bạn không phải nghĩ “ồ, mình còn cần hỏi chuyện này, phải mở laptop lên” khi đang ở ngoài hoặc trên đường.
Nguồn
- Đẩy sự kiện vào phiên đang chạy bằng channels - Tài liệu Claude Code
- anthropics/claude-plugins-official trên GitHub - mã nguồn của các plugin Telegram, Discord, iMessage và fakechat
- Tiếp tục phiên cục bộ từ mọi thiết bị bằng Remote Control - Tài liệu Claude Code
Để xem thêm tài liệu về cách làm việc với công cụ, hãy xem tài liệu Ailoot.
Xem thêm chi tiết
Câu hỏi thường gặp
Vì sao bot Telegram chạy tay được nhưng lỗi khi làm dịch vụ?
So Unix user, HOME, workspace, đường executable Claude, Bun PATH và xác thực dịch vụ với lượt tương tác thành công. Cài, cấu hình và pairing bằng cùng user dịch vụ; trạng thái plugin và pairing của root là cấu hình khác.
Khóa Console API có thay đăng nhập Pro hoặc Max cho Channels không?
Có. Xác thực Anthropic Console API-key được hỗ trợ và dùng phí API Console. Kiểm tra thiết lập channels tổ chức khi cần, cấu hình token, pairing và allowlist người gửi bằng tài khoản chạy phiên.