clean-component-removal

Original🇺🇸 English
Translated

Remove TTS and Telegram sync components cleanly. TRIGGERS - uninstall tts, remove telegram bot, uninstall kokoro, clean tts, teardown, component removal.

9installs
Added on

NPX Install

npx skill4agent add terrylica/cc-skills clean-component-removal

Clean Component Removal

Orderly teardown of TTS and Telegram bot components with proper sequencing to avoid orphaned processes and stale state.
Platform: macOS (Apple Silicon)

When to Use This Skill

  • User wants to uninstall the Kokoro TTS engine
  • User wants to remove the Telegram bot
  • User wants to clean up all TTS-related files
  • User wants to do a full teardown before reinstallation
  • User wants to remove specific components selectively

Requirements

  • No special tools needed (removal uses only
    rm
    ,
    pkill
    , and the install script)
  • User confirmation before destructive operations

Removal Order

The removal sequence matters. Components must be torn down in this order to avoid orphaned processes or lock contention.
StepComponentCommandReversible?
1Bot process
pkill -f 'bun.*src/main.ts'
Yes (restart bot)
2Kokoro venv
kokoro-install.sh --uninstall
Yes (reinstall)
3Shell symlinks
rm -f ~/.local/bin/tts_*.sh
Yes (re-symlink)
4Temp files
rm -f /tmp/kokoro-tts-*.wav /tmp/kokoro-tts.lock
N/A
5Secrets (optional)
rm -f ~/.claude/.secrets/ccterrybot-telegram
Requires re-creation

What Is NOT Removed (Unless Explicitly Asked)

These are preserved by default to allow easy reinstallation:
ResourcePathWhy 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
Centralized logs
~/.local/share/tts-telegram-sync/logs/
Audit trail

Workflow Phases

Phase 1: Confirmation

Use AskUserQuestion to confirm which components to remove. Present options:
  1. Full teardown -- Remove everything (steps 1-4, ask about secrets)
  2. TTS only -- Remove Kokoro venv + symlinks + temp files (steps 2-4)
  3. Bot only -- Stop bot process (step 1 only)
  4. Selective -- Let user pick individual steps

Phase 2: Stop Bot Process

bash
# Check if bot is running
pgrep -la 'bun.*src/main.ts'

# Stop it
pkill -f 'bun.*src/main.ts' || echo "Bot was not running"

Phase 3: Remove Kokoro Venv

bash
# Uses kokoro-install.sh --uninstall (removes venv, keeps model cache)
~/eon/cc-skills/plugins/tts-telegram-sync/scripts/kokoro-install.sh --uninstall

Phase 4: Remove Symlinks

bash
# List existing symlinks first
ls -la ~/.local/bin/tts_*.sh 2>/dev/null

# Remove them
rm -f ~/.local/bin/tts_*.sh

Phase 5: Clean Temp Files

bash
rm -f /tmp/kokoro-tts-*.wav
rm -f /tmp/kokoro-tts.lock

Phase 6: Optional Secret Removal

Only with explicit user confirmation:
bash
# Show what would be removed
ls -la ~/.claude/.secrets/ccterrybot-telegram

# Remove (requires confirmation)
rm -f ~/.claude/.secrets/ccterrybot-telegram

TodoWrite Task Templates

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

Post-Change Checklist

  • Bot process is not running (
    pgrep -la 'bun.*src/main.ts'
    returns nothing)
  • Kokoro venv removed (
    ls ~/.local/share/kokoro/.venv
    returns "No such file")
  • Symlinks removed (
    ls ~/.local/bin/tts_*.sh
    returns "No such file")
  • No stale lock file (
    ls /tmp/kokoro-tts.lock
    returns "No such file")
  • No orphan audio processes (
    pgrep -x afplay
    returns nothing)

Troubleshooting

ProblemLikely CauseFix
Symlinks still exist after removalGlob mismatch or permission
ls -la ~/.local/bin/tts_*
then
rm -f
each one
Stale lock after removalProcess 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 killLaunched with
--watch
from launchd
Check
launchctl list
for relevant agents
Audio still playing after teardown
afplay
process outlives bot
pkill -x afplay

Reference Documentation

  • Evolution Log -- Change history for this skill