add-telegram
Skill1 starsChanged 41 days agoMITView on GitHub
Add Telegram channel integration via Chat SDK.
- Reads credentials
- Installs packages
16 other projects use a version of this, 2 of them edited.
Adopted by
Most recently taken up by
- nanocoai/nanoclawtheir own version, first seen Nov 3, 2026
- prathish-ks/isthmustheir own version, first seen Oct 12, 2026
- juancruzmunozalbelo/swarmclawtheir own version, first seen Oct 8, 2026
- gavrielc/nanoclawtheir own version, first seen Oct 8, 2026
- qwibitai/nanoclawtheir own version, first seen Oct 8, 2026
- TomGranot/groupguardtheir own version, first seen Sep 3, 2026
Used with
Projects with it also use add-anydoc, add-clidash and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
TomGranotSkilladd-anydoc
Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when agents need to read attached Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, or text-based PDF files without uploading them to a hosted parser.
Also in 5 projects that use this
TomGranotSkilladd-clidash
Add clidash — a zero-dependency, read-only web dashboard that derives its tabs and tables at runtime from any CLI that lists resources as JSON. Ships pre-wired for NanoClaw's ncl CLI (agent groups, sessions, channels, users, roles), plus message-activity charts, a log tail, and a read-only file viewer for group skills/CLAUDE.md/profiles.
Also in 5 projects that use this
juancruzmunozalbeloSkilladd-voice-transcription
Add voice message transcription to NanoClaw using OpenAI's Whisper API. Automatically transcribes WhatsApp voice notes so the agent can read and respond to them.
Also in 5 projects that use this
juancruzmunozalbeloSkilladd-telegram-swarm
Add Agent Swarm (Teams) support to Telegram. Each subagent gets its own bot identity in the group. Requires Telegram channel to be set up first (use /add-telegram). Triggers on "agent swarm", "agent teams telegram", "telegram swarm", "bot pool".
Also in 6 projects that use this
jaypylesSkilladd-gmail
Add Gmail integration to NanoClaw. Can be configured as a tool (agent reads/sends emails when triggered from Discord) or as a full channel (emails can trigger the agent, schedule tasks, and receive replies). Guides through GCP OAuth setup and implements the integration.
Also in 5 projects that use this
qwibitaiSkilladd-iron-proxy
Install or refresh Iron Proxy and its official Iron Control web console for NanoClaw. Use when selecting the Iron gateway, adding its management UI, configuring credentials and grants, or restoring the proxy, approval bridge, and agent guidance.
Also in 4 projects that use this
- +5 more from TomGranot
Other versions16 projects use a version of this.
Word for word · 0
None found.
Edited · 2
- microsoft/amplifier-app-nanoclaw★ 597% same
- mcarmona1064-cell/clawbridge-codex★ 190% same
Wrote their own version · 14
- gavrielc/nanoclaw★ 31ksame name
- nanocoai/nanoclaw★ 31ksame name
- qwibitai/nanoclaw★ 31ksame name
- Runchuan-BU/BioClaw★ 405same name
- DingyangLyu/MatClaw★ 98same name
- b1rdmania/ghostclaw★ 91same name
- 0-CYBERDYNE-SYSTEMS-0/FFT_nano★ 4same name
- TomGranot/groupguard★ 3same name
- prathish-ks/isthmus★ 2same name
- breakcafe/picoclaw★ 1same name
4 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository54 other files it gives its agents.
- container/AGENTS.mdAGENTS.md
- container/CLAUDE.mdCLAUDE.md
- add-atomic-chat-toolSkill
- add-codexSkill
- add-dashboardSkill
- add-deltachatSkill
- add-discordSkill
- add-emacsSkill
- add-gcal-toolSkill
- add-gchatSkill
- add-githubSkill
- add-gmail-toolSkill
- add-imessageSkill
- add-karpathy-llm-wikiSkill
- add-linearSkill
- add-macos-statusbarSkill
- add-matrixSkill
- add-mnemonSkill
- add-ollama-providerSkill
- add-ollama-toolSkill
- add-opencodeSkill
- add-piSkill
- add-resendSkill
- add-rtkSkill
- add-signalSkill
- add-slackSkill
- add-teamsSkill
- add-vercelSkill
- add-webexSkill
- add-wechatSkill
- add-whatsapp-cloudSkill
- add-whatsappSkill
- archive-tripSkill
- customizeSkill
- debugSkill
- get-qodo-rulesSkill
- init-first-agentSkill
- init-onecliSkill
- learnSkill
- manage-channelsSkill
- manage-mountsSkill
- migrate-from-openclawSkill
- migrate-from-v1Skill
- migrate-memorySkill
- migrate-nanoclawSkill
- nano-pvt-hubSkill
- new-knowledge-graph-tutorSkill
- new-tripSkill
- qodo-pr-resolverSkill
- reflectSkill
- setupSkill
- update-nanoclawSkill
- update-skillsSkill
- use-native-credential-proxySkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 104
If you're in the middle of /setup, return to the setup flow now.
“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Add Telegram Channel
Adds Telegram bot support via the Chat SDK bridge.
Install
NanoClaw doesn't ship channels in trunk. This skill copies the Telegram adapter, its formatting/pairing helpers, their tests, and the pair-telegram setup step in from the channels branch.
Pre-flight (idempotent)
Skip to Credentials if all of these are already in place:
src/channels/telegram.ts,telegram-pairing.ts,telegram-markdown-sanitize.ts(and their.test.tssiblings) all existsrc/channels/telegram-registration.test.tsexistssrc/channels/index.tscontainsimport './telegram.js';setup/pair-telegram.tsexists andsetup/index.ts'sSTEPSmap contains'pair-telegram':@chat-adapter/telegramis listed inpackage.jsondependencies
Otherwise continue. Every step below is safe to re-run.
1. Fetch the channels branch
git fetch origin channels2. Copy the adapter, helpers, tests, registration test, and setup step
git show origin/channels:src/channels/telegram.ts > src/channels/telegram.ts
git show origin/channels:src/channels/telegram-registration.test.ts > src/channels/telegram-registration.test.ts
git show origin/channels:src/channels/telegram-pairing.ts > src/channels/telegram-pairing.ts
git show origin/channels:src/channels/telegram-pairing.test.ts > src/channels/telegram-pairing.test.ts
git show origin/channels:src/channels/telegram-markdown-sanitize.ts > src/channels/telegram-markdown-sanitize.ts
git show origin/channels:src/channels/telegram-markdown-sanitize.test.ts > src/channels/telegram-markdown-sanitize.test.ts
git show origin/channels:setup/pair-telegram.ts > setup/pair-telegram.ts3. Append the self-registration import
Append to src/channels/index.ts (skip if already present):
import './telegram.js';4. Register the setup step
In setup/index.ts, add this entry to the STEPS map (right after the register line is fine; skip if already present):
'pair-telegram': () => import('./pair-telegram.js'),5. Install the adapter package (pinned)
pnpm install @chat-adapter/telegram@4.29.06. Build and validate
pnpm run build
pnpm exec vitest run src/channels/telegram-registration.test.tsBoth must be clean before proceeding. telegram-registration.test.ts is the one integration test: it imports the real channel barrel and asserts the registry contains telegram. It goes red if the import './telegram.js'; line is deleted or drifts, if the barrel fails to evaluate, or if @chat-adapter/telegram isn't installed (the import throws) — so it also implicitly verifies the dependency from step 5. The adapter also calls core's createChatSdkBridge(...); that typed core-API consumption is guarded by pnpm run build.
End-to-end message delivery against a real Telegram bot is verified manually once the service is running — see Next Steps and the pairing flow in Channel Info.
Credentials
Create Telegram Bot
- Open Telegram and search for
@BotFather - Send
/newbotand follow the prompts:- Bot name: Something friendly (e.g., "NanoClaw Assistant")
- Bot username: Must end with "bot" (e.g., "nanoclaw_bot")
- Copy the bot token (looks like
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)
Important for group chats: By default, Telegram bots only see @mentions and commands in groups. To let the bot see all messages:
- Open
@BotFather>/mybots> select your bot - Bot Settings > Group Privacy > Turn off
Configure environment
Add to .env:
TELEGRAM_BOT_TOKEN=your-bot-tokenSync to container: mkdir -p data/env && cp .env data/env/env
Next Steps
If you're in the middle of /setup, return to the setup flow now.
Otherwise, run /manage-channels to wire this channel to an agent group.
Channel Info
- type:
telegram - terminology: Telegram calls them "groups" and "chats." A "group" has multiple members; a "chat" is a 1:1 conversation with the bot.
- how-to-find-id: Do NOT ask the user for a chat ID. Telegram registration uses pairing — run
pnpm exec tsx setup/index.ts --step pair-telegram -- --intent <main|wire-to:folder|new-agent:folder>, show the user the 4-digitCODEfrom thePAIR_TELEGRAM_ISSUEDblock (follow theREMINDER_TO_ASSISTANTline in that block), and tell them to send just the 4 digits as a message from the chat they want to register (DM the bot formain, post in the group otherwise). In groups with Group Privacy ON, prefix with the bot handle:@<botname> CODE. Wrong guesses invalidate the code — if aPAIR_TELEGRAM_ATTEMPTblock arrives with a mismatchedRECEIVED_CODE, aPAIR_TELEGRAM_NEW_CODEblock will follow automatically (up to 5 regenerations); show the new code. OnPAIR_TELEGRAM STATUS=failed ERROR=max-regenerations-exceeded, ask the user if they want to try again and re-invoke the step — each invocation starts a fresh 5-attempt batch. Success emitsPAIR_TELEGRAM STATUS=successwithPLATFORM_ID,IS_GROUP, andADMIN_USER_ID. The service must be running for this to work (the polling adapter is what observes the code). - supports-threads: no
- typical-use: Interactive chat — direct messages or small groups
- default-isolation: Same agent group if you're the only participant across multiple chats. Separate agent group if different people are in different groups.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

