maclean 1.0.0

Find and reclaim disk space on macOS
docs.rs failed to build maclean-1.0.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

maclean

Finds reclaimable disk space on macOS. Run it in a terminal and you get a TUI. Pass a subcommand if you need it in a script.

I built this for machines with a lot of project folders - node_modules, target, etc.

macOS only.

Install

Needs a Rust toolchain.

cargo install maclean

From git, if you want a specific checkout:

cargo install --git https://github.com/kirkl4nd/maclean

Homebrew is not set up yet. When it is, the formula should run maclean uninstall before it deletes the binary, so launchd jobs do not get left behind.

Uninstall

Do this first. cargo uninstall only removes the binary. It does not know about launchd.

maclean uninstall
cargo uninstall maclean

maclean uninstall only removes jobs maclean created. Those plists live in ~/Library/LaunchAgents and are tagged (com.maclean.job.* plus a MacleanSchema / MacleanManaged key, or the older "Managed by maclean" comment). Anything else in LaunchAgents is left alone.

Config and logs stay unless you ask:

maclean uninstall --purge-data

Usage

maclean                          # TUI
maclean scan
maclean reclaim cargo:foo --yes
maclean schedule add cargo:projects --every 1d
maclean schedule add cargo:projects node:caches --every 1w
maclean schedule list

In the TUI, s opens the schedule manager. From there, + creates a job: pick what should run (module actions, not a scan result), then how often. Do not edit the plist files by hand.

Jobs are per-user LaunchAgents. They run while you are logged in. "Every week" means about seven days since the last successful run, not seven days of the Mac staying on.

  • Restart or log out does not reset that clock.
  • If a run is overdue when you next log in, it runs then.
  • Missed weeks are not stacked: three weeks away is one run, not three.
  • Sleep: an overdue job usually runs on wake.

Config

~/Library/Application Support/maclean/config.toml

Missing file means defaults. maclean config init writes a starter file with every module listed.

License

MIT