telegram-bot
Skill1 starsChanged 7 months agoMITView on GitHub
Send text messages and files on Telegram, or read the latest updates received by the bot. Use this skill when the user asks to send content (text, reports, logs, screenshots) to a Telegram chat or channel, or to inspect incoming messages.
8 other projects use a version of this.
Adopted by
Most recently taken up by
- oivanfelipe/claude-skillstheir own version, first seen Nov 8, 2026
- ScriptingApp/skillstheir own version, first seen Oct 28, 2026
- daniilganiev/telegram-devtheir own version, first seen Oct 8, 2026
- AceDataCloud/Skillstheir own version, first seen Oct 6, 2026
- DEXTERITY-maker/rikkahub-skillstheir own version, first seen Jul 15, 2026
- OpenClaudia/openclaudia-skillstheir own version, first seen Jun 11, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- OpenClaudia/openclaudia-skills★ 731same name
- claude-office-skills/skills★ 433same name
- AceDataCloud/Skills★ 17same name
- ScriptingApp/skills★ 16same name
- grandamenium/openclawd-lesson-1-telegram-bot★ 4same name
- DEXTERITY-maker/rikkahub-skills★ 1same name
- daniilganiev/telegram-dev★ 0same name
- oivanfelipe/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 7 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Before performing any operation, verify that the following environment variables are set in the environment:
- Very specific: line 26
If TELEGRAM_BOT_TOKEN is not set, stop and ask the user to set it before proceeding.
- Very specific: line 42
If the response contains "ok":true, the bot is configured correctly.
- Very specific: line 54
If the user provides it explicitly (e.g.
- Distinctive: line 56
If neither is available, ask the user for the chat ID before proceeding.
- Distinctive: line 58
Always ask for explicit confirmation: before sending. Show:
- Distinctive: line 86
If the user provides it explicitly, use it.
- Distinctive: line 89
Verify that the file path exists and is accessible.
- Distinctive: line 90
Ask for confirmation: before sending (file + recipient).
- Distinctive: line 136
Update type (message, callback_query, etc.)
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: Telegram Bot
This skill allows the agent to interact with the Telegram Bot API via curl,
using bash scripts included in the ./scripts/ directory.
Required Prerequisites
Before performing any operation, verify that the following environment variables are set in the environment:
| Variable | Required | Description |
TELEGRAM_BOT_TOKEN | ✅ Yes | Bot token obtained from @BotFather |
TELEGRAM_DEFAULT_CHAT_ID | ❌ No | Default numeric chat ID (e.g. your personal chat ID) |
If TELEGRAM_BOT_TOKEN is not set, stop and ask the user to set it before proceeding.
Dependencies: The scripts require curl and jq to be installed.
Supported Actions
1. Verify bot token (getMe)
On first setup or if you suspect a token issue, run the verification command:
bash "./scripts/telegram-get-me.sh"If the response contains "ok":true, the bot is configured correctly. If it contains
"ok":false, inform the user that the token is invalid.
2. Send a text message
When to use: the user asks to send text to Telegram.
Steps:
- Determine the
CHAT_ID:- If the user provides it explicitly (e.g.
123456789or-100123456), use it. - Otherwise use
$TELEGRAM_DEFAULT_CHAT_IDif set, notifying the user. - If neither is available, ask the user for the chat ID before proceeding.
- If the user provides it explicitly (e.g.
- Always ask for explicit confirmation before sending. Show:
- Recipient (chat ID)
- Preview of the text
- Build the text. You can use HTML formatting (e.g.
<b>bold</b>,<code>) or Markdown (e.g.**bold**,`code`). - Run:
bash "./scripts/telegram-send-message.sh" "<CHAT_ID>" "<PARSE_MODE>" "<TEXT>"Where <PARSE_MODE> is HTML, MarkdownV2, or leave it empty "" for plain text.
- Parse the JSON response:
"ok":true→ message sent successfully. Inform the user."ok":false→ report thedescriptionfield to the user with corrective suggestions.
3. Send a document or file
When to use: the user asks to send a file (report, log, screenshot, etc.).
Steps:
- Determine the
CHAT_ID:- If the user provides it explicitly, use it.
- Otherwise use
$TELEGRAM_DEFAULT_CHAT_IDif set, notifying the user. - If neither is available, ask the user for the chat ID before proceeding.
- Verify that the file path exists and is accessible.
- Ask for confirmation before sending (file + recipient).
- Run:
bash "./scripts/telegram-send-document.sh" "<CHAT_ID>" "<FILE_PATH>" "<CAPTION>"<CAPTION> is optional: you can pass "" if you don't want a caption.
- Interpret the response as for text messages.
Note: for files larger than 50 MB, the standard Bot API is not supported. Inform the user.
4. Send an image
When to use: the user asks to send an image (PNG, JPG, etc.).
Steps: Same as sending a document. Determine chat ID, verify the file exists, ask for confirmation, then run:
bash "./scripts/telegram-send-photo.sh" "<CHAT_ID>" "<FILE_PATH>" "<CAPTION>"Note: Images larger than 10 MB are not supported. Use telegram-send-document.sh instead for large images.
5. Read the latest updates (getUpdates)
When to use: the user wants to inspect incoming messages from the bot.
Important warning: getUpdates is incompatible with webhooks. If a webhook is active,
this call will return an error. Inform the user before proceeding.
bash "./scripts/telegram-get-updates.sh" "<OFFSET>" "<LIMIT>"<OFFSET>: use""to read all updates, orupdate_id + 1of the last read update to scroll the queue.<LIMIT>: number of updates to read (1–100). Recommended default:20.
Parse the returned JSON and list in readable form:
update_id- Update type (message, callback_query, etc.)
- Sender (name + username if present)
- Message text or content type
Security Guidelines
- ❌ Do not derive tokens or secrets from the conversation context.
- ❌ Do not perform bulk sends or automatic loops without explicit human oversight.
- ✅ For batch operations, show a summary and ask for approval before starting.
Common Error Handling
| Telegram Error | Likely Cause | Solution |
401 Unauthorized | Wrong or revoked token | Check TELEGRAM_BOT_TOKEN |
400 Bad Request: chat not found | Wrong chat ID or bot not in chat | Verify chat ID; add bot to the chat |
403 Forbidden | Bot banned from chat | Use another chat or add the bot |
429 Too Many Requests | Rate limit reached | Wait the indicated number of seconds |
TELEGRAM_BOT_TOKEN not set | Missing environment variable | Set TELEGRAM_BOT_TOKEN in the environment |
Quick Examples
Send a message to the default chat:
send "Deploy completed successfully" to the default Telegram chatSend a log file:
send the file ./logs/app.log on Telegram to chat ID 123456789Read the last 10 messages:
show me the last 10 updates received by the botDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

