Telegram bridge for receiving task updates when you are away from the keyboard.

Install

mkdir -p .claude/skills/notify && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18791" && unzip -o skill.zip -d .claude/skills/notify && rm skill.zip

Installs to .claude/skills/notify

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

On-demand AFK Telegram bridge for this repo: send completion/blocker pings to the user and receive their replies via a background listener that wakes the session when a message arrives. OFF by default — armed only when the user says they're AFK / asks to be pinged. Invokable as /notify <message>. Use when the user goes AFK, asks to steer from Telegram, or runs /notify.
371 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Launch a background listener for Telegram messages
  • Send completion or blocker pings to the user via Telegram
  • Receive user replies via a background listener
  • Re-arm the listener after each turn while AFK
  • Disarm the listener when the user returns
  • Send event-driven messages for major checkpoints or blockers

How it works

The skill establishes a two-way Telegram bridge by launching a background listener to receive messages and using a script to send notifications, allowing communication with an AFK user.

Inputs & outputs

You give it
User goes AFK or explicit /notify <message> command
You get back
Telegram messages sent to user and received replies

When to use notify

  • Notify when task finishes
  • Receive blocker alerts
  • Stay updated while AFK

About this skill

/notify — On-demand AFK Telegram bridge

A two-way bridge between an AFK user and this session via the user's personal Telegram bot. Off by default — arm it only when the user signals AFK ("I'm AFK", "ping me when done", "steer from Telegram", "going for a walk").

Prerequisite (machine-level, set up once)

The send/receive scripts and credentials live in the user's home, not the repo (they're personal + secret, so they can't be committed):

  • ~/.claude/bin/telegram-notify.shsend a message
  • ~/.claude/bin/telegram-poll.shfetch new messages (offset-tracked)
  • ~/.claude/bin/tg-listener.shforeground listener loop (receive)
  • ~/.claude/.telegram-notify.jsonbot_token + chat_id (mode 600)

If these don't exist on the machine, the bridge can't run — tell the user and stop (this template can't provision personal Telegram creds). When they exist, this skill just operationalizes them for the current repo/session.

Arming (when the user goes AFK)

  1. Immediately launch the listener via Bash(run_in_background=true):
    Bash(command="~/.claude/bin/tg-listener.sh", run_in_background=true)
    
    The loop polls Telegram and exits the moment a message arrives — that exit wakes the session. Double-arming is safe (it self-prunes prior instances).
  2. Send a one-line ack: ~/.claude/bin/telegram-notify.sh --kind=info "On it — armed for AFK."
  3. Work autonomously. When the listener fires, ingest the message and respond.
  4. Re-arm a fresh listener at the end of every turn while AFK — that's what keeps the bridge continuously connected.
  5. Disarm when the user says "I'm back" / "AFK off" / "stop pinging": stop re-arming.

When to send (send side is event-driven, not per-turn)

  • Major checkpoints: work kickoff, a PR opened, a phase done, the whole task done.
  • A true blocker needing a human decision (--kind=blocked / --kind=question), with the question + 2-3 options.
  • /notify <message> — send verbatim (--kind=info unless a kind is passed).
  • Heartbeat: if a single task runs >5 min with no ping, send a one-line --kind=info so the user knows it's alive.

Don't ping per shell command, for routine completions, or for things the user is watching on screen.

Message kinds

--kind=done (✅) · --kind=blocked (⛔) · --kind=question (❓) · --kind=info (ℹ️) · none (plain). Phone-readable: 1–4 lines, lead with the outcome, include URLs/paths, plain text (no markdown). Never send secrets.

~/.claude/bin/telegram-notify.sh --kind=done "PR #42 opened, tests green. Review running in background."
~/.claude/bin/telegram-notify.sh --kind=blocked "Migration needs prod creds. Skip backfill and ship, or wait?"

Relationship to autonomous modes

/stacked-mr (autonomous overnight stacking) runs AFK by default and uses this bridge for its checkpoint pings. When the user kicks off /stacked-mr, arm the listener as part of starting it.

When not to use it

  • When the user is not AFK or has not asked to be pinged
  • To send secrets via Telegram
  • To ping per shell command or for routine completions

Prerequisites

~/.claude/bin/telegram-notify.sh~/.claude/bin/telegram-poll.sh~/.claude/bin/tg-listener.sh~/.claude/.telegram-notify.json

Limitations

  • Requires specific scripts and credentials in the user's home directory
  • Cannot provision personal Telegram credentials
  • Never sends secrets

How it compares

This skill provides an on-demand, two-way Telegram bridge for AFK communication, enabling session wake-up and structured notifications, unlike simple one-way alerts.

Compared to similar skills

notify side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
notify (this skill)01moReviewIntermediate
session-status16moReviewBeginner
it-operations17moNo flagsAdvanced
customerio-cost-tuning010dReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry