โโโโโโโ โโโ โโโโโโโโโโ โโโโโโโ โโโโโโโโ
โโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโ
โโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโ
โโโโโโโ โโโ โโโโโโโโโโโโโโ โโโโโโโโโ
โโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โโโ โโโโโโโ โโโ โโโ โโโโโโโ โโโโโโโโ
๐งน The Zero-Latency Developer Bloat & Zombie Process Reaper
Reclaim 50GB of dev debris and slay zombie dev servers in seconds. Now featuring intelligent priority scoring, quarantine undo vault, and drive capacity radar.
The Problem โข What's New in v2.0 โข Key Features โข Terminal UI โข Quick Start โข Commands โข Quarantine Vault โข Purge Scoring Engine โข Drive Radar โข Configuration โข Supported Artifacts โข Architecture
๐ฅ The Problem
Modern developers juggle dozens of repositories and tools every month. After a few weeks, engineering laptops silently hoard 40GB to 100GB+ of developer debris:
- Abandoned
node_modulesfrom tutorials and archived experiments. - Massive Rust
target/directories silently consuming 15GB each. - Dormant Python
.venvenvironments and build artifacts (dist,.next,.turbo,.astro). - Bloated Global Package Caches (
npm,pnpm,pip,uv,cargo,bun,deno) accumulating stale tarballs indefinitely. - Zombie Dev Servers left running in background terminal tabs, holding ports
:3000,:5173, or:8000, draining RAM, and causing frustratingEADDRINUSEerrors.
Existing tools are fragmented: npkill only cleans npm; cargo clean requires manually visiting each repository; docker prune only handles containers; and finding port hogs requires cryptic lsof -i :3000 and kill -9 terminal dances.
purge is a unified, blazing-fast reaper. It scans your workspaces concurrently, prunes directory traversal at artifact boundaries, audits global caches, slays process trees holding your dev ports, and lets you reclaim 50GB in seconds.
๐ What's New in v2.0
- ๐ฏ Purge Priority Scoring Engine (0-100 Index): Intelligent composite score weighting size footprint, staleness, ecosystem re-creation cost, and Git repository state. Easily target high-value bloat with
--min-scoreor--auto. - ๐ก๏ธ Quarantine Undo Vault (
purge clean --vault/purge vault restore): Zero accidental data loss. Move targets to a local quarantine vault instead of permanent deletion, with instant 1-second one-command restoration. - ๐พ Drive Capacity Radar (
purge disk/purge top): Visual partition health analysis displaying total/used/free space, developer bloat percentage, and potential free disk gain. - ๐ Multi-Format Audit Exporter (
purge export): Export comprehensive markdown reports, RFC-4180 CSV spreadsheets, or structured JSON for team audits and CI/CD pipelines. - โก High-Concurrency Parallel Deletion (
--workers 4): Multi-threaded deletion pool with robust Windows file-lock retry backoff and readonly clearing. - ๐ Expanded Ecosystem Support: Native heuristic detection for Bun (
~/.bun/install/cache), Deno (~/.cache/deno), Swift PM (.build), Zig (.zig-cache,zig-out), CMake (CMakeFiles), PHP Composer (vendor), and Ruby Bundler.
โก Key Features
- โก Sub-Second Parallel Crawl: Never gets bogged down by millions of files inside
node_modulesโprunes traversal at candidate boundaries and sizes directories concurrently in <20ms. - ๐ง Process Tree Port Slayer (
purge free <PORT>): Free ports in one command. Recursively terminates parent processes and all orphaned child worker trees (SIGTERM->SIGKILLcascade). - ๐ Global Cache Auditing & Pruning (
purge cache): Discovers and purges multi-gigabyte package manager global caches (npm,pnpm,yarn,bun,deno,pip,uv,cargo,go,gradle,composer). - ๐ฟ Git Worktree Intelligence: Non-destructive scan flags repositories with uncommitted changes (
--git-aware,--skip-uncommitted) and displays last-commit age indicators. - ๐ Lifetime Reclamation Telemetry (
purge stats): Persistent local telemetry tracking cumulative bytes reclaimed and zombie processes terminated over time. - ๐ฏ Interactive Selection Mode (
-i / --interactive): Pick and choose specific artifacts via numbers or comma-separated lists before purging. - ๐ค Autonomous Reclamation (
--auto): Automatically selects and purges safe, high-scoring targets (Score โฅ 65) without manual picking. - โ๏ธ Declarative Configuration (
purge init): Nativepurge.tomlandpyproject.toml [tool.purge]support for team-level ignore paths, custom target rules, and depth limits.
๐ป Terminal UI
When you run purge scan across your workspace:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐งน Developer Bloat & Zombie Process Reaper โข Zero Bloat โ
โโโโโโโโโโโโโโโโ v2.0.0 โข https://github.com/shenald-dev/purge โโโโโโโโโโโโโโโโ
๐ฆ Reclaimable Bloat Targets (4)
โโโโโฌโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ # โ Category โ Path โ Files โ Git Status โ Stale โ Score โ Size โ
โโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโค
โ 1 โ Node.js & Web โ ~/Projects/web/node_modโฆ โ 48,120 โ Clean โ 42d ago โ 92/100 โ 1.42 GB โ
โ 2 โ Rust / Cargo โ ~/Projects/engine/target โ 4,890 โ Uncommittedโ 18d ago โ 45/100 โ 820.50 MB โ
โ 3 โ Python โ ~/Projects/ai/.venv โ 6,410 โ Clean โ 89d ago โ 85/100 โ 410.20 MB โ
โ 4 โ Node.js & Web โ ~/Projects/app/.next โ 1,210 โ Clean โ Today โ 35/100 โ 120.00 MB โ
โโโโโดโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโโโ
๐ง Zombie Dev Servers & Port Hogs (2)
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PID โ Name โ Port โ Memory โ Trees โ Command / Working Dir โ
โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ 48210 โ node โ :3000 โ 142.0 MB โ 3 โ ~/Projects/web (Next.js Dev Server) โ
โ 19420 โ python โ :8000 โ 86.4 MB โ 1 โ ~/Projects/ai (FastAPI Uvicorn) โ
โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ PURGE REAPER TELEMETRY โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ Reclaimable Disk Space: 2.77 GB โ
โ โข Total Targets: 4 โข Total Files: 60,630 โข Zombie Servers: 2 โ
โ โข ๐ฏ High Priority Targets (Score โฅ 65): 2 โ
โ Breakdown: Node.js: 1.54 GB | Rust: 820.50 MB | Python: 410.20 MB โ
โ โ
โ Scanned 840 directories in 0.015s. โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Quick Start
Installation
Install directly via pip:
pip install purge-reaper
Or install via pipx or uv:
pipx install purge-reaper
# or
uv tool install purge-reaper
๐ ๏ธ Commands & Usage
1. Scan Workspace for Bloat (purge scan)
Sweep the current project tree or an entire drive for dev artifacts and running servers:
# Scan current directory
purge scan
# Scan your entire Projects directory
purge scan ~/Projects
# Filter by ecosystem
purge scan --node # Only Node.js/Web (.next, node_modules, .astro)
purge scan --python # Only Python (.venv, __pycache__, .pytest_cache)
purge scan --rust # Only Rust (target/)
# Filter by staleness, minimum size, or priority score
purge scan --stale 30 # Untouched for 30+ days
purge scan --min-size 100MB # Only items larger than 100MB
purge scan --min-score 70 # Only high-yield targets (score โฅ 70)
# Sort & limit
purge scan --sort score --top 10 # Top 10 highest-scoring targets
purge scan --sort stale # Sort by longest untouched
# Include drive capacity radar
purge scan --disk
# Include global package manager caches
purge scan --global
2. Clean & Reclaim Disk Space (purge clean)
Execute safe, verified cleanup:
# Dry run simulation (calculates space without deleting)
purge clean --dry-run
# Autonomous mode: automatically clean high-scoring safe targets (Score โฅ 65)
purge clean --auto
# Quarantine mode: move to undo vault instead of permanent deletion
purge clean --vault
# Interactive selection (pick items by number e.g. 1, 3, 5)
purge clean -i
# Safeguard: Skip repositories with uncommitted git changes
purge clean --skip-uncommitted
# High-concurrency parallel deletion (4 worker threads)
purge clean --workers 4 --force
# Force purge + terminate zombie dev servers
purge clean --force --kill-zombies
# Move files to OS Trash / Recycle Bin instead of permanent deletion
purge clean --trash
3. Quarantine Vault & Undo (purge vault)
Safe staging and instant restoration:
# List all quarantine sessions
purge vault list
# Show items in a specific vault session
purge vault show vault_20261103_120000
# Restore quarantined items back to their original disk locations
purge vault restore vault_20261103_120000
# Permanently prune quarantine sessions older than 14 days
purge vault prune --days 14
4. Drive Capacity Radar (purge disk / purge top)
Analyze drive partition health and bloat percentage:
# Inspect drive capacity and top space consumers
purge disk
# Output machine-readable JSON
purge disk --json
5. Instant One-Shot Port Slayer (purge free / purge port)
Free any occupied development port without manually looking up PIDs:
# Inspect what process is hogging port 3000
purge free 3000
# Terminate the process and its entire child process tree
purge free 3000 --kill -y
# Alias command
purge port 5173 -k -y
6. Audit Report Exporter (purge export)
Export audit results to Markdown, CSV, or JSON:
# Export Markdown audit report
purge export ~/Projects --output audit_report.md
# Export CSV spreadsheet for team reviews
purge export ~/Projects --output audit_report.csv
7. Global Package Manager Caches (purge cache)
Audit and reclaim multi-gigabyte caches from npm, pip, uv, cargo, and more:
# Scan all global caches and show disk usage
purge cache
# Clean all discovered caches with confirmation
purge cache --clean
# Simulate cleaning without deleting
purge cache --clean --dry-run
8. Lifetime Reclamation Telemetry (purge stats)
Check cumulative metrics across all cleanups:
purge stats
๐ฏ Purge Scoring Engine
The Purge Score is an intelligent 0-100 composite index calculated from four primary factors:
- Size Factor (0-35 pts): Logarithmic scale rewarding larger space yields (โฅ2GB = 35pts).
- Staleness Factor (0-30 pts): Based on last-modified timestamps (โฅ90 days = 30pts).
- Ephemerality / Rebuild Cost (0-20 pts): Pure re-generable caches (
node_modules,.next,target/) receive full marks; virtual environments require re-installation (+12pts). - Git Repository Intelligence (0-15 pts / Safety Penalties): Repos with uncommitted changes receive an automatic -35 point penalty and are flagged
CAUTION. Clean, dormant repos receive a bonus.
| Score Range | Classification | Action Recommendation |
|---|---|---|
| 65 - 100 | SAFE / High Priority |
Immediate candidate for automated reclamation. |
| 35 - 64 | MODERATE |
Review if project is actively being developed. |
| 0 - 34 | CAUTION |
Active repository, recently modified, or uncommitted work. |
๐ก๏ธ Quarantine Vault & Undo
Never worry about accidentally deleting an active development environment:
Target Path โโโโโโโโโโโโโโบ [ purge clean --vault ]
โ
โผ
~/.config/purge/vault/<session_id>/
โโโ item_1 (node_modules)
โโโ item_2 (.venv)
โโโ manifest.json
โ
โผ
[ purge vault restore <session_id> ]
โ
โผ
Target Path โโโโโโโโโโโโโ Restored in 1 Second!
๐พ Drive Capacity Radar
โโโโโโโโโโโโโโโโโ ๐พ DISK CAPACITY & BLOAT RADAR (D:\) โโโโโโโโโโโโโโโโโ
โ โ
โ Mount: D:\ Device: D: (NTFS) โ
โ โ
โ [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 53.2% Used โ
โ โ
โ โข Total Capacity: 953.87 GB โ
โ โข Used Space: 507.45 GB โ
โ โข Free Space: 446.42 GB (46.8%) โ
โ โ
โ โข Developer Bloat: 48.60 GB โ
โ โข Bloat accounts for 5.1% of total drive capacity (9.6% of used) โ
โ โข Purging this bloat will increase free space by +10.9% โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ๏ธ Configuration
Configure purge on a per-project or workspace basis via purge.toml or pyproject.toml ([tool.purge]):
# purge.toml
[purge]
max_depth = 10
min_stale_days = 0.0
min_size_bytes = 0
min_score = 0.0
sort_by = "size"
workers = 4
git_aware = true
default_trash = false
default_vault = false
default_format = "terminal"
# Ignored paths or projects
ignore_paths = [
"production-app/*",
"legacy-service/.venv",
]
# Custom artifact target rules
[purge.custom_rules]
"Internal Caches" = [".custom_cache", "temp_artifacts"]
๐ฆ Supported Bloat Targets
Local Project Bloat
| Ecosystem | Targets Detected |
|---|---|
| Node.js & Modern Web | node_modules, .next, .turbo, .nuxt, .astro, .solid, .remix, .output, .nx, .contentlayer, .parcel-cache, .svelte-kit, .docusaurus, bower_components |
| Python | .venv, venv, env, .pytest_cache, .mypy_cache, .ruff_cache, __pycache__, .tox, .nox, .hypothesis, .ipynb_checkpoints |
| Rust / Cargo | target (safeguarded: verified against Cargo.toml) |
| Systems & Native | .build (Swift PM), .zig-cache, zig-out (Zig), CMakeFiles (CMake) |
| PHP & Ruby | vendor (safeguarded: verified against composer.json or Gemfile) |
| Mobile & Cross-Platform | .expo, Pods, .dart_tool, DerivedData |
| JVM & Build Systems | .gradle, pom.xml target dirs, .bloop, .metals, .kotlinc |
| Universal Build Dirs | dist, build, out, coverage, .nyc_output |
| OS Clutter | .DS_Store, Thumbs.db |
| Dev Servers | Zombie processes on :3000, :3001, :5173, :8000, :8080, :9000 |
Global Package Manager Caches
| Package Manager | Default Cache Locations Checked |
|---|---|
| npm | ~/.npm/_cacache |
| pnpm | ~/.local/share/pnpm/store, ~/AppData/Local/pnpm/store |
| yarn | ~/.yarn/berry/cache, ~/.cache/yarn, ~/AppData/Local/Yarn/Cache |
| Bun | ~/.bun/install/cache |
| Deno | ~/.cache/deno, ~/AppData/Local/deno |
| pip | ~/.cache/pip, ~/AppData/Local/pip/Cache |
| uv | ~/.cache/uv, ~/AppData/Local/uv/cache |
| cargo | ~/.cargo/registry/cache, ~/.cargo/git/db |
| go | ~/go/pkg/mod/cache, ~/AppData/Local/go-build |
| gradle | ~/.gradle/caches |
| Composer | ~/.cache/composer, ~/AppData/Local/Composer/cache |
| Bundler | ~/.bundle/cache |
โ๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ User Target Path โ
โโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Rapid Discovery Walk โ (Sub-20ms pruning at
โ (os.scandir tree) โ artifact boundaries)
โโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ Parallel Stat โ โ Git Intelligence โ โ Zombie Hunter โ
โ & Scoring Pool โ โ (Dormancy/Dirty) โ โ (Dev port trees) โ
โโโโโโโโโโโฌโโโโโโโโโ โโโโโโโโโโโฌโโโโโโโโโ โโโโโโโโโโโฌโโโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโโโฌโโโโโดโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Purge Scoring Engine โ (0-100 Priority Index)
โ (Size, Age, Git State) โ
โโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Cyberpunk Terminal HUD โ
โ & Multi-Format Exporter โ
โโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโ
โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ
โ Parallel Fast Deletionโ โ Quarantine Undo Vault โ
โ (Retry & RO Clearing) โ โ (Instant Restoration) โ
โโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ
๐ค Contributing
Contributions are welcome! Please open an issue or PR on GitHub.
git clone https://github.com/shenald-dev/purge.git
cd purge
pip install -e ".[dev]"
pytest
ruff check .
๐ License
MIT License. Designed and built with โค๏ธ by shenald-dev.
Metadata
Release files for purge-reaper 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| purge_reaper-2.0.0.tar.gz | 60.8 kB | Without provenance | Details for purge_reaper-2.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| purge_reaper-2.0.0-py3-none-any.whl | Python 3 | none | any | Details for purge_reaper-2.0.0-py3-none-any.whl |
Total release size: 105.4 kB
Release files / purge_reaper-2.0.0.tar.gz
| Download URL | purge_reaper-2.0.0.tar.gz |
|---|---|
| Size | 60.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ed382ba662cfdeacc6fc4f0d066e1253ffdb7060459504af2a3da3bc56099005
|
|
BLAKE2b-256 checksum How to use checksums |
5af3ccdcd7a10af330d9742f150c112cfe8d810202288c811fae33c82ab77da9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.0
|
Release files / purge_reaper-2.0.0-py3-none-any.whl
| Download URL | purge_reaper-2.0.0-py3-none-any.whl |
|---|---|
| Size | 44.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ccd517aa86b00cabeb89b7b840311f12e3eda5566319ec1915644c150f3e72b6
|
|
BLAKE2b-256 checksum How to use checksums |
8d9e6ab165a52fc4cdaf2a975ff642bed495d14b15ad0b462b9605596d7d79ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.0
|
Security for purge-reaper 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.