null-e π€
.---.
|o o| null-e
| ^ | βββββββββββββββββββββββββββββββββββ
| === | The friendly disk cleanup robot
`-----' Send your cruft to /dev/null!
/| |\
The Friendly Disk Cleanup Robot - Inspired by Wall-E, powered by Rust.
null-e helps developers reclaim disk space by finding and cleaning development artifacts, caches, and unused files. It can detect and clean 100+ GB of reclaimable space across your system.
Why "null-e"?
/dev/null+ Wall-E = null-e π€Like the adorable trash-compacting robot from the movie, null-e tirelessly cleans up your developer junk and sends it where it belongs - to
/dev/null!
What Can null-e Clean?
| Category | Examples | Typical Size |
|---|---|---|
| Project Artifacts | node_modules, target, .venv, build |
10-100 GB |
| Global Caches | npm, pip, cargo, go, maven, gradle | 5-50 GB |
| Xcode | DerivedData, Simulators, Archives, Device Support | 20-100 GB |
| Docker | Images, Containers, Volumes, Build Cache | 10-100 GB |
| Android | AVD, Gradle, SDK Components | 5-30 GB |
| ML/AI | Huggingface models, Ollama, PyTorch cache | 10-100 GB |
| IDE Caches | JetBrains, VS Code, Cursor | 2-20 GB |
| Homebrew | Downloads, Old versions | 2-20 GB |
| iOS Dependencies | CocoaPods, Carthage, SPM | 1-10 GB |
| Electron Apps | Slack, Discord, Spotify, Teams caches | 1-5 GB |
| Game Dev | Unity, Unreal, Godot caches | 10-100 GB |
| Cloud CLI | AWS, GCP, Azure, kubectl, Terraform | 1-5 GB |
| macOS System | Orphaned containers, App remnants | 1-20 GB |
Features
- Multi-language Support: Node.js, Rust, Python, Go, Java, .NET, Swift, Ruby, PHP, and more
- Git Protection: Never accidentally delete uncommitted changes
- Safe Deletion: Moves to trash by default with recovery option
- Parallel Scanning: Fast directory traversal using multiple threads
- Analysis Tools: Find stale projects, duplicate dependencies, optimize git repos
- Beautiful CLI: Colored output with progress indicators
- Cross-Platform: macOS, Linux, Windows support
Installation
From Source
Using Cargo
Using Homebrew (macOS)
Quick Start
# Scan current directory for cleanable artifacts
# Deep sweep - find ALL cleanable items across your system
# Clean global developer caches (npm, pip, cargo, etc.)
# Analyze git repositories for optimization
# Find stale projects not touched in 6 months
# Find duplicate dependencies
Commands Overview
Core Commands
| Command | Description |
|---|---|
null-e |
Scan current directory for project artifacts |
null-e scan |
Scan with detailed output |
null-e clean |
Clean found artifacts (interactive) |
null-e sweep |
Deep scan for ALL cleanable items |
null-e caches |
Manage global developer caches |
Specialized Cleaners
| Command | Description |
|---|---|
null-e xcode |
Clean Xcode artifacts |
null-e android |
Clean Android development artifacts |
null-e docker |
Clean Docker resources |
null-e ml |
Clean ML/AI model caches |
null-e ide |
Clean IDE caches |
null-e homebrew |
Clean Homebrew caches |
null-e ios-deps |
Clean iOS dependency caches |
null-e electron |
Clean Electron app caches |
null-e gamedev |
Clean game development caches |
null-e cloud |
Clean cloud CLI caches |
null-e macos |
Clean macOS system caches |
Analysis Tools
| Command | Description |
|---|---|
null-e git-analyze |
Find large .git repos, suggest git gc |
null-e stale |
Find projects not touched in months |
null-e duplicates |
Find duplicate dependencies |
Usage Examples
Basic Scanning
# Scan current directory
# Scan specific directories
# Scan with depth limit
# Filter by minimum size
# Show all results (no limit)
# Verbose output
Deep Sweep
# Find everything cleanable
# Filter by category
# Clean interactively
Global Caches
# Show all global caches
# Clean selected caches interactively
# Clean all caches
Xcode Cleanup
# Show Xcode artifacts
# Clean DerivedData, old simulators, etc.
Docker Cleanup
# Show Docker resources
# Clean (excluding volumes)
# Clean including volumes (careful!)
Git Analysis
# Analyze git repos in a directory
# Run git gc on repos that need it
# Dry run
Stale Project Detection
# Find projects not touched in 180 days (default)
# Custom threshold (90 days)
# Clean build artifacts from stale projects
Duplicate Detection
# Find duplicate dependencies
# Verbose output with details
Protection Levels
null-e protects your uncommitted work:
# Warn about uncommitted changes (default)
# Block cleaning repos with uncommitted changes
# No protection (dangerous!)
# Paranoid mode - require confirmation for everything
Deletion Methods
# Move to trash (default, safe)
# Permanent delete (careful!)
# Dry run (no deletion)
# or
Configuration
Create ~/.config/null-e/config.toml:
[]
= ["~/projects", "~/work"]
= false
[]
= 10
= true
= 1000000 # 1 MB
[]
= "trash"
= "warn"
[]
= true
= "size"
Config Commands
# Show current config
# Initialize config file
# Show config path
Project Types Supported
| Language/Framework | Marker Files | Cleanable Artifacts |
|---|---|---|
| Node.js | package.json |
node_modules, .next, .nuxt, dist, .cache |
| Rust | Cargo.toml |
target/ |
| Python | requirements.txt, pyproject.toml |
.venv, __pycache__, .pytest_cache |
| Go | go.mod |
vendor/ |
| Java/Kotlin | pom.xml, build.gradle |
target/, build/, .gradle/ |
| .NET | *.csproj |
bin/, obj/ |
| Swift | Package.swift |
.build/, .swiftpm/ |
| Ruby | Gemfile |
vendor/bundle, .bundle |
| PHP | composer.json |
vendor/ |
Safety Levels
Each cleanable item has a safety level:
| Level | Symbol | Meaning |
|---|---|---|
| Safe | β |
Safe to delete, will be regenerated |
| SafeWithCost | ~ |
Safe but may slow down next operation |
| Caution | ! |
May lose some data, verify before deleting |
| Dangerous | β |
High risk, may break things |
Architecture
.---.
|o o|
| ^ | ββββββββββββββββββββββββββββββββββββββββββββββββββββ
| === | β CLI β
`-----' ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
/| |\ β Core Engine β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β β Scanner β β Cleaner β β Analysis β β
β β β β β β Tools β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Modules β
β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β
β βPlugins β βCleanersβ β Caches β β Docker β β
β β(langs) β β(system)β β(global)β β β β
β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Documentation
Detailed documentation for each module:
- Cleaners Guide - System cleaners (Xcode, Docker, etc.)
- Caches Guide - Global cache management
- Analysis Guide - Analysis tools (git, stale, duplicates)
Development
Building
# Debug build
# Release build
# Run tests
# Run with logging
RUST_LOG=debug
Project Structure
src/
βββ main.rs # CLI entry point
βββ lib.rs # Library exports
βββ analysis/ # Analysis tools
β βββ git.rs # Git repository analysis
β βββ stale.rs # Stale project detection
β βββ duplicates.rs # Duplicate dependency detection
βββ caches/ # Global cache management
βββ cleaners/ # System cleaners
β βββ xcode.rs # Xcode cleaner
β βββ android.rs # Android cleaner
β βββ docker.rs # Docker cleaner
β βββ ml.rs # ML/AI cleaner
β βββ ide.rs # IDE cleaner
β βββ homebrew.rs # Homebrew cleaner
β βββ ios_deps.rs # iOS dependencies cleaner
β βββ electron.rs # Electron apps cleaner
β βββ gamedev.rs # Game development cleaner
β βββ cloud.rs # Cloud CLI cleaner
β βββ macos.rs # macOS system cleaner
β βββ logs.rs # Log cleaner
βββ plugins/ # Language plugins
βββ core/ # Core scanning/cleaning logic
βββ docker/ # Docker integration
βββ git/ # Git integration
βββ trash/ # Trash/delete operations
βββ config/ # Configuration management
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Adding a New Cleaner
- Create a new file in
src/cleaners/ - Implement the cleaner with
detect()method - Add to
src/cleaners/mod.rs - Add CLI command in
src/main.rs - Add tests
Adding a New Plugin
- Create a new file in
src/plugins/ - Implement the
Plugintrait - Register in
src/plugins/mod.rs - Add tests
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
.---.
|o o| "Directive: Clean all the things!"
| ^ |
| === | Made with π for developers who need their disk space back.
`-----'
/| |\