Tg Bot Ops
serejaris/personal-corp-os
A skill your agent uses when operating, debugging, deploying, or monitoring a Telegram bot or Telegram-to-agent gateway.
Connect a Telegram bot to the Vellum Assistant gateway with automated webhook registration and credential storage
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add vellum-ai/vellum-assistant --skill telegram-setup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vellum-ai/vellum-assistant telegram-setup --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/telegram-setup .claude/skills/telegram-setup && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "telegram-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/telegram-setup into .claude/skills/telegram-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-setup", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vellum-ai/vellum-assistant/tree/main/skills/telegram-setupType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vellum-ai/vellum-assistant --skill telegram-setup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vellum-ai/vellum-assistant telegram-setup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/telegram-setup .agents/skills/telegram-setup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "telegram-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/telegram-setup into .agents/skills/telegram-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-setup", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vellum-ai/vellum-assistant --skill telegram-setup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vellum-ai/vellum-assistant telegram-setup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/telegram-setup .cursor/skills/telegram-setup && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "telegram-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/telegram-setup into .cursor/skills/telegram-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-setup", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vellum-ai/vellum-assistant.git --path skills/telegram-setup--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vellum-ai/vellum-assistant --skill telegram-setup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vellum-ai/vellum-assistant telegram-setup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/telegram-setup .gemini/skills/telegram-setup && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "telegram-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/telegram-setup into .gemini/skills/telegram-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-setup", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vellum-ai/vellum-assistant telegram-setupInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vellum-ai/vellum-assistant --skill telegram-setup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/telegram-setup .github/skills/telegram-setup && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "telegram-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/telegram-setup into .github/skills/telegram-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-setup", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vellum-ai/vellum-assistant --skill telegram-setup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vellum-ai/vellum-assistant telegram-setup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/telegram-setup .opencode/skills/telegram-setup && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "telegram-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/telegram-setup into .opencode/skills/telegram-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-setup", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
telegram-setupConnect a Telegram bot to the Vellum Assistant gateway with automated webhook registration and credential storage
Telegram Setup is an agent skill from vellum-ai/vellum-assistant. Connect a Telegram bot to the Vellum Assistant gateway with automated webhook registration and credential storage
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including assets. Compatibility notes: Designed for Vellum personal assistants
It sits in Backend & APIs, covering Chatbots and conversational support and Webhooks. It works with Telegram. The repository describes itself as: An AI Assistant that’s easy to setup, does your work 24/7, knows your preferences and gets better over time. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c92ead1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Vellum personal assistants
From compatibility in the SKILL.md frontmatter.
Telegram Setup loads about 2.9k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 1,586 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
g the drawer sends it automatically, so do not wait for the user to type a confirmation. If they say they're done or askAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from vellum-ai/vellum-assistant at commit c92ead1, republished under its MIT licence (© vellum-ai). 1,586 words, ~2,929 tokens.
.claude/skills/telegram-setup/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.You are helping your user connect a Telegram bot. The wizard collects the token, the rest of setup runs automatically, and you confirm it worked.
DO NOT use this skill for runtime Telegram operations (sending, replying, reading). That is the separate messaging skill.
Telegram works in private chats and in groups and supergroups. In a private chat the assistant answers every message. In a group it answers only a message that addresses it: an @mention of the bot's username, a command such as /summary@botname, or a reply to one of its posts. Every other group message is dropped on purpose and never reaches the assistant; the gateway log records each drop with the reason bot_not_mentioned. Broadcast channels are not supported.
Telegram's privacy mode (on by default) already delivers only mentions, replies, and commands to a bot. The assistant applies the same rule itself, so promoting the bot to admin or turning privacy mode off does not make it answer unaddressed messages.
Tell the user this during setup and in the Step 5 summary. When a group message got no reply, first check that it mentioned the bot or replied to it, before diagnosing webhook or credential failures. Forum topics work: a reply lands in the topic the message was in.
Saving the token in the wizard triggers all of this:
| Step | Runs |
|---|---|
Validate the token against getMe | Automatically, on save |
Store telegram.botId and telegram.botUsername | Automatically, on save |
| Generate the webhook secret | Automatically, on save |
| Register the platform callback route | Automatically, on save |
Tell Telegram where to send updates (setWebhook) | Automatically, after the save |
Install the bot commands (setMyCommands) | Automatically, after the save |
⚠️ CRITICAL: Never run setWebhook, setMyCommands, or assistant webhooks register yourself, and never generate the webhook secret. reconcileTelegramWebhook is idempotent and already runs on the credential change the save produces. Doing it by hand races it, which is how a webhook ends up pointing somewhere stale.
Your job is Steps 1 to 5 below: open the wizard, confirm delivery, link the user's identity.
⚠️ CRITICAL: If you got here from a wizard-closed notification, or the user just said they finished setup, go straight to Step 3. A successful save leaves both credentials in place, so this step would find them and read it as "already configured" at exactly the moment that means the opposite. Stopping there skips the delivery check and the identity verification, which is the failure this flow exists to prevent.
Otherwise, run assistant credentials list --search telegram (via the bash tool). Note whether bot_token and webhook_secret are present.
assistant channels get telegram --json
and read webhook_delivery.passed: true, no indeterminate → already set up and confirmed.
Offer to show status or reconfigure, and stop here unless the user wants a
reset.passed: true with indeterminate: true → do NOT stop here. Nothing
is broken, but nothing is confirmed: the registration record is missing, or
Telegram was unreachable just now. Stopping would skip both the recovery in
Step 3 and the identity verification in Step 4. Go to Step 3 and re-check.passed: false → configured but not delivering. This is what the
Channels page shows as incomplete, and it is why the user may have asked. Go
to Step 3 and work the recovery rather than reporting it as already set up.✓ Checkpoint: You named which fields are present before branching. Do not skip the call and guess.
Call ui_show with surface_type: "channel_setup" and data: { channel: "telegram" }. The wizard is non-blocking: the tool returns immediately.
⚠️ CRITICAL: Tool call first, announcement second, in the same turn. Do not write any message saying the wizard is open until ui_show has returned success earlier in the same turn. A message claiming the wizard is open when the tool was never called shows the user an empty side panel.
After it returns success, tell the user:
I've opened the Telegram setup wizard in the side panel. It walks you through creating the bot with @BotFather and brings its token back. Telegram works in private chats and in groups. In a group, mention the bot or reply to it to get an answer; broadcast channels are not supported. It'll let me know when you're done, and I'll check Telegram is actually delivering.
Hand-off notification (phones and narrow windows). On phone-sized clients setup opens on the Contacts page instead of a side drawer and cannot auto-notify. The client sends a hidden message like [User action on channel_setup surface: moved the telegram setup to the Contacts page]. When you receive it:
It looks like setup opened on your Contacts page rather than a side panel, same steps in a different spot. When you've finished, come back and tell me and I'll check it's working.
and rely on their confirmation to trigger Step 3.
If ui_show fails, do NOT send that message. Tell the user the wizard could not be opened and troubleshoot (e.g. no connected client) before retrying.
⚠️ CRITICAL: Do NOT collect the token in chat. Do NOT use assistant credentials prompt. The wizard's secure input field is the only path for credential entry.
Triggered by the wizard-closed notification, [User action on channel_setup surface: closed the telegram setup wizard]. Closing the drawer sends it automatically, so do not wait for the user to type a confirmation. If they say they're done or ask you to check, proceed the same way.
Run assistant credentials list --search telegram. Confirm bot_token and webhook_secret are both present.
If bot_token is missing the user closed the wizard without saving. Say so and offer to reopen it. When the notification triggered this, the panel is closed and re-running Step 2's ui_show is right. When the user asked manually, the wizard may still be open, so point them back to it instead: a second ui_show over a live wizard resets their progress.
Ask whether Telegram is delivering:
assistant channels get telegram --jsonget is always live: it invalidates the cached snapshot and re-runs the
remote checks, so it reflects the state now rather than before the save.
Find the webhook_delivery check in remoteChecks. It has three
outcomes, and the third is the one that matters:
passed: true, no indeterminate → confirmed. Telegram is
registered at the address this assistant set. Continue to Step 4.passed: false → the channel is not live. Its message already
names the cause and the fix, including whether this deployment can set
its own webhook URL, so relay it rather than diagnosing yourself.passed: true with indeterminate: true → nothing is broken, and
nothing is confirmed either. Telegram could not be reached, or no
registration was recorded to compare against. Do NOT report success.
Say plainly that setup is stored but delivery could not be confirmed
yet, relay the message, and offer to check again.Registration is asynchronous. If the first check reports no webhook
registered, or reports indeterminate, wait a few seconds and run the
command once more before treating that as the answer: the recorded
registration lands when reconciliation completes.
⚠️ CRITICAL: passed: true alone is not confirmation. An unreachable
Telegram API and a missing registration record both report passed: true,
because neither found a fault, and both set indeterminate. Treating the
boolean alone as proof is precisely how this flow used to tell users their
channel was live when nothing had verified it.
⚠️ CRITICAL: Do not report success on stored credentials alone. Credentials
existing is what you would expect the moment the wizard closes and says nothing
about whether messages arrive. webhook_delivery is the check that does, and
it is the same signal the channel indicator uses.
⚠️ CRITICAL: Do not run setWebhook or suggest a tunnel yourself. If
webhook_delivery fails, the message says what to do. Registration re-runs
by itself whenever credentials or the ingress URL change, so a fix applied
elsewhere takes effect without you calling Telegram.
This links the user's Telegram identity so the assistant can deliver to them. Without it the channel works but has nobody to talk to, so do not skip it silently.
Load the guardian-verify-setup skill:
skill_load with skill: "guardian-verify-setup".If the user wants to skip, continue to Step 5 and tell them they can verify later by saying "verify me on Telegram".
Read the bot username from config rather than calling Telegram again:
assistant config get telegram.botUsernameSummarize:
Use "confirmed" only for a webhook_delivery that passed without
indeterminate. If it was indeterminate, say so in the summary rather than
rounding it up, and tell the user they can ask you to check again.
⚠️ CRITICAL: Never post the summary with a literal {botUsername} placeholder. Read the config value first and substitute it.
assistant credentials list --search telegram was called and the existing-state branch named explicitly (Step 1).ui_show returned success before any message claiming the wizard is open (Step 2).assistant channels get telegram reported webhook_delivery as passed: true without indeterminate before any delivery success was claimed (Step 3).setWebhook, setMyCommands, assistant webhooks register and getWebhookInfo were not run by hand.guardian-verify-setup was loaded and either completed or explicitly declined (Step 4).To disconnect Telegram:
assistant credentials delete --service telegram --field bot_token
assistant credentials delete --service telegram --field webhook_secret
assistant config set telegram.botUsername ""© vellum-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (assets) in skills/telegram-setup of vellum-ai/vellum-assistant.
Open the folder on GitHubat commit c92ead1
Telegram Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Telegram Setup this skillvellum-ai/vellum-assistant | 1.4k | — | ~2.9k | Automated safety check: Warn | MIT | |
| Tg Bot Opsserejaris/personal-corp-os | 229 | — | ~1.6k | Automated safety check: Notes | MIT | |
| Whatsapp Telegramericrisco/rsc-harness | 167 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Chat SDKdatabuddy-analytics/Databuddy | 1.2k | — | ~2.6k | Automated safety check: Pass | AGPL-3.0 | |
| Telegram Development Guide2025Emma/vibe-coding-cn | 23k | 1 repos | ~3.7k | Automated safety check: Pass | MIT | |
| Telegram Bot Builderaiskillstore/marketplace | 430 | 3 repos | ~2.2k | Automated safety check: Notes | None |
serejaris/personal-corp-os
A skill your agent uses when operating, debugging, deploying, or monitoring a Telegram bot or Telegram-to-agent gateway.
ericrisco/rsc-harness
A skill your agent uses when wiring an app or agent to message customers over the WhatsApp Cloud API or a Telegram bot — order updates, OTP codes, reminders, alerts and broadcasts — or when…
databuddy-analytics/Databuddy
Build multi-platform chat bots with Chat SDK (chat npm package).
2025Emma/vibe-coding-cn
Chinese-language guide to building on Telegram: bots through the Bot API, Mini Apps in JavaScript and custom clients through TDLib, with Python examples.
aiskillstore/marketplace
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots.
CraftOS-dev/CraftBot
Manage and configure Telegram bots for OpenClaw. An agent skill from CraftOS-dev/CraftBot.
vellum-ai/vellum-assistant
Create and configure a GitHub App so the assistant can push commits, open PRs, and comment under its own bot identity.
vellum-ai/vellum-assistant
Connect a Discord bot to the assistant via the Discord Gateway with guided application creation and intent configuration
vellum-ai/vellum-assistant
Create and configure a Sentry internal integration so the assistant can manage issues, alerts, and releases under its own identity
vellum-ai/vellum-assistant
Ingest a large dataset into memory as a skimmed map. An agent skill from vellum-ai/vellum-assistant.
vellum-ai/vellum-assistant
A skill your agent uses when the user wants to build, scaffold, ship, or edit a Vellum plugin that bundles multiple surfaces (hooks, tools, skills, and more) into one installable package.
vellum-ai/vellum-assistant
Connect a Slack app to the Vellum Assistant via Socket Mode.
Works with
Categories
Connect a Telegram bot to the Vellum Assistant gateway with automated webhook registration and credential storage. Telegram Setup is an agent skill from vellum-ai/vellum-assistant.
Telegram Setup fits situations like: tasks that involve Chatbots and conversational support; tasks that involve Webhooks.
Run `npx skills add vellum-ai/vellum-assistant --skill telegram-setup -a claude-code`. Or copy the skill folder (skills/telegram-setup in vellum-ai/vellum-assistant) into .claude/skills/telegram-setup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vellum-ai/vellum-assistant --skill telegram-setup -a codex`. Or copy the skill folder (skills/telegram-setup in vellum-ai/vellum-assistant) into .agents/skills/telegram-setup in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vellum-ai/vellum-assistant --skill telegram-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/telegram-setup, .gemini/skills/telegram-setup, .github/skills/telegram-setup and .opencode/skills/telegram-setup in your project.
SKILL.md names no scripts, command-line tools or credentials: Telegram Setup is instructions for the agent only. Compatibility (from SKILL.md): Designed for Vellum personal assistants.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.
Telegram Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Telegram Setup: Tg Bot Ops (serejaris/personal-corp-os, 229 stars), Whatsapp Telegram (ericrisco/rsc-harness, 167 stars), Chat SDK (databuddy-analytics/Databuddy, 1.2k stars) and Telegram Development Guide (2025Emma/vibe-coding-cn, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vellum-ai (a GitHub organization) maintains it in vellum-ai/vellum-assistant, which has 1,397 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on October 7, 2026.
Source: vellum-ai/vellum-assistant on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.