Skip to content

Repository files navigation

null-e mascot

null-e

Disk cleanup for developers — clean node_modules, target, .venv, Docker, Xcode caches and 50+ cache types

CILicense

DownloadQuick StartDocsChangelog


null-e desktop app — sidebar of reclaimable disk space grouped by category with a donut summary and drill-down list

/dev/null + Wall-E = null-e — like the adorable trash-compacting robot, null-e tirelessly cleans up developer junk and sends it where it belongs.

Reclaim 100+ GB — most developer machines accumulate tens of gigabytes of stale node_modules, target/, .venv, Docker images, and IDE caches.

Download

Desktop App (GUI)

PlatformDownload
macOS (Apple Silicon)Download .dmg — M1/M2/M3/M4
macOS (Intel)Download .dmg
WindowsDownload .exe — 64-bit
Linux (Ubuntu/Debian)Download .deb
Linux (Universal)Download .AppImage

macOS Installation Note

null-e is distributed as an unsigned/non-notarized .dmg (no Apple Developer Program). macOS Gatekeeper will block it on first launch — this is expected. Two ways to open it:

1. Open Anyway (no Terminal)

  1. Drag null-e.app to /Applications and double-click it.
  2. macOS says it can't verify the developer. Open System Settings → Privacy & Security, scroll to the bottom, and click Open Anyway next to null-e.
  3. Confirm Open. You only need to do this once per version.

2. Terminal (power users)

# Drag null-e.app to /Applications, then run:
xattr -rd com.apple.quarantine /Applications/null-e.app
open /Applications/null-e.app

Full Disk Access

To clean system and other-app caches, null-e needs Full Disk Access: System Settings → Privacy & Security → Full Disk Access → enable null-e, then relaunch the app (macOS only applies the grant to a freshly launched process). null-e's in-app guide walks you through this.

Heads up: because the app is unsigned, updating to a new version can reset the Full Disk Access grant — macOS ties the permission to each build. If cleaning suddenly fails after an update, just re-enable null-e in Full Disk Access and relaunch. (Building from source with a stable self-signed certificate avoids this — see the release workflow.)

CLI (command-line)

One-line install (downloads the right prebuilt binary for your OS/arch):

curl -fsSL https://raw.githubusercontent.com/us/null-e/main/install.sh | sh

Or via Cargo:

cargo install null-e # build from source
cargo binstall null-e # prebuilt binary, no compile
null-e sweep

What's New

v0.4.3

Features

  • cli: add --no-emoji flag and list files in dry-run preview (c9f2747)
  • one-line curl | sh installer (fb31d43)

Bug Fixes

  • release: publish CLI to crates.io as null-e (dd3cb14)

See CHANGELOG.md for the full release history.

Changelog

See CHANGELOG.md for the full release history.

Why null-e?

CategoryExamplesTypical Size
Project Artifactsnode_modules, target, .venv, buildNode.js, Rust, Python, Go, Java, .NET, Swift10-100 GB
Global Caches — npm, pip, cargo, go, maven, gradleAll major package managers5-50 GB
Xcode — DerivedData, Simulators, ArchivesiOS/macOS development20-100 GB
Docker — Images, Containers, Volumes, Build CacheContainer workflows10-100 GB
Android — AVD, Gradle, SDK ComponentsAndroid development5-30 GB
ML/AI — HuggingFace, Ollama, PyTorch cacheMachine learning10-100 GB
IDE Caches — JetBrains, VS Code, CursorAll major IDEs2-20 GB
More — Homebrew, Electron, Game Dev, Cloud CLI, macOS SystemEverything else1-100 GB

Features

  • Multi-language Support — Node.js, Rust, Python, Go, Java, .NET, Swift, Ruby, PHP and more
  • Git Protection — 4 levels (none/warn/block/paranoid) to prevent deleting uncommitted work
  • Safe Deletion — Moves to trash by default with recovery option, dry-run mode
  • Parallel Scanning — Fast multi-threaded directory traversal with rayon + walkdir
  • Interactive TUI — 18 scan modes, keyboard navigation, live progress with ratatui
  • Analysis Tools — Find stale projects, duplicate dependencies, optimize git repos
  • System Cleaners — Xcode, Docker, Android, ML/AI, IDE, Homebrew, Electron, Cloud CLI, and more
  • Configurable — TOML config file, CLI flags override, JSON output support
  • Cross-Platform — macOS, Linux, Windows

Installation

Using Cargo

cargo install null-e

Pre-built Binaries

Download from GitHub Releases:

PlatformFile
macOS ARMnull-e-darwin-aarch64.tar.gz
macOS Intelnull-e-darwin-x86_64.tar.gz
Linux x86_64null-e-linux-x86_64.tar.gz
Linux x86_64 (musl)null-e-linux-x86_64-musl.tar.gz
Linux ARMnull-e-linux-aarch64.tar.gz
Windowsnull-e-windows-x86_64.zip

Package Managers

# Homebrew (macOS/Linux)
brew install null-e
# AUR (Arch Linux)
yay -S null-e
# Scoop (Windows)
scoop bucket add us https://github.com/us/scoop-bucket
scoop install null-e

Docker

docker run -v $(pwd):/workspace ghcr.io/us/null-e

From Source

git clone https://github.com/us/null-e.git
cd null-e
cargo install --path .

Quick Start

# 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
# Interactive TUI mode
null-e tui
# Find stale projects not touched in 6 months
null-e stale ~/projects
# Dry run — see what would be deleted
null-e clean ~/projects --dry-run

Commands

Core

CommandDescription
null-eScan current directory for project artifacts
null-e scanScan with detailed output
null-e cleanClean found artifacts (interactive)
null-e sweepDeep scan for ALL cleanable items
null-e cachesManage global developer caches
null-e tuiLaunch interactive terminal UI

System Cleaners

CommandDescription
null-e xcodeXcode artifacts (DerivedData, Simulators, Archives)
null-e androidAndroid development artifacts
null-e dockerDocker resources (images, volumes, build cache)
null-e mlML/AI model caches (HuggingFace, Ollama, PyTorch)
null-e ideIDE caches (JetBrains, VS Code, Cursor)
null-e homebrewHomebrew caches
null-e ios-depsiOS dependency caches (CocoaPods, Carthage, SPM)
null-e electronElectron app caches (Slack, Discord, Teams)
null-e gamedevGame development caches (Unity, Unreal, Godot)
null-e cloudCloud CLI caches (AWS, GCP, Azure, kubectl, Terraform)
null-e macosmacOS system caches

Analysis

CommandDescription
null-e git-analyzeFind large .git repos, suggest git gc
null-e staleFind projects not touched in months
null-e duplicatesFind duplicate dependencies

Architecture

 .---.
|o o|
| ^ | ┌──────────────────────────────────────────────────┐
| === | │ CLI │
`-----' ├──────────────────────────────────────────────────┤
/| |\ │ Core Engine │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Scanner │ │ Cleaner │ │ Analysis │ │
│ │ │ │ │ │ Tools │ │
│ └──────────┘ └──────────┘ └──────────┘ │
├──────────────────────────────────────────────────┤
│ Modules │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │Plugins │ │Cleaners│ │ Caches │ │ Docker │ │
│ │(langs) │ │(system)│ │(global)│ │ │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
└──────────────────────────────────────────────────┘

Configuration

Create ~/.config/null-e/config.toml:

[general]
default_paths = ["~/projects", "~/work"]
[scan]
max_depth = 10min_size = 1000000# 1 MB
[clean]
delete_method = "trash"protection_level = "warn"
[ui]
sort_by = "size"use_icons = true

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes using conventional commits
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

License

WTFPL — Do What The Fuck You Want To Public License.

Disclaimer

null-e is provided "as-is" without warranty of any kind. The authors are not responsible for any data loss resulting from the use of this software.

  • Always keep backups of important work before running cleanup operations
  • Use --dry-run to preview what will be deleted before committing
  • Trash mode (default) allows recovery, but is not guaranteed on all filesystems
  • Permanent delete is irreversible — use with extreme caution
  • This tool is designed for developers who understand the artifacts being cleaned

About

Disk cleanup CLI for developers. Clean node_modules, target, .venv, Docker, Xcode caches. Reclaim 100+ GB. Fast Rust tool for macOS/Linux/Windows.

Topics

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages