
Telegram 技能一個用于通過 Bot API 發(fā)送 Telegram 消息、文件和提醒的 AI 智能體技能——發(fā)送更新、使用內(nèi)聯(lián)按鈕提問并等待批準以及讀取回復。適用于 Claude Code、Gemini CLI、Cursor、OpenAI Codex、Goose 以及其他支持 Agent Skills 標準 的 AI 客戶端。功能發(fā)送- 純文本、MarkdownV2 或 HTML 消息超過 4096 字符自動拆分格式被拒絕時自動回退為純文本文件- 發(fā)送文檔圖片png/jpg/jpeg/gif/webp自動作為照片發(fā)送提問- 使用內(nèi)聯(lián)按鈕提問并等待點擊或自由文本回復手機端批準讀取- 打印自上次讀取以來的新傳入消息多機器人- 在默認機器人之外注冊額外的命名機器人多目標- 將消息路由到命名的聊天、群組或頻道鉤子集成- 接入 Claude Code 鉤子、cron 任務(wù)或 CI 進行通知純 bash curl jq —— 除了機器人令牌外無需安裝。要求bashcurljqmacOS 上用brew install jqDebian/Ubuntu 上用apt install jqmacOS 自帶 bash 和 curl通常只需要安裝jq。快速開始1. 創(chuàng)建機器人在 Telegram 中打開 BotFather發(fā)送/newbot并按照提示操作顯示名稱然后是以 “bot” 結(jié)尾的用戶名BotFather 會回復一個 HTTP API 令牌2. 運行設(shè)置bashscripts/telegram.sh setup這會引導你粘貼令牌通過getMe驗證它并讓你向新機器人發(fā)送一條消息以便它發(fā)現(xiàn)你的聊天 ID。配置寫入~/.config/telegram/config權(quán)限 600并發(fā)送一條確認消息以確認一切正常。3. 添加更多機器人可選bashscripts/telegram.sh setup--botalerts為每個額外的機器人使用不同的--bot NAME重復操作。命名機器人共享默認聊天 ID除非你為它們配置了不同的目標。4. 查找群組/頻道 ID可選要向群組或頻道而不是個人聊天發(fā)送消息將機器人添加到群組/頻道在該群組/頻道中發(fā)送任意消息運行bash scripts/telegram.sh read --all查看隨消息一起打印的聊天 ID將TARGET_NAMEchat_id添加到~/.config/telegram/config然后使用--to name使用示例發(fā)送消息# Basic alertbashscripts/telegram.sh sendDeploy finished ?# No notification soundbashscripts/telegram.sh sendlow priority update--silent# MarkdownV2 formatting (falls back to plain text if rejected)bashscripts/telegram.sh send*bold* alert--formatmd# HTML formattingbashscripts/telegram.sh sendbbold/b alert--formathtml# Named target and named botbashscripts/telegram.sh sendhi--toalerts--botwork發(fā)送文件# Send a documentbashscripts/telegram.shfilereport.pdfQ3 report# Images are auto-detected and sent as photosbashscripts/telegram.shfilescreenshot.pngBuild output# To a named target, silentlybashscripts/telegram.shfilebackup.zip--toalerts--silent提問并等待回答# Default Yes/No options, 5-minute timeoutANSWER$(bashscripts/telegram.sh askDeploy to prod?--optionsYes,No--timeout300)echo$ANSWER# Custom optionsbashscripts/telegram.sh askWhich environment?--optionsStaging,Prod,Cancel退出碼0表示已回答答案打印到 stdout退出碼2表示超時且沒有收到回復。讀取傳入消息# New messages since the last read (advances the offset)bashscripts/telegram.shread# Limit the number of messagesbashscripts/telegram.shread--limit5# Ignore the saved offset and show everything availablebashscripts/telegram.shread--all注意ask和read共享相同的每機器人游標因此一次ask會消耗后續(xù)read本會顯示的傳入消息。命令參考命令描述參數(shù)退出碼setup引導式機器人注冊 聊天 ID 發(fā)現(xiàn)--bot NAME0 成功1 錯誤send MESSAGE發(fā)送文本消息--to TARGET--bot NAME--silent--format md|html0 成功1 錯誤file PATH [CAPTION]發(fā)送文檔圖片則發(fā)送照片--to TARGET--bot NAME--silent0 成功1 錯誤ask QUESTION使用內(nèi)聯(lián)按鈕提問等待回復--options Yes,No--timeout SECS--to TARGET--bot NAME0 已回答2 超時1 錯誤read打印自上次讀取以來的新傳入消息--limit N--bot NAME--all0 成功1 錯誤配置參考環(huán)境變量優(yōu)先未在環(huán)境中設(shè)置的任何內(nèi)容都回退到~/.config/telegram/config以權(quán)限 600 創(chuàng)建TELEGRAM_BOT_TOKEN123:ABC... # default bot token TELEGRAM_CHAT_ID987654321 # default chat/target BOT_ALERTS_TOKEN456:DEF... # named bot: --bot alerts (add via: setup --bot alerts) TARGET_FAMILY-100987... # named target: --to family (any chat/group/channel id) TELEGRAM_APPROVER_IDS123456789 # default group approver user IDs (comma-separated) APPROVERS_FAMILY123456789,987654321 # approvers for --to family (overrides default)TELEGRAM_BOT_TOKEN/TELEGRAM_CHAT_ID— 默認機器人令牌和默認發(fā)送目標。BOT_NAME_TOKEN— 命名機器人的令牌使用--bot name選擇鍵名大寫例如--bot alerts→BOT_ALERTS_TOKEN。TARGET_NAMEchat_id— 命名的發(fā)送目標使用--to name選擇鍵名大寫例如--to family→TARGET_FAMILY。數(shù)字形式的--to值直接作為聊天 ID 使用無需查找。TELEGRAM_APPROVER_IDS— 允許在群組目標中回答ask的 Telegram 用戶 ID。APPROVERS_NAME— 目標特定的群組審批人例如APPROVERS_FAMILY覆蓋該命名目標的全局允許列表。TELEGRAM_CONFIG_DIR— 覆蓋配置目錄默認為~/.config/telegram。Claude Code 鉤子settings.json當 Claude 需要輸入以及完成時通知你的手機{hooks:{Notification:[{hooks:[{type:command,command:bash ~/.claude/skills/telegram/scripts/telegram.sh send \ Claude needs input in $(basename \\\$PWD\\\)\}]}],Stop:[{hooks:[{type:command,command:bash ~/.claude/skills/telegram/scripts/telegram.sh send \? Claude finished in $(basename \\\$PWD\\\)\ --silent}]}]}}任何腳本/自動化中的審批閘門if[$(bashscripts/telegram.sh askDeploy to prod?--optionsYes,No)Yes];then./deploy.shfi安全說明機器人令牌賦予對機器人的完全控制權(quán)——任何擁有它的人都可以以你的機器人身份發(fā)送/接收。請像對待密碼一樣對待它。包含令牌的 API URL 通過 stdin 傳給 curl不會暴露在 curl 進程參數(shù)中。~/.config/telegram/config以權(quán)限 600 創(chuàng)建僅所有者讀寫。僅當發(fā)送者用戶 ID 等于聊天 ID 時才接受私聊回答。群組目標需要顯式的TELEGRAM_APPROVER_IDS或目標特定的APPROVERS_NAME允許列表且ask只接受來自這些用戶 ID 的按鈕點擊和文本。默認情況下群聊中的機器人只能看到提及它們或回復它們的消息。要讀取所有群組消息要么將機器人設(shè)為管理員要么通過 BotFather/setprivacy為其禁用隱私模式。許可證Apache 2.0