vps-cleanup skill
Systematic VPS cleanup — analyze files, categorize by importance, safely delete temporary/old data to free disk space
Is the vps-cleanup skill safe?
Clean: nothing in its files matched our rules. We read 3 files in the folder on 2026-09-28.
No findings.
Install the vps-cleanup skill
A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.
git clone --depth 1 https://github.com/kevinnft/ai-agent-skills.git /tmp/ai-agent-skills mkdir -p ~/.claude/skills cp -r /tmp/ai-agent-skills/skills/devops/vps-cleanup ~/.claude/skills/vps-cleanup
In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub
The instructions your agent would load
SKILL.md as published, without the frontmatter. Read it on GitHub
VPS Cleanup
Systematic approach to cleaning up VPS disk space — analyze files, categorize by importance, safely delete temporary/old data without losing critical files.
When to Use
- User asks "apa yang gak penting?" or "what can I delete?"
- Disk space running low (> 80% used)
- Home directory cluttered with temporary files
- After completing projects (cleanup workspace)
Workflow
Phase 1: Analyze Current State
# Check disk usage
df -h /
# Analyze home directory
cd /home/ubuntu
du -sh * 2>/dev/null | sort -h
# Check large directories
du -h --max-depth=1 | sort -h | tail -20Phase 2: Categorize Files
For each file/directory, assess:
Phase 3: Build Decision Matrix
Create analysis table:
files = {
'file.zip': {
'size': '135M',
'type': 'backup',
'keep': True,
'reason': 'Important backup'
},
'temp-workspace/': {
'size': '538M',
'type': 'workspace',
'keep': False,
'reason': 'Temporary analysis, reports done'
},
# ... more files
}Calculate:
- Total size
- Deletable size
- Keep size
- Percentage reclaimable
Phase 4: Present Analysis
Show user:
- Summary stats (total, keep, delete, %)
- Keep list (sorted by size, with reasons)
- Delete list (sorted by size, with reasons)
- Recommendations (phased approach)
Format:
✅ KEEP (IMPORTANT)
135M backup.zip Important backup
2.4M snap/ System directory
❌ CAN DELETE (NOT IMPORTANT)
538M temp-workspace/ Temporary, work done
1.2M diagrams/ PNGs generatedPhase 5: Confirm with User
CRITICAL: Always confirm before deleting, especially for:
- Large directories (> 100 MB)
- Project directories (might have uncommitted work)
- Anything user-created (not system files)
Ask:
- "Mau gue delete sekarang?" (Want me to delete now?)
- "Ada yang mau keep?" (Anything you want to keep?)
Phase 6: Safe Deletion
# Delete directories
rm -rf ~/temp-workspace/
rm -rf ~/old-project/
# Delete files
rm ~/old-archive.tar.gz
rm ~/report.md
# Verify
ls -lh ~/
df -h /Safety checks:
- Use rm -rf only for confirmed directories
- Delete one category at a time (easier to undo if mistake)
- Verify disk space freed after deletion
User Preference Patterns
For "Delete All Unimportant"
When user says "delete semua yang gak penting" or "delete all unimportant":
DO:
- ✅ Analyze and categorize first
- ✅ Present full list with reasons
- ✅ Ask about ambiguous items (projects, large files)
- ✅ Delete after confirmation
DON'T:
- ❌ Delete immediately without analysis
- ❌ Skip showing what will be deleted
- ❌ Delete backups or system files
- ❌ Delete active projects without asking
For Safety Confirmation
When presenting cleanup plan, user may respond:
- "Aman di bersihkan?" (Safe to clean?) → User wants reassurance
- ✅ Confirm: "100% AMAN" + list what won't be deleted
- ✅ Explain worst-case scenario (e.g., "cache can be regenerated")
- ✅ Emphasize zero data loss
- ✅ Then ask: "Gas cleanup?" (Ready to proceed?)
- "Ya" (Yes) → Proceed immediately
- ✅ Execute cleanup commands
- ✅ Show progress for each step
- ✅ Verify results (before/after disk usage)
- ✅ Celebrate success: "✅ Cleanup complete! Freed XMB"
User's decision-making pattern:
- Asks for analysis → wants to see what's unused
- Asks "aman?" → wants safety confirmation
- Says "ya" → ready to execute
- Expects immediate action after confirmation (no further questions)
For Ambiguous Items
Projects (e.g., oh-my-china/):
🟡 AMBIGUOUS: oh-my-china/ (340 MB)
Type: Project
Question: "Masih aktif develop atau cuma testing?"
If active → KEEP
If testing → DELETEGenerated outputs:
🟡 OPTIONAL: diagram.png (4 MB)
Type: Output
Question: "Masih perlu atau gak?"
If needed → KEEP
If done → DELETECommon File Types
Temporary Workspaces (DELETE)
Patterns:
- -analysis/, -test/, *-workspace/
- Cloned repos for one-time analysis
- Temporary diagram folders
Indicators:
- Reports already generated
- Work completed
- No uncommitted changes
Example:
hermes-analysis/ # 538 MB
├─ 10 cloned repos
├─ ANALYSIS_REPORT.md (done)
└─ install script (used)
→ DELETE (reports done, repos installed elsewhere)Old Archives + Extracted (DELETE)
Pattern: Both .tar.gz AND extracted folder exist
Example:
gmail_research/ # 100 KB (extracted)
gmail_research_2026-05-01.tar.gz # 20 KB (archive)
→ DELETE BOTH (duplicate, old data)Temporary Reports (DELETE)
Patterns:
More skills from kevinnft/ai-agent-skills
- Aaddyosmani-tddDrives development with tests. Use when implementing any logic, fixing any bug, or changing any behavior. Use when you need to prove that code works, when a bug report arrives, or when you're about to modify existing functionality.
- AairtableAirtable REST API via curl. Records CRUD, filters, upserts.
- Aapi-and-interface-designGuides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.
- Aapi-monitoring-botsBuild monitoring bots that poll APIs and send notifications on state changes (new listings, price alerts, status updates)
- Aapple-notesManage Apple Notes via memo CLI: create, search, edit.
- Aapple-remindersApple Reminders via remindctl: add, list, complete.
- Aarchitecture-diagramDark-themed SVG architecture/cloud/infra diagrams as HTML.
- AarxivSearch arXiv papers by keyword, author, category, or ID.
- Aascii-artASCII art: pyfiglet, cowsay, boxes, image-to-ascii.
- Aascii-videoASCII video: convert video/audio to colored ASCII MP4/GIF.
- AaudiocraftAudioCraft: MusicGen text-to-music, AudioGen text-to-sound.
- CaxolotlAxolotl: YAML LLM fine-tuning (LoRA, DPO, GRPO).