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 Xakki/ai-agents-skills --skill tg-notify-timersgit clone --depth 1 https://github.com/Xakki/ai-agents-skillsWrote 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/xakki/ai-agents-skills/tg-notify-timers)<a href="https://agentmods.dev/skills/xakki/ai-agents-skills/tg-notify-timers"><img src="https://agentmods.dev/badge/skills/xakki/ai-agents-skills/tg-notify-timers/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/xakki/ai-agents-skills/tg-notify-timers"><img src="https://agentmods.dev/badge/skills/xakki/ai-agents-skills/tg-notify-timers.svg" alt="Reviewed on agentmods" width="80" 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.00154 | $0.01350 |
| Opus 5 | $0.00077 | $0.00675 |
| Sonnet 5 | $0.00031 | $0.00270 |
| Haiku 4.5 | $0.00015 | $0.00135 |
Grade B, and why
tg-notify-timers scanned grade B 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 11d 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
Canonically — in the `env` of `~/.claude/settings.json` (the hooks inherit its environment). How it starts
The opening of the file, as written. The whole thing — 98 lines — stays where its author put it; the contents beside it link to each section on GitHub.
tg-notify-timers — TG-hook timers config
Manages the 7 vars the plugin hooks tg-on-notification.sh and tg-on-stop.sh
use to decide when and after what delay to send a message to Telegram.
How it works (important)
The hooks read each value as ${TG_NOTIFY_*:-<default>} — i.e. they take the number
from the env, and if the var is absent — the built-in default. The hook scripts live in
the read-only plugin cache (~/.claude/plugins/cache/...), you can't edit them —
they get overwritten on update. So the only way to change a timer is to
set an env var that overrides the default.
Canonically — in the env of ~/.claude/settings.json (the hooks inherit its environment).
The "default" profile = none of the 7 vars set → the built-in
defaults apply. Changes are picked up after a restart of Claude Code (env is read at startup).
Params
| Var | Hook | Semantics | Default |
|---|---|---|---|
TG_NOTIFY_PERM_THRESHOLD |
notification | min duration (sec) for "🔐 Требуется разрешение" | 1200 (20m) |
TG_NOTIFY_IDLE_THRESHOLD |
notification | min duration (sec) for "⏰ Ожидает ввода" | 1200 (20m) |
TG_NOTIFY_DELAY |
notification | delivery delay (cancel window, sec) | 1800 (30m) |
TG_NOTIFY_DEBOUNCE |
notification | min interval between schedules per session | 300 (5m) |
TG_NOTIFY_STOP_THRESHOLD |
stop | min task duration for a Stop notification | 1200 (20m) |
TG_NOTIFY_STOP_DELAY |
stop | Stop delivery delay (cancel window) | 1800 (30m) |
TG_NOTIFY_STOP_DEBOUNCE |
stop | min interval between Stop schedules per session | 1200 (20m) |
All values are seconds, stored in JSON as strings ("1800").
View current
jq '.env | with_entries(select(.key | startswith("TG_NOTIFY_")))' ~/.claude/settings.json
Empty → the defaults from the table apply.
Change
Edit env in ~/.claude/settings.json (directly via Edit / skill update-config,
or the jq below). One timer:
jq '.env.TG_NOTIFY_STOP_THRESHOLD = "1800"' ~/.claude/settings.json > /tmp/s.json && mv /tmp/s.json ~/.claude/settings.json
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.
- 11d ago First seen · 98 lines · 154 tokens per session scan B c66b9c4edebb
tg-notify-timers is a skill published in the GitHub repository Xakki/ai-agents-skills (6 stars, last pushed 21d ago), licensed MIT. It adds 154 tokens to every session and 1,350 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
skill-factory
A workflow that examines completed session work and turns reusable patterns into Claude Code skills.
session-wrap
Use when wrapping up a session before ending. 4 parallel subagents detect doc updates, repeated patterns, learning points, and follow-ups, then a verifier deduplicates and presents choices. Triggers on /session-wrap, session wrap, session cleanup, end of session.
relay
Session relay — compresses what's been done so far (writes a one-liner for /compact) and generates a "next task" prompt (a baton) for the user to hand off. Use on requests like "relay / hand off / next session / continue after compact / baton / handoff / clean up context and continue next task." Does not run /compact…
strategic-compact
Suggests manual context compaction at logical intervals to preserve context through task phases rather than arbitrary auto-compaction.
docs
Use when documentation generally needs to catch up with a branch before pushing or merging, covering internal developer docs, external customer-facing docs, and release notes together — "update the docs", "do a docs pass before I merge", "make sure everything's documented". Prefer this when no single documentation…
automation
Create, inspect, update, delete, and run Kun scheduled tasks or saved workflows.