Help us improve
Share bugs, ideas, or general feedback.
From telegram
Configures a Telegram bot channel: saves bot token, selects Whisper voice-transcription model, reviews access policy, and guides toward lockdown.
npx claudepluginhub doomkeker/telegram-multi-vibesHow this skill is triggered — by the user, by Claude, or both
Slash command
/telegram:configureThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Writes the bot token to `~/.claude/channels/telegram/.env` and orients the
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
Writes the bot token to ~/.claude/channels/telegram/.env and orients the
user on access policy. The server reads both files at boot.
Arguments passed: $ARGUMENTS
Read both state files and give the user a complete picture:
Token — check ~/.claude/channels/telegram/.env for
TELEGRAM_BOT_TOKEN. Show set/not-set; if set, show first 10 chars masked
(123456789:...).
Access — read ~/.claude/channels/telegram/access.json (missing file
= defaults: dmPolicy: "pairing", empty allowlist). Show:
Voice — report whether voice transcription is enabled: check WHISPER_MODEL
in .env, and whether whisper-cli and ffmpeg are on PATH (which). Show
on/off and which model. If off, mention /telegram:configure model <name> to
pick and download a model.
What next — end with a concrete next step based on state:
/telegram:configure <token> with the token from
BotFather."/telegram:access pair <code>."Push toward lockdown — always. The goal for every setup is allowlist
with a defined list. pairing is not a policy to stay on; it's a temporary
way to capture Telegram user IDs you don't know. Once the IDs are in, pairing
has done its job and should be turned off.
Drive the conversation this way:
pairing → "Good. Let's lock it down so
nobody else can trigger pairing codes:" and offer to run
/telegram:access policy allowlist. Do this proactively — don't wait to
be asked./telegram:access pair <code>. Run this skill again once
everyone's in and we'll lock it."allowlist → confirm this is the locked state.
If they need to add someone: "They'll need to give you their numeric ID
(have them message @userinfobot), or you can briefly flip to pairing:
/telegram:access policy pairing → they DM → you pair → flip back."Never frame pairing as the correct long-term choice. Don't skip the lockdown
offer.
<token> — save it$ARGUMENTS as the token (trim whitespace). BotFather tokens look
like 123456789:AAH... — numeric prefix, colon, long string.mkdir -p ~/.claude/channels/telegram.env if present; update/add the TELEGRAM_BOT_TOKEN= line,
preserve other keys. Write back, no quotes around the value.chmod 600 ~/.claude/channels/telegram/.env — the token is a credential.model [name] — choose / download the voice-transcription modelVoice messages are transcribed locally with whisper.cpp
(audio never leaves the machine, no API key). This picks the model and writes
WHISPER_MODEL to .env.
Curated models (whisper.cpp GGUF, from huggingface.co/ggerganov/whisper.cpp):
| name | file | size | notes |
|---|---|---|---|
turbo | ggml-large-v3-turbo.bin | ~1.6 GB | best quality, fast on Apple Silicon (recommended) |
turbo-q5 | ggml-large-v3-turbo-q5_0.bin | ~574 MB | smaller, slightly lower quality |
medium | ggml-medium.bin | ~1.5 GB | older multilingual |
small | ggml-small.bin | ~488 MB | faster, lower quality |
base | ggml-base.bin | ~148 MB | fastest, basic quality |
Base URL: https://huggingface.co/ggerganov/whisper.cpp/resolve/main/<file>
No name — list the table above and show the current WHISPER_MODEL (if set).
<name> — set it up:
<name> to its file via the table. If unknown, show the table and stop.which whisper-cli and which ffmpeg. If either is missing, tell
the user to run brew install whisper-cpp ffmpeg first, then re-run this.mkdir -p ~/.claude/channels/telegram/models.test -f), skip the download. Otherwise download
it (warn it's a large file): curl -fL -o ~/.claude/channels/telegram/models/<file> <url>..env; set/replace WHISPER_MODEL= with the absolute path
~/.claude/channels/telegram/models/<file> (preserve other keys, no quotes).
chmod 600 the file.WHISPER_LANG (default auto; e.g. ru to force Russian)
and TELEGRAM_VOICE_KEEP=1 (keep the OGG recordings instead of deleting them).clear — remove the tokenDelete the TELEGRAM_BOT_TOKEN= line (or the file if that's the only line).
.env once at boot. Token changes need a session restart
or /reload-plugins. Say so after saving.access.json is re-read on every inbound message — policy changes via
/telegram:access take effect immediately, no restart.