Cc-skills setup
One-time bootstrap for Kokoro TTS, Telegram bot, and BotFather setup. TRIGGERS - tts setup, kokoro install, telegram bot setup, tts bootstrap, voice synthesis setup.
git clone https://github.com/terrylica/cc-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/terrylica/cc-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/tts-tg-sync/skills/setup" ~/.claude/skills/terrylica-cc-skills-setup-3a0a57 && rm -rf "$T"
plugins/tts-tg-sync/skills/setup/SKILL.mdTTS Telegram Sync Setup
Full-stack bootstrap: Kokoro TTS engine, Telegram bot, BotFather token, secrets, symlinks.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
Prerequisites
| Component | Required | Check |
|---|---|---|
| Bun | Yes | |
| mise | Yes | |
| uv | Yes | |
| Python 3.13 | Yes | |
| Homebrew | Yes | |
Workflow
Step 1: Preflight
/usr/bin/env bash << 'PREFLIGHT_EOF' echo "=== TTS Telegram Sync Preflight ===" for cmd in bun mise uv brew; do if command -v "$cmd" &>/dev/null; then echo " [OK] $cmd: $($cmd --version 2>&1 | head -1)" else echo " [FAIL] $cmd not found" fi done PREFLIGHT_EOF
Step 2: Kokoro Install
Run the Kokoro TTS engine installer:
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/marketplaces/cc-skills/plugins/tts-tg-sync}" bash "$PLUGIN_DIR/scripts/kokoro-install.sh" --install
This creates a Python 3.13 venv at
~/.local/share/kokoro/, installs MLX-Audio deps, downloads the Kokoro-82M-bf16 MLX model, and verifies MLX Metal acceleration.
Step 3: BotFather Token
Guide the user through Telegram BotFather setup:
- Open Telegram, search for @BotFather
- Send
(or verify existing bot with/newbot
)/mybots - Copy the bot token
- Store in secrets file:
mkdir -p ~/.claude/.secrets echo "BOT_TOKEN=<token>" > ~/.claude/.secrets/ccterrybot-telegram echo "CHAT_ID=<chat_id>" >> ~/.claude/.secrets/ccterrybot-telegram chmod 600 ~/.claude/.secrets/ccterrybot-telegram
Use AskUserQuestion to ask if user has an existing bot token or needs to create one.
Step 4: Symlinks
Create symlinks in
~/.local/bin/ for all TTS shell scripts:
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/marketplaces/cc-skills/plugins/tts-tg-sync}" mkdir -p ~/.local/bin for script in tts_kokoro.sh tts_kokoro_audition.sh tts_read_clipboard.sh tts_read_clipboard_wrapper.sh tts_speed_up.sh tts_speed_down.sh tts_speed_reset.sh; do ln -sf "$PLUGIN_DIR/scripts/$script" ~/.local/bin/"$script" done
Step 5: Verify
# Test Kokoro health PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/marketplaces/cc-skills/plugins/tts-tg-sync}" bash "$PLUGIN_DIR/scripts/kokoro-install.sh" --health # Test bot connectivity source ~/.claude/.secrets/ccterrybot-telegram curl -s "https://api.telegram.org/bot${BOT_TOKEN}/getMe" | jq .ok
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| uv not found | Not installed | |
| Not Apple Silicon | Intel Mac or Linux | Requires M1+ Mac (MLX Metal) |
| Model download slow | Large first download | ~400MB, wait for completion |
| Token invalid | Typo or expired | Re-verify with in BotFather |
| Symlinks broken | Plugin path changed | Re-run symlink creation step |
Post-Execution Reflection
After this skill completes, reflect before closing the task:
- Locate yourself. — Find this SKILL.md's canonical path before editing.
- What failed? — Fix the instruction that caused it.
- What worked better than expected? — Promote to recommended practice.
- What drifted? — Fix any script, reference, or dependency that no longer matches reality.
- Log it. — Evolution-log entry with trigger, fix, and evidence.
Do NOT defer. The next invocation inherits whatever you leave behind.