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 laurigates/dotfiles --skill telegramgit clone --depth 1 https://github.com/laurigates/dotfilesWrote 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/laurigates/dotfiles/telegram)<a href="https://agentmods.dev/skills/laurigates/dotfiles/telegram"><img src="https://agentmods.dev/badge/skills/laurigates/dotfiles/telegram/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/laurigates/dotfiles/telegram"><img src="https://agentmods.dev/badge/skills/laurigates/dotfiles/telegram.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00117 | $0.02544 |
| Opus 5.5 | $0.00047 | $0.01018 |
| Sonnet 5.5 | $0.00023 | $0.00509 |
| Haiku 4.5 | $0.00012 | $0.00254 |
Grade A, and why
telegram scanned grade A with 1 finding 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 1mo ago.
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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| `curl: (22) ... 401` | Token revoked or wrong | Re-issue via @BotFather | How it starts
The opening of the file, as written. The whole thing — 231 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Telegram Communication
Out-of-band channel to the user via a Telegram bot. Use it when the terminal isn't enough — the user has walked away, the task ran long, or a decision needs confirmation while the user is mobile.
For the when-to-use policy (and when not to), see
~/.claude/rules/telegram-communication.md. This skill covers the
how.
Tools
Three scripts in ~/.local/bin:
| Script | Purpose | Blocks? |
|---|---|---|
telegram-notify |
Fire-and-forget message | No |
telegram-ask |
Send a question, wait for reply, print reply to stdout | Yes |
telegram-poll |
Send a multiple-choice poll, wait for the vote, print selected option(s) | Yes |
All three read TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID from the
environment. They're sourced from ~/.api_tokens by mise — if you
hit ... not set, the user needs to add them there.
telegram-notify
telegram-notify "Build finished — 12 tests, 0 failures."
telegram-notify -s "Quiet ping" # silent (no sound)
telegram-notify -m "*Bold* and _italic_" # MarkdownV2
echo "long stdout" | telegram-notify # piped input
Returns immediately. Exit 0 on send, 2 on config error.
telegram-ask
# Default: 1-hour timeout, accept any reply
answer=$(telegram-ask "Proceed with the deploy?")
# Short timeout for an at-keyboard yes/no
answer=$(telegram-ask -t 60 "Apply the migration now?")
# Constrained reply — script re-prompts until the regex matches
answer=$(telegram-ask -p '^(YES|NO)$' "Force push to main? (YES/NO)")
Behaviour:
- Sends the question with
force_reply: trueso the Telegram client opens a reply thread on the user's phone. - Drains pending updates so old messages don't satisfy the wait.
- Long-polls (
getUpdates,timeout=30) until either a matching reply arrives or the deadline passes. While waiting, re-sends the question as a reminder at exponentially increasing intervals (default: after 5m, then 10m, 20m, ... capped by-t) — a missed phone notification gets more than one chance, without nagging someone who's simply away from their phone. Disable with-r 0. - On timeout: prints
TIMEOUTto stderr, sends a "(timed out)" notice to the chat, and exits 1. - On config error (missing token / chat id): exits 2 with a message
pointing at
~/.api_tokens.
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.
- 1mo ago Changed 1625c6b39f49
- 1mo ago First seen · 231 lines · 117 tokens per session scan A 915743e00e29
telegram is a skill published in the GitHub repository laurigates/dotfiles (10 stars, last pushed 3d ago), licensed MIT. It adds 117 tokens to every session and 2,544 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
auth-status
Check CLI and ADC logins across providers: expiry, scopes, re-login commands.
gws
Use gws for Google Workspace: Gmail, Drive, Docs, Sheets, Calendar, and Chat.
draft-mail
Draft Gmail emails and replies in the recipient's language; never send.
dprint
Format Markdown, JSON, TOML, and YAML with dprint.
delegate-tasks
Delegate task batches to agy or another harness on explicit request.
dotfiles
Chezmoi dotfiles conventions and patterns. Use when modifying dotfiles, adding new managed files, working with chezmoi templates, or syncing agent skills and subagents through agentspec. Do NOT use for installing tools, running doctor, or updating a machine through the dotfiles CLI; use manage-machine.