Safe, Mole-inspired cleanup for Linux with a fast TUI and a full CLI.
Vole focuses on safe cleanup first: default rules are conservative, browser caches are excluded, and the tool always asks for confirmation before deleting.
- TUI + CLI parity: run
volefor the interface or usevole cleanflags. - Safe defaults: user-only cleanup by default, with optional sudo mode.
- Dry-run toggle: preview without deleting via
--dry-runor the TUI (shown in the TUI Output panel and saved to~/vole-dry-run.txt, removed after a successful non-dry run). - Distro-aware rules: Arch first-class, then Fedora, then Ubuntu/Debian.
- Downloads cleanup: detects archives with matching extracted folders in
~/Downloadsand lets you choose which side to remove. - Optional log cleanup: user log files older than 7 days (off by default).
- Snapshot gating: snapshot option only appears if a supported provider is detected.
./install.shThis builds a release binary and installs it to a user bin directory (prefers ~/bin if it is on PATH, otherwise ~/.local/bin).
If Rust is missing, the installer will attempt to install it using your distro package manager (pacman, dnf, apt, zypper, apk, xbps) or rustup.
The install script will attempt to update your shell config automatically (bash, zsh, fish, or ~/.profile).
If the install directory is not already on PATH, the installer will start a new login shell so you can run vole immediately.
cargo install --path .voleKeys:
j/kor arrows: movespace: toggle ruler: rescand: toggle dry-runs: sudo mode (will prompt via sudo)p: snapshot (only shown when supported)aorenter: apply/confirmq: quit- Mouse: click to toggle, scroll to move, click/drag in output to jump
When Downloads Cleanup is enabled, apply will prompt you to remove archives or the extracted folders.
vole clean --dry-run
vole clean --sudo
vole clean --downloads-remove archives
vole clean --downloads-remove folders
vole clean --rule user-trash --rule thumbnails
vole clean --list-rulesUse --dry-run to preview. Dry-run writes a detailed report to ~/vole-dry-run.txt and shows output in the TUI panel (scrollable). The report is removed after a successful non-dry run.
By default, clean applies deletions after confirmation.
When running with --sudo, Vole requires typing DELETE to confirm.
By default Vole uses the embedded config. You can override it with:
vole --config /path/to/config.json clean --dry-runThe expected format is JSON (see config/default.json for examples).
Vole only offers snapshotting when it detects a supported provider:
- Btrfs (home subvolume)
- Timeshift (Btrfs mode only)
If no supported snapshot provider is detected, the snapshot option is hidden. Snapshotting is only available when running with sudo/root.
Btrfs snapshots are stored outside the source subvolume under the parent directory's
.snapshots/vole folder.
- Browser caches are excluded by default.
- System-wide cleanup requires sudo and explicit confirmation.
- Vole only deletes paths configured in the ruleset.
- Disk analyzer, uninstall, optimize, and live status dashboards.
- Wider snapshot provider support (ZFS, LVM, Timeshift rsync).