Skip to main content

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.

PyPI version License: MIT

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-off at 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


ExamplesPublishing GuideTechnical Docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jhadoo-1.2.0.tar.gz (28.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jhadoo-1.2.0-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

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

Hashes for jhadoo-1.2.0.tar.gz
Algorithm Hash digest
SHA256 7aff506212aa70ae7e25ff6745f81d758743f40d9162801fac7c5390d5fb6d9d
MD5 2c078ad6e2ed886aa770746885f5776e
BLAKE2b-256 ec6c24389b83a5d27204559c36bb764686e9cadb97170d7d042fa6a892599fda

See more details on using hashes here.

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

Hashes for jhadoo-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31368f0ce03dd279efde5490221b918ee3db0064546f7ba2b56bd80217bf1634
MD5 0b48ecbb52bc949fa2264ea4c2c2a6b7
BLAKE2b-256 491e48d2f5d3b66d0be199e86e73b43861318a343b1bf838c491a0234a0ae41c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page