A fast, interactive disk usage analyzer and cleaner for Linux.
Rusty Sweeper is implemented and test-covered across its main command surface:
rusty-sweeperis the interactive product and launches the TUI directly.rusty-sweeper-monitoris a dedicated monitor binary with one-shot checks, daemon mode, PID/log management, and multiple notification backends.
Current limitations:
- Some configuration sections remain informational, but scanner and TUI cleaner settings are active.
- Cleanup and scan engines still exist in the codebase, but they are no longer exposed as standalone CLI subcommands.
- Interactive TUI: Browse disk usage and clean directly from the terminal
- Monitor Service: Background daemon with desktop notifications when disk is full
cargo install rusty-sweepergit clone https://github.com/lelloman/rusty-sweeper
cd rusty-sweeper
cargo install --path .# Launch TUI in the current working directory
rusty-sweeper
# Scan a specific directory instead of the current working directory
rusty-sweeper /path/to/scan
# `rusty-sweeper` is the only user-facing mode of the main binary# Check once and exit
rusty-sweeper-monitor --once
# Start as daemon
rusty-sweeper-monitor --daemon
# Custom thresholds (warn at 70%, critical at 85%)
rusty-sweeper-monitor --warn 70 --critical 85
# Check daemon status
rusty-sweeper-monitor --status
# Stop daemon
rusty-sweeper-monitor --stopConfiguration file: ~/.config/rusty-sweeper/config.toml
Scanner and TUI cleaner behavior is driven by the corresponding values.
Scanner parallelism, filesystem-boundary behavior, and the persistent metadata cache are active. Cached files are validated by device/inode, size, allocated blocks, and nanosecond modification/change times before their accounting is reused.
[scanner]
parallel_threads = 0 # 0 = auto
cross_filesystems = false
use_cache = true
cache_ttl = 3600
[cleaner]
project_types = ["cargo", "gradle", "maven", "npm", "go", "cmake", "python", "bazel", "dotnet"]
exclude_patterns = ["**/.git", "**/vendor"]
min_age_days = 0
max_depth = 10
parallel_jobs = 4
[monitor]
interval = 300 # seconds
warn_threshold = 80
critical_threshold = 90
mount_points = []
notification_backend = "auto"
[tui]
color_scheme = "auto"
show_hidden = false
default_sort = "size"
large_dir_threshold = 1073741824| Key | Action |
|---|---|
j / Down |
Move down |
k / Up |
Move up |
Enter / l / Right |
Expand/enter directory |
h / Left / Backspace |
Collapse/go up |
d / Delete |
Delete selected |
c |
Clean project |
C |
Clean all eligible projects under selected directory |
/ |
Search |
s |
Cycle sort order |
. |
Hide/show hidden files (shown by default) |
r |
Rescan |
? |
Help |
Esc |
Cancel active work, otherwise quit |
q |
Quit |
The TUI can identify and clean common local build artifacts for Cargo, npm, Python, CMake, Gradle, Maven, and .NET projects. Docker system resources are also surfaced when available.
To run the monitor as a systemd user service:
# Install the service
./dist/install-service.sh
# Enable and start
systemctl --user enable rusty-sweeper-monitor
systemctl --user start rusty-sweeper-monitor
# Check status
systemctl --user status rusty-sweeper-monitor
# View logs
journalctl --user -u rusty-sweeper-monitor -fMIT