Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add intentic/intentic --skill telegramgit clone --depth 1 https://github.com/intentic/intenticWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/intentic/intentic/telegram)<a href="https://agentmods.dev/skills/intentic/intentic/telegram"><img src="https://agentmods.dev/badge/skills/intentic/intentic/telegram.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00057 | $0.01375 |
| Opus 5 | $0.00028 | $0.00687 |
| Sonnet 5 | $0.00011 | $0.00275 |
| Haiku 4.5 | $0.00006 | $0.00137 |
Grade B, and why
telegram scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Sends data to an external URLmediumData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
`curl -s -X POST -H "Content-Type: application/json" -d '{"chat_id":<CHAT_ID>,"text":"hello"}' "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage"` Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
Authenticated with a bot token in `$TELEGRAM_BOT_TOKEN`. Talk to the Bot API with `curl`. How it starts
The opening of the file, as written. The whole thing — 79 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Telegram (connected)
Authenticated with a bot token in $TELEGRAM_BOT_TOKEN. Talk to the Bot API with curl.
Base URL: https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN, the token is IN the path, so never paste a
constructed URL anywhere it could be read; always build it from the variable.
Every method accepts POST with a JSON body and answers {"ok":true,"result":…} or
{"ok":false,"error_code":…,"description":"…"}. Check .ok: a 400 with a plain-English description is how
Telegram reports almost everything.
Setup (do this when no bot exists yet)
There is no app review and no public URL. In Telegram, message @BotFather:
/newbot→ a display name, then a username ending inbot(e.g.acme_intentic_bot).- Copy the HTTP API token it prints and paste it onto the Telegram capability.
- For a group: add the bot to the group. By default a bot in a group sees only messages that
@mentionit or reply to it: that is Telegram's privacy mode. To let it read everything,/setprivacy→ pick the bot →Disable, then remove and re-add it to the group. - Nothing else. A private chat works from the first message the user sends.
Confirm it landed: curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMe" | jq '.result | {id, username}'
Common commands
- Send a message (
<CHAT_ID>is a number, negative for groups; a public channel can be"@channelname"):curl -s -X POST -H "Content-Type: application/json" -d '{"chat_id":<CHAT_ID>,"text":"hello"}' "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" - Reply to a specific message:
curl -s -X POST -H "Content-Type: application/json" -d '{"chat_id":<CHAT_ID>,"text":"on it","reply_parameters":{"message_id":<MESSAGE_ID>}}' "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" - Post into a forum topic of a supergroup (the topic id rides in on the event as
extra.messageThreadId): add"message_thread_id":<THREAD_ID>to the body above. - React to a message with an emoji:
curl -s -X POST -H "Content-Type: application/json" -d '{"chat_id":<CHAT_ID>,"message_id":<MESSAGE_ID>,"reaction":[{"type":"emoji","emoji":"👀"}]}' "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/setMessageReaction" - Edit something you sent:
curl -s -X POST -H "Content-Type: application/json" -d '{"chat_id":<CHAT_ID>,"message_id":<MESSAGE_ID>,"text":"corrected"}' "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/editMessageText" - Send a file from the workspace:
curl -s -F chat_id=<CHAT_ID> -F document=@/work/report.pdf "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument" - Download a file someone sent (
fileIdcomes in on the event asextra.attachments[].fileId): two steps, becausegetFilehands back a path you then fetch:path=$(curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getFile?file_id=<FILE_ID>" | jq -r .result.file_path) curl -s -o /work/incoming "https://api.telegram.org/file/bot$TELEGRAM_BOT_TOKEN/$path" - Look up a chat you have the id of:
curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getChat?chat_id=<CHAT_ID>" | jq '.result | {id, type, title, username}'
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 79 lines · 57 tokens per session scan B d057cfbffd67
telegram is a skill published in the GitHub repository intentic/intentic (32 stars, last pushed today), licensed MIT. It adds 57 tokens to every session and 1,375 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 2 findings (sends data to an external url, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-06.
Other skills, from other repositories
telegram
Owner-only Telegram text bridge and Mini App gateway for the existing Ouroboros interface.
claudexor
Use the local Claudexor control plane for harness-agnostic coding work across Claude Code, Codex, Cursor, and OpenCode. Use when a task benefits from route-aware harness and account selection, quota-aware account rotation, shared thread context, read-only planning or research, best-of-N execution, or cross-harness…
openai-docs
Use when the user asks how to build with OpenAI products or APIs, asks about Codex itself or choosing Codex surfaces, needs up-to-date official documentation with citations, help choosing the latest model for a use case, latest/current/default-model prompting guidance, or model upgrade and prompt-upgrade guidance; use…
cursor-delegate
Delegate bounded light-to-medium implementation, investigation, documentation, configuration, testing, and tooling work to Cursor Bridge after the primary agent owns direction and risk boundaries. Also use when the user explicitly asks to create, keep, continue, inspect, or close the same Cursor execution session…
discovery-process
Run a full discovery cycle from problem hypothesis to validated solution. Use when a team needs a structured path through framing, interviews, synthesis, and experiments.
company-research
Create a company research brief with executive quotes, product strategy, and org context. Use when preparing for interviews, competitive analysis, partnerships, or market-entry work.