Smart cleanup tool for developers - removes unused venv, node_modules, Docker images, scans Git repos, and more
Project description
🧹 jhadoo - Universal Cleanup Tool
Smart cleanup for any unused files/folders in your projects. Works with Python, Node.js, Rust, Go, Java, C++, or custom folders.
Quick Start
# Install
pip install jhadoo
# Preview (safe)
jhadoo --dry-run
# Run standard cleanup (folders)
jhadoo
# Run with Docker cleanup
jhadoo --docker
# Analyze Git Repositories
jhadoo --git-check
# Restore archived items
jhadoo --restore
# Schedule daily cleanup
jhadoo --schedule daily --archive
Privacy & Telemetry (New in v1.2.0)
Jhadoo collects anonymous usage statistics to global storage savings.
- What we collect: Randomly generated User ID, bytes saved, OS type, and Jhadoo version.
- What we DO NOT collect: IP addresses, file names, paths, or any personal data.
- Opt-out: Run
jhadoo --telemetry-offat any time.
Dashboard
View your personal savings and trends:
jhadoo --dashboard
Features
- Universal: Works with ANY file/folder name (venv, node_modules, build, dist, target, or custom)
- New! Git Analysis: Detects stale branches and large files in your git repositories
- New! Docker Cleanup: Automatically cleans up unused Docker images (>60 days old)
- New! Undo/Restore: Instantly restore archived items to their original location
- Safe: Dry-run mode, size caps, confirmations, archive mode
- Scheduled: Built-in cron/Task Scheduler integration
- Cross-platform: macOS, Windows, Linux
- Smart: Dashboard with trends, progress bars, notifications
Configuration
# Generate config
jhadoo --generate-config
# Edit and use
jhadoo --config jhadoo_config.json
Example config:
{
"targets": [
{"name": "venv", "days_threshold": 7, "enabled": true},
{"name": "node_modules", "days_threshold": 14, "enabled": true},
{"name": "build", "days_threshold": 14, "enabled": true},
{"name": "YOUR_CUSTOM_FOLDER", "days_threshold": 7, "enabled": true}
],
"exclusions": ["~/important-project"],
"safety": {
"size_threshold_mb": 5000,
"require_confirmation_above_mb": 500
}
}
Scheduling
# Daily at 2 AM
jhadoo --schedule daily
# Weekly (Sunday 2 AM)
jhadoo --schedule weekly
# Custom cron
jhadoo --cron "0 3 * * 1" # Monday 3 AM
# Manage
jhadoo --list-schedules
jhadoo --remove-schedule
Examples
See examples/ for detailed code examples:
- 01_basic_usage.py - Dry-run, archive, actual cleanup
- 02_custom_config.py - Custom configuration
- 03_scheduling.py - Automated scheduling
Universal Support
Works with all languages and build systems:
| Language | Folders |
|---|---|
| Python | venv, __pycache__, .pytest_cache, .tox |
| Node.js | node_modules, .next, .nuxt |
| Rust | target |
| Go | vendor, bin |
| Java | target, build, .gradle |
| C/C++ | build, *.o |
| .NET | bin, obj |
| Custom | Any folder you specify! |
Python API
from jhadoo import Config, CleanupEngine, Scheduler
# Run cleanup
config = Config()
engine = CleanupEngine(config, dry_run=True)
result = engine.run()
# Schedule
scheduler = Scheduler()
scheduler.schedule('daily', archive=True)
Command Reference
jhadoo [OPTIONS]
Options:
-c, --config FILE Custom config file
-n, --dry-run Preview without deleting
-a, --archive Move to archive instead of delete
-d, --dashboard Show statistics
--schedule FREQ Schedule cleanup (daily/weekly/monthly/hourly)
--cron EXPR Custom cron expression
--list-schedules List scheduled tasks
--remove-schedule Remove scheduled tasks
--generate-config Create sample config
-v, --version Show version
Safety
- Size warnings: Alerts if deletion exceeds 5GB
- Confirmations: Asks before deleting >500MB
- Exclusions: Protect critical folders
- System protection: Never touches OS directories
- Deletion manifest: JSON log for recovery
File Locations
- Logs:
~/.jhadoo/cleanup_log.csv - Manifest:
~/.jhadoo/deletion_manifest.json - Archive:
~/.jhadoo_archive/
License
MIT License - see LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jhadoo-1.2.0.tar.gz.
File metadata
- Download URL: jhadoo-1.2.0.tar.gz
- Upload date:
- Size: 28.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7aff506212aa70ae7e25ff6745f81d758743f40d9162801fac7c5390d5fb6d9d
|
|
| MD5 |
2c078ad6e2ed886aa770746885f5776e
|
|
| BLAKE2b-256 |
ec6c24389b83a5d27204559c36bb764686e9cadb97170d7d042fa6a892599fda
|
File details
Details for the file jhadoo-1.2.0-py3-none-any.whl.
File metadata
- Download URL: jhadoo-1.2.0-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31368f0ce03dd279efde5490221b918ee3db0064546f7ba2b56bd80217bf1634
|
|
| MD5 |
0b48ecbb52bc949fa2264ea4c2c2a6b7
|
|
| BLAKE2b-256 |
491e48d2f5d3b66d0be199e86e73b43861318a343b1bf838c491a0234a0ae41c
|