| Crates.io | null-e |
| lib.rs | null-e |
| version | 0.1.0 |
| created_at | 2026-01-20 23:10:25.380672+00 |
| updated_at | 2026-01-20 23:10:25.380672+00 |
| description | π€ null-e: The friendly disk cleanup robot - Send your cruft to /dev/null |
| homepage | https://github.com/us/null-e |
| repository | https://github.com/us/null-e |
| max_upload_size | |
| id | 2057804 |
| size | 745,350 |
.---.
|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.
/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!
| 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 |
git clone https://github.com/us/null-e.git
cd null-e
cargo install --path .
cargo install null-e
brew tap us/tap
brew install null-e
# Scan current directory for cleanable artifacts
null-e
# Deep sweep - find ALL cleanable items across your system
null-e sweep
# Clean global developer caches (npm, pip, cargo, etc.)
null-e caches
# Analyze git repositories for optimization
null-e git-analyze ~/projects
# Find stale projects not touched in 6 months
null-e stale ~/projects
# Find duplicate dependencies
null-e duplicates ~/projects
| 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 |
| 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 |
| 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 |
# Scan current directory
null-e
# Scan specific directories
null-e ~/projects ~/work
# Scan with depth limit
null-e -d 5 ~/projects
# Filter by minimum size
null-e -s 100MB ~/projects
# Show all results (no limit)
null-e -a ~/projects
# Verbose output
null-e -v ~/projects
# Find everything cleanable
null-e sweep
# Filter by category
null-e sweep --category xcode
null-e sweep --category docker
# Clean interactively
null-e sweep --clean
# Show all global caches
null-e caches
# Clean selected caches interactively
null-e caches --clean
# Clean all caches
null-e caches --clean-all
# Show Xcode artifacts
null-e xcode
# Clean DerivedData, old simulators, etc.
null-e xcode --clean
# Show Docker resources
null-e docker
# Clean (excluding volumes)
null-e docker --clean
# Clean including volumes (careful!)
null-e docker --clean --volumes
# Analyze git repos in a directory
null-e git-analyze ~/projects
# Run git gc on repos that need it
null-e git-analyze ~/projects --fix
# Dry run
null-e git-analyze ~/projects --fix --dry-run
# Find projects not touched in 180 days (default)
null-e stale ~/projects
# Custom threshold (90 days)
null-e stale --days 90 ~/projects
# Clean build artifacts from stale projects
null-e stale --days 90 --clean ~/projects
# Find duplicate dependencies
null-e duplicates ~/projects
# Verbose output with details
null-e duplicates -v ~/projects
null-e protects your uncommitted work:
# Warn about uncommitted changes (default)
null-e clean -p warn
# Block cleaning repos with uncommitted changes
null-e clean -p block
# No protection (dangerous!)
null-e clean -p none
# Paranoid mode - require confirmation for everything
null-e clean -p paranoid
# Move to trash (default, safe)
null-e clean -m trash
# Permanent delete (careful!)
null-e clean -m permanent
# Dry run (no deletion)
null-e clean -m dry-run
# or
null-e clean -n
Create ~/.config/null-e/config.toml:
[general]
default_paths = ["~/projects", "~/work"]
verbose = false
[scan]
max_depth = 10
skip_hidden = true
min_size = 1000000 # 1 MB
[clean]
delete_method = "trash"
protection_level = "warn"
[ui]
use_icons = true
sort_by = "size"
# Show current config
null-e config
# Initialize config file
null-e config --init
# Show config path
null-e config --path
| 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/ |
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 |
.---.
|o o|
| ^ | ββββββββββββββββββββββββββββββββββββββββββββββββββββ
| === | β CLI β
`-----' ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
/| |\ β Core Engine β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β β Scanner β β Cleaner β β Analysis β β
β β β β β β Tools β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Modules β
β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β
β βPlugins β βCleanersβ β Caches β β Docker β β
β β(langs) β β(system)β β(global)β β β β
β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Detailed documentation for each module:
# Debug build
cargo build
# Release build
cargo build --release
# Run tests
cargo test
# Run with logging
RUST_LOG=debug cargo run
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
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)src/cleaners/detect() methodsrc/cleaners/mod.rssrc/main.rssrc/plugins/Plugin traitsrc/plugins/mod.rsThis project is licensed under the MIT License - see the LICENSE file for details.
.---.
|o o| "Directive: Clean all the things!"
| ^ |
| === | Made with π for developers who need their disk space back.
`-----'
/| |\