Remove TTS and Telegram sync components cleanly. TRIGGERS - uninstall tts, remove telegram bot, uninstall kokoro, clean tts, teardown, component removal.
From tts-tg-syncnpx claudepluginhub terrylica/cc-skills --plugin tts-tg-syncThis skill is limited to using the following tools:
references/evolution-log.mdGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Configures VPN and dedicated connections like Direct Connect, ExpressRoute, Interconnect for secure on-premises to AWS, Azure, GCP, OCI hybrid networking.
Orderly teardown of TTS and Telegram bot components with proper sequencing to avoid orphaned processes and stale state.
Platform: macOS (Apple Silicon)
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.
rm, pkill, and the install script)The removal sequence matters. Components must be torn down in this order to avoid orphaned processes or lock contention.
| Step | Component | Command | Reversible? |
|---|---|---|---|
| 1 | Bot process | pkill -f 'bun.*src/main.ts' | Yes (restart bot) |
| 2 | Kokoro venv | kokoro-install.sh --uninstall | Yes (reinstall) |
| 3 | Shell symlinks | rm -f ~/.local/bin/tts_*.sh | Yes (re-symlink) |
| 4 | Temp files | rm -f /tmp/kokoro-tts-*.wav /tmp/kokoro-tts.lock | N/A |
| 5 | Secrets (optional) | rm -f ~/.claude/.secrets/ccterrybot-telegram | Requires re-creation |
These are preserved by default to allow easy reinstallation:
| Resource | Path | Why Preserved |
|---|---|---|
| Model cache | ~/.cache/huggingface/hub/models--hexgrad--Kokoro-82M | ~400MB download, reusable |
| Bot source code | ~/.claude/automation/claude-telegram-sync/ | Git-tracked, not ephemeral |
| mise.toml config | ~/.claude/automation/claude-telegram-sync/mise.toml | Configuration SSoT |
| Launchd logs | ~/.local/state/launchd-logs/telegram-bot/ | Rotated by log-rotation |
| NDJSON audit | ~/.claude/automation/claude-telegram-sync/logs/audit/ | Self-rotating 14d |
Use AskUserQuestion to confirm which components to remove. Present options:
# Check if bot is running
pgrep -la 'bun.*src/main.ts'
# Stop it
pkill -f 'bun.*src/main.ts' || echo "Bot was not running"
# Uses kokoro-install.sh --uninstall (removes venv, keeps model cache)
~/eon/cc-skills/plugins/tts-tg-sync/scripts/kokoro-install.sh --uninstall
# List existing symlinks first
ls -la ~/.local/bin/tts_*.sh 2>/dev/null
# Remove them
rm -f ~/.local/bin/tts_*.sh
rm -f /tmp/kokoro-tts-*.wav
rm -f /tmp/kokoro-tts.lock
Only with explicit user confirmation:
# Show what would be removed
ls -la ~/.claude/.secrets/ccterrybot-telegram
# Remove (requires confirmation)
rm -f ~/.claude/.secrets/ccterrybot-telegram
1. [Confirm] Ask user which components to remove via AskUserQuestion
2. [Stop] Stop bot process
3. [Venv] Run kokoro-install.sh --uninstall
4. [Symlinks] Remove ~/.local/bin/ symlinks
5. [Temp] Clean /tmp/ TTS files
6. [Secrets] Optionally remove secrets (with confirmation)
7. [Verify] Confirm all selected components removed
pgrep -la 'bun.*src/main.ts' returns nothing)ls ~/.local/share/kokoro/.venv returns "No such file")ls ~/.local/bin/tts_*.sh returns "No such file")ls /tmp/kokoro-tts.lock returns "No such file")pgrep -x afplay returns nothing)| Problem | Likely Cause | Fix |
|---|---|---|
| Symlinks still exist after removal | Glob mismatch or permission | ls -la ~/.local/bin/tts_* then rm -f each one |
| Stale lock after removal | Process died without cleanup | rm -f /tmp/kokoro-tts.lock |
| Model cache taking space | ~400MB in HuggingFace cache | rm -rf ~/.cache/huggingface/hub/models--hexgrad--Kokoro-82M |
| Bot respawns after kill | Launched with --watch from launchd | Check launchctl list for relevant agents |
| Audio still playing after teardown | afplay process outlives bot | pkill -x afplay |
After this skill completes, reflect before closing the task:
Do NOT defer. The next invocation inherits whatever you leave behind.