telegram-connect
SkillCommunicationSet up Telegram as a notification center for your Egregore — creates the group, links the bot, and stores the chat ID. Use for /telegram-connect, ''connect telegram'', or ''set up telegram notifications''.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the telegram-connect skill
What this skill tells your AI
The instructions your AI receives, as published by egregore-labs/egregore in .codex/skills/telegram-connect/SKILL.md and read by ahel’s review.
Set up Telegram as a notification center for your Egregore.
Arguments: $ARGUMENTS (none expected)
When to invoke
Trigger phrases:
- "set up telegram", "connect telegram", "add notifications", "telegram-connect"
- "telegram group", "add telegram", "enable telegram", "link telegram"
- "notification setup", "set up notifications"
Disambiguation:
- "send a message on telegram" → NOT this — use the separate notification
consent protocol in
.claude/context/notification-consent.md - "announce something" → NOT this — use
/announce
Step 1: Check current state
Check for existing telegram_chat_id — it lives in .egregore-state.json (preferred) or egregore.json (legacy):
jq -r '.telegram_chat_id // empty' .egregore-state.json 2>/dev/null || jq -r '.telegram_chat_id // empty' egregore.json 2>/dev/null
If already set, show:
Telegram is already connected.
Chat ID: {chat_id}
Group link: {group_link}
To update it, remove `telegram_chat_id` from .egregore-state.json and run `/telegram-connect` again.
And stop.
Step 2: Guide setup
Read the org slug from egregore.json:
jq -r '.slug // empty' egregore.json 2>/dev/null
If slug is set, generate the deep link with it: https://t.me/Egregore_clbot?startgroup=org_{slug}
If slug is empty, fall back to: https://t.me/Egregore_clbot?startgroup=true
Show:
To set up Telegram notifications:
1. Create a Telegram group for your team
2. Add the bot: {deep_link}
3. The bot will respond with your Chat ID — copy it
4. Get the invite link: group name → Edit → Invite Links → Copy
5. Paste both below
Then use AskUserQuestion to ask for the chat ID:
Chat ID (from the bot's message in your group):
Validate: must be a negative number (e.g., -1001234567890) — reject anything else with "That doesn't look like a Telegram chat ID. It should be a negative number like -1001234567890."
Then use AskUserQuestion to ask for the group invite link:
Group invite link:
Validate: must start with https://t.me/ — reject anything else with "That doesn't look like a Telegram invite link."
Step 3: Store and test
Read .egregore-state.json, add telegram_chat_id and telegram_group_link fields, write it back.
Important: Write to .egregore-state.json, NOT egregore.json. The state file is symlinked across worktrees so the config propagates everywhere. No branch, commit, or push is needed — it's an untracked local file.
Offer an optional test through the separate exact notification consent flow in
.claude/context/notification-consent.md. Saving the Telegram configuration is
not consent to send. Prepare without sending:
PLAN_JSON=$(bash bin/notify.sh plan group "Telegram connected! 🎉")
Show the organization, group/channel, and exact message in a dedicated Send / Edit / Cancel checkpoint. If approved and dispatched, show:
Telegram connected — test message sent to your group.
If cancelled, show Telegram connected — no test message sent. If planning or
dispatch fails, show the error and suggest checking the chat ID.
Step 4: Telemetry
bash bin/telemetry.sh emit "command" '{"command":"telegram-connect"}' 2>/dev/null &
Rules
- Never expose credentials in tool output
- The bot username is
@Egregore_clbot— NOT@egregore_bot - Only store the group invite link and chat ID, not bot tokens (those live on the API server)
- Store in
.egregore-state.json(symlinked, untracked) — NOTegregore.json(tracked, branch-specific) - No commit/push needed — state file is local and shared via symlinks
Signals
- GitHub stars
- 288
- Forks
- 21
- Last commit
- Sep 2026
ahel review
S4info
community integration — published by egregore-labs, not telegram
Automated review, not a security audit. Ruleset v1.
Advanced
- Catalog kind
- skill
- Gateway key
telegram-connect- Source
- github.com/egregore-labs/egregore