Skip to content

fschrhunt/vole

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Vole

 __     __    _
 \ \   / /__ | | ___
  \ \ / / _ \| |/ _ \
   \ V / (_) | |  __/   ~~~(^Β°>
    \_/ \___/|_|\___|   Deep clean and update your machine.

πŸ¦β€πŸ”₯ Clean, update, uninstall, and monitor your Linux box or Mac β€” from the terminal.

Vole started as a Linux-native fork of Mole (a macOS cleaner by tw93) and now runs on both platforms. It keeps Mole's interactive terminal UX β€” arrow-key menus, multi-select with filtering, safe-by-default cleaning β€” and adds the one thing Mole doesn't have: a single command that updates every package manager on your system.

Per Mole's trademark policy this fork uses its own name. Code is GPL-3.0, same as upstream. The mascot is a phoenix: Vole rose from Mole's source, and after every clean it flies across your terminal trailing fire.

Install

curl -fsSL https://raw.githubusercontent.com/fschrhunt/vole/main/install.sh | bash

or from a clone: ./install.sh. Installs symlinks vole and the vo shorthand (Mole has mo; Vole has vo). Requires bash and git β€” nothing else.

Commands

Command What it does
vo Interactive menu
vo clean Free disk space: user/app/dev caches, old trash, old logs, brew cleanup. Linux adds flatpak leftovers and an opt-in sudo deep clean (APT cache, journal logs, old snap revisions, crash dumps); macOS adds Xcode DerivedData and simulator caches. --dry-run previews.
vo update Scan every package manager in parallel and update what you pick. vo update all skips the menu; vo update dry run lists every pending package, then offers to apply; vo update apt brew targets specific managers.
vo optimize Tune and repair the system: caches, corrupted config files, database vacuuming, network stack, broken launchers/agents, disk and battery health, and more β€” see below. --dry-run previews; --list shows every task; --only=/--skip= target specific tasks.
vo uninstall One selector for apt / snap / flatpak / brew / casks. Removes packages, orphaned dependencies, and residual configs.
vo purge Find files over 100MB (--min=<MB>) and pick what to remove β€” to the trash when possible.
vo analyze Explore disk usage. Delegates to gdu/ncdu when installed.
vo status System health: load, memory, swap, disks, temperature, battery, pending updates.
vo history Everything Vole has cleaned, updated, or removed.
vo whitelist Protected paths, never cleaned (vo whitelist edit).
vo config Settings: animations, purge floor, system-clean behavior, retention windows (vo config edit).
vo fda macOS: check Full Disk Access, register Vole's toggle with the system, and open the exact Settings pane (points at the Remote Login switch for SSH sessions). On Linux: nothing needed.

Optimize

vo optimize matches Mole's own optimize task list on macOS (all 21 of its checks: DNS/Spotlight, Finder & icon caches, saved app states, corrupted preferences, Mail/Safari/Messages database vacuuming, LaunchServices repair, Dock refresh, .DS_Store prevention, memory pressure, network stack, disk permissions, periodic maintenance, shared file lists, login items, Gatekeeper quarantine history, broken Launch Agents, Notification Center, and usage tracking data) β€” plus battery health, Homebrew health, and a SMART-based disk health check that replaces Mole's diskutil verifyVolume (which can hang the system on APFS inconsistencies) with something that never touches the filesystem.

On Linux it's a from-scratch equivalent set, not a stub: DNS cache, font/icon caches, the desktop/MIME database (the real Linux analog of "Open with" repair), autostart and application-launcher audits, browser database vacuuming, systemd failed-unit cleanup, memory pressure relief, network stack refresh, home directory ownership repair, locate database refresh (the Linux analog of Spotlight indexing), disk and package-database health, and journal disk usage. SSD TRIM (fstrim) has no macOS/Mole equivalent at all β€” APFS handles it transparently β€” and is a genuine Linux-only win: a real optimization most desktops leave to a cron job nobody ever sees run.

Every task is safe to re-run β€” a second pass reports "already healthy" instead of repeating work β€” and every sudo-gated task degrades cleanly if admin access isn't available.

Update sources

Linux macOS
System APT, snap, Flatpak, firmware (fwupd) softwareupdate, App Store (mas)
Homebrew βœ“ βœ“
Dev tools npm, pnpm, pipx, rustup, cargo, gem, bun, deno, uv npm, pnpm, pipx, rustup, cargo, gem, bun, deno, uv

Each manager is detected automatically; you only ever see the ones you have.

Safety

  • Nothing outside caches/trash/logs is deleted without an interactive selection and confirmation.
  • Expensive-to-rebuild caches (HuggingFace models, Maven/Gradle repos, cargo registry, Ollama models, …) are whitelisted by default.
  • --dry-run everywhere it matters; every deletion is logged to vo history.
  • System-level actions never run implicitly β€” they need an interactive yes, an explicit flag, or an explicit config setting.

License

GPL-3.0, inherited from Mole. The lib/core/base.sh, lib/core/ui.sh, and lib/ui/ menu components are adapted from Mole's originals; the rest is written for Vole.

About

πŸ¦β€πŸ”₯ Clean, update, uninstall, and monitor your Linux box or Mac from the terminal. ~~~(^Β°>

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages