cleanup-deleted
Use when user wants to clean up Telegram by purging deleted or ghost accounts from their dialog list and contacts, or removing spam ghosts that clutter the chat list.
Best use case
cleanup-deleted is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when user wants to clean up Telegram by purging deleted or ghost accounts from their dialog list and contacts, or removing spam ghosts that clutter the chat list.
Teams using cleanup-deleted should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/cleanup-deleted/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How cleanup-deleted Compares
| Feature / Agent | cleanup-deleted | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when user wants to clean up Telegram by purging deleted or ghost accounts from their dialog list and contacts, or removing spam ghosts that clutter the chat list.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Cleanup Deleted Telegram Accounts
Scan and purge deleted/ghost accounts from your Telegram dialog list and contacts. These are accounts that were deleted by their owners or banned by Telegram but still appear as "Deleted Account" in your chat list.
The script uses 3 progressively aggressive deletion methods because Telegram's dialog cache can be stubborn:
1. **delete_dialog** — standard removal
2. **DeleteHistoryRequest** — force-clear the conversation history
3. **Block + Unblock + delete** — resets Telegram's peer state cache, then deletes
After the first pass, it re-scans for survivors and retries with method 3.
> **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.
## Preflight
1. Session must exist: `~/.local/share/telethon/<profile>.session`
- If missing, run `/tlg:setup` first
## Usage
```bash
/usr/bin/env bash << 'EOF'
SCRIPT="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/marketplaces/cc-skills/plugins/tlg}/scripts/cleanup_deleted.py"
# Scan only (no deletions)
uv run --python 3.13 "$SCRIPT" --dry-run
# Clean all profiles
uv run --python 3.13 "$SCRIPT"
# Clean specific profile
uv run --python 3.13 "$SCRIPT" -p eon
# Clean multiple specific profiles
uv run --python 3.13 "$SCRIPT" -p eon missterryli
EOF
```
## Parameters
| Parameter | Type | Description |
| -------------- | ---- | -------------------------------- |
| `-p/--profile` | list | Profiles to clean (default: all) |
| `--dry-run` | flag | Scan and report without deleting |
## What Gets Cleaned
| Source | Action |
| --------------------------- | --------------------------------------------- |
| Regular dialogs | Deleted user chats removed |
| Archived dialogs (folder=1) | Deleted user chats removed |
| Contact list | Deleted contacts removed |
| Stubborn ghosts | Block+unblock forces cache reset, then delete |
## Recommended Cadence
Run monthly or whenever you notice "Deleted Account" entries appearing in your chat list. Spam accounts that message you and later get banned by Telegram are the primary source.
## Post-Execution Reflection
After this skill completes, check before closing:
1. **Did the command succeed?** — If not, fix the instruction or error table that caused the failure.
2. **Did parameters or output change?** — If tg-cli.py's interface drifted, update Usage examples and Parameters table to match.
3. **Was a workaround needed?** — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.
Only update if the issue is real and reproducible — not speculative.Related Skills
voice-quality-audition
Audition Kokoro TTS voices to compare quality and grade. TRIGGERS - audition voices, kokoro voices, voice comparison, tts voice, voice quality, compare voices.
settings-and-tuning
Configure TTS voices, speed, timeouts, queue depth, and bot settings. TRIGGERS - configure tts, change voice, tts speed, queue depth, tts timeout, bot config, tune settings, adjust parameters.
full-stack-bootstrap
One-time bootstrap for Kokoro TTS engine, Telegram bot, and BotFather setup. TRIGGERS - setup tts, install kokoro, botfather, bootstrap tts-tg-sync, configure telegram bot, full stack setup.
diagnostic-issue-resolver
Diagnose and resolve TTS and Telegram bot issues. TRIGGERS - tts not working, bot not responding, kokoro error, audio not playing, lock stuck, telegram bot troubleshoot, diagnose issue.
component-version-upgrade
Upgrade Kokoro model, bot dependencies, or TTS components. TRIGGERS - upgrade kokoro, update model, upgrade bot, update dependencies, version bump, component update.
clean-component-removal
Remove TTS and Telegram sync components cleanly. TRIGGERS - uninstall tts, remove telegram bot, uninstall kokoro, clean tts, teardown, component removal.
send-message
Use when user wants to send a text message on Telegram as their personal account via MTProto, text someone, or message a contact by username, phone, or chat ID.
send-media
Use when user wants to send or upload a file, photo, video, voice note, or document on Telegram via their personal account.
search-messages
Use when user wants to search for messages across all Telegram chats or within a specific chat, find old messages by text, or look up Telegram message history filtered by sender.
pin-message
Use when user wants to pin or unpin a message in a Telegram chat, group, or channel, or manage pinned messages.
mark-read
Use when user wants to mark Telegram chats as read, clear unread badges and mentions, dismiss notifications, or acknowledge messages to remove the unread counter.
manage-members
Use when user wants to manage Telegram group or channel members, including inviting users, kicking or banning someone, listing members, or filtering admins.