Skills workspace-cleaner

Workspace Cleaner

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/brandonwise/workspace-cleaner" ~/.claude/skills/clawdbot-skills-workspace-cleaner-c89daf && rm -rf "$T"
manifest: skills/brandonwise/workspace-cleaner/SKILL.md
source content

Workspace Cleaner

Safe, automated cleanup for OpenClaw workspaces. Finds temp files, duplicates, and cruft while protecting important data.

Quick Start

# Preview what would be deleted (safe - no changes)
python3 {{SKILL_DIR}}/scripts/cleanup.py

# Actually clean up (uses trash for recovery)
python3 {{SKILL_DIR}}/scripts/cleanup.py --execute

# Custom workspace path
python3 {{SKILL_DIR}}/scripts/cleanup.py --workspace /path/to/workspace

Features

  • Dry-run by default — Always previews before deleting
  • Uses trash — Files go to system trash, recoverable
  • Size-aware — Shows sizes, can filter by threshold
  • Age filtering — Target files older than N days
  • Customizable patterns — Edit config to match your workflow
  • JSON output — Machine-readable for automation
  • Safe defaults — Never touches .git, memory/, core configs

Commands

Preview (Default)

python3 {{SKILL_DIR}}/scripts/cleanup.py

Shows what would be deleted with sizes. Makes no changes.

Execute Cleanup

python3 {{SKILL_DIR}}/scripts/cleanup.py --execute

Moves items to trash. Recoverable via system trash.

Filter by Size

# Only show items larger than 100MB
python3 {{SKILL_DIR}}/scripts/cleanup.py --min-size 100

Filter by Age

# Only show items older than 30 days
python3 {{SKILL_DIR}}/scripts/cleanup.py --min-age 30

JSON Output

# For automation/parsing
python3 {{SKILL_DIR}}/scripts/cleanup.py --json

Custom Config

# Use custom patterns file
python3 {{SKILL_DIR}}/scripts/cleanup.py --config /path/to/patterns.json

What Gets Cleaned

Default patterns (customizable via config):

CategoryPatternsSafe?
Temp downloads
*.skill
in root
Generated images
*.png
,
*.jpg
in root
macOS cruft
.DS_Store
Logs
*.log
Temp files
*.tmp
,
*.bak
,
*~
Node modules
node_modules/
in root
Python venvs
.venv*/
,
venv/
(except known)
⚠️
Duplicate reposSame remote as projects/*⚠️

What's Protected

Never deleted, regardless of patterns:

  • .git/
    directories
  • memory/
    directory
  • MEMORY.md
    ,
    SOUL.md
    ,
    USER.md
    ,
    AGENTS.md
  • projects/
    directory contents
  • skills/
    directory contents
  • Files modified in last 24 hours (unless
    --include-recent
    )

Configuration

Edit

{{SKILL_DIR}}/config/patterns.json
to customize:

{
  "temp_extensions": [".tmp", ".bak", ".log", ".skill"],
  "temp_patterns": ["*~", "#*#"],
  "image_extensions": [".png", ".jpg", ".jpeg", ".gif"],
  "protected_dirs": ["memory", "skills", "projects", ".git"],
  "protected_files": ["MEMORY.md", "SOUL.md", "USER.md", "AGENTS.md"],
  "known_venvs": [".venv-skill-scanner"]
}

HEARTBEAT Integration

Add to your

HEARTBEAT.md
for periodic cleanup checks:

## Weekly Cleanup Check
- Run workspace cleaner in preview mode
- Alert if >500MB of cruft found
- Auto-clean items >30 days old and <10MB

Safety Notes

  1. Always preview first — Run without
    --execute
    to see what would be deleted
  2. Check the trash — Files go to system trash, not permanent delete
  3. Exclude patterns — Use
    --exclude
    for files that look like cruft but aren't
  4. Backup first — For large cleanups, consider a backup

Examples

Regular Maintenance

# Weekly cleanup of obvious cruft
python3 {{SKILL_DIR}}/scripts/cleanup.py --min-age 7 --execute

Find Space Hogs

# What's taking up space?
python3 {{SKILL_DIR}}/scripts/cleanup.py --min-size 50 --json | jq '.items | sort_by(.size_mb) | reverse'

Pre-Commit Cleanup

# Clean before committing
python3 {{SKILL_DIR}}/scripts/cleanup.py --execute && git status

Requirements

  • Python 3.8+
  • trash
    command (macOS:
    brew install trash
    , Linux:
    trash-cli
    )