Telegram Announcer
Draft and send announcements to your Telegram group with preview approval.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up β so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/announce-egregore-labs/β the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates β they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description β no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the βWhat this skill doesβ section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Claude activates this skill based on the context of your request.
What this skill does
Send an announcement to the Telegram group. Drafts a message, shows a preview for approval, then sends.
When to invoke
User says: "announce", "tell the team", "send to the group", "notify everyone", "let everyone know"
Not this: notify one person β prepare a direct notification proposal Β· handoff β /handoff
Topic: $ARGUMENTS
What to do
Step 1: Draft the message
If $ARGUMENTS is provided, use it as the topic and draft a concise announcement (2-5 lines). Pull context from the conversation β what just happened, what changed, what the team should do.
If no arguments, ask: "What should I announce?"
Message guidelines:
- Lead with what changed (feature, fix, decision, merge)
- Include the PR number or branch if relevant
- End with an action if needed ("Run /update to get it", "Review PR #N", etc.)
- Keep it under 500 chars (Telegram readability)
- No emojis unless the user's draft uses them
Step 2: Publish artifact (if relevant)
If the announcement references a document, handoff, quest, or knowledge artifact from memory/, publish it now so the final message includes a clickable link with OG preview.
Detect: Check if the conversation produced or references a specific file in memory/ (handoffs, knowledge, quests). If so, publish it:
ARTIFACT_URL=$(bash bin/publish-artifact.sh document "$FILE_PATH" \
--title "$TITLE" \
--author "$AUTHOR" \
--description "$ONE_LINE_DESCRIPTION" 2>/dev/null)
Use the appropriate type: handoff, quest, or document (for knowledge files).
- If publish succeeds: insert the returned live URL into the message draft.
- If publish fails: send the message without a link. Do NOT make up a URL.
Never fabricate artifact URLs. Only use URLs returned by publish-artifact.sh.
Step 3: Plan, preview, and confirm
Follow .claude/context/notification-consent.md. Create the group plan only
after the artifact URL and message are final:
PLAN_JSON=$(bash bin/notify.sh plan group "$MESSAGE")
Confirm via AskUserQuestion. Do NOT print the draft as text before the tool call β the harness hides text that precedes a tool call, so a draft "shown" that way is never seen and the user approves blind. The preview field is the only carrier the user actually sees:
header: "Send"
question: "Send this exact notification?"
options:
- label: "Send"
description: "Send once to the listed group channels"
- label: "Edit"
description: "I want to change the wording"
- label: "Cancel"
description: "Do not send anything"
MANDATORY: put the organization, every delivery/channel, and exact final
message in the preview field of the "Send" option. Without all three, there
is no valid consent.
If "Send" β proceed to Step 4 using that plan's id and digest. If "Edit" β cancel the plan, ask what to change, redraft, plan, and preview again. If "Cancel" β cancel the plan and stop without sending. If user types custom text β cancel the plan, use their text, create a new plan, and preview again.
Step 4: Approve and dispatch once
APPROVAL_JSON=$(bash bin/notify.sh approve \
"$PLAN_ID" "$DIGEST" APPROVE_EXACT_NOTIFICATION)
APPROVAL_TOKEN=$(printf '%s' "$APPROVAL_JSON" | jq -r '.approval_token')
bash bin/notify.sh dispatch "$PLAN_ID" "$APPROVAL_TOKEN"
Confirm: β Announced to the group.
Step 5: Telemetry
bash bin/telemetry.sh emit "command" '{"command":"announce"}' 2>/dev/null &
Examples
Simple announcement (no artifact)
> /announce greeting redesign is live
Preview:
New greeting redesign is live (PR #302 by Kaan)
Variation D: org/repo identity first, team activity
center, compact health footer.
Run /update to get it.
Send this to the group?
1. Send
2. Edit
> 1
β Announced to the group.
Announcement with artifact link
> /announce telemetry architecture doc is ready
Publishing artifact...
β Published: https://egregore.xyz/view/curvelabs/U8mscr78Vp0
Preview:
Telemetry architecture doc is up (PR #485)
Full system reference β data flow, event types,
flush modes, DB schema, admin queries.
https://egregore.xyz/view/curvelabs/U8mscr78Vp0
Run /update to get it.
Send this to the group?
1. Send
2. Edit
> 1
β Announced to the group.
Rules
- Always show the organization, every channel, and exact final message in a separate notification checkpoint.
- The user's request to announce is not consent to dispatch.
- Keep messages concise β Telegram group, not an essay
- If the user provides the exact message text in quotes, use it verbatim
- Never fabricate artifact URLs β only use URLs returned by
publish-artifact.sh
Related skills
Word Document Editor
anthropics
Create, edit, and format Word documents with tables, images, and tracked changes.
Skill Template
anthropics
A template for creating and configuring new Claude skills.
Kanban TUI
Zaloog
Manage tasks, boards, and workflows in your terminal with a CLI kanban tool.
Superpowers
obra
Jesse Vincent's full Claude Code methodology β TDD, brainstorming, git worktrees, all auto-triggering.