You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The About window, GNOME Software and the README now link to the website, cleanmate.homielab.com, with guides and downloads; the source code stays one click away in About.
Smart Scan is about a third faster: the engine loads faster and starts 40 % fewer helper processes while scanning (a whole scan on a 4-core Ubuntu 24.04 machine: 0.09 s instead of 0.14 s). Results are unchanged.
Command line: cm --clean --yes and automatic cleaning no longer remove Docker volumes or stopped containers, even when they are ticked in the app — they may hold databases or other data and are deleted for good. Each one skipped is named, with how to clean it on purpose (in the app, or cm --json clean docker_volumes). cm --json items and scan mark these items with data_loss, and the Agent Skill cleans them only when you name them.
Added
Undo across sessions: cm --json restore --list (and cm restore --list in a terminal) lists what CleanMate moved to the Trash and is still there — from the apps, a clean or cm --json trash — newest first with size, date and where it came from; each trashed key goes straight to cm --json restore. Things you trashed yourself are not listed. The Agent Skill uses it when you ask to get something back.
Developer Junk (both apps): stale project build folders now include Gradle and Android (build/, .gradle/, app/build/), Maven, SwiftPM, Flutter, Next.js, Nuxt, SvelteKit, Angular, Turborepo, Haskell, Elixir and Zig projects untouched for 90 days. Each folder is listed only next to the project file that makes it, never through a symlink; still moved to the Trash, with Undo.
Developer Junk (both apps): old Vagrant box versions, one by one in the desktop app. The newest version of each box and those your machines use are kept; not pre-selected, skipped while Vagrant runs.
Developer Junk (both apps): package caches of Haskell (cabal, Stack, ghcup), Scala (Coursier, Ivy, sbt) and OCaml (opam), not pre-selected, and the Composer cache, each skipped while its tool runs. Installed compilers, tools, local Ivy packages and opam switches are kept.
The desktop app in Vietnamese now translates the Terraform, minikube, Helm, Haskell, Scala, opam, Composer and Vagrant items.
Developer Junk (both apps): infrastructure tool caches — the Terraform/OpenTofu plugin cache and the minikube download cache (ISO, preloaded images; not pre-selected) and the Helm cache, each skipped while its tool runs. Clusters, profiles, certificates, Helm repositories and plugins are kept.
Stale project build folders now include .terraform/providers and .terraform/modules of Terraform/OpenTofu projects idle for 90 days (moved to the Trash; state files are never touched).
AI agents: large files, Space Lens and Duplicates can be driven headlessly, without the app. cm --json lens, large and dupes list what is taking up space (they now accept --limit besides --path/--min/--days), and cm --json trash [--home-only] plus cm --json restore move just the confirmed paths to (and back from) the Trash, refusing anything outside your home folder or excluded in Never clean. The README documents the commands and the Agent Skill uses them instead of pointing agents to the app — they never delete files by hand. An Agent Skill (skills/cleanmate/) lets Claude Code, Codex and other agents scan with cm --json, show the result and clean only what you confirm.
System Junk › PackageKit cache: packages and package lists GNOME Software and Software Updater downloaded to /var/cache/PackageKit, often hundreds of MB that apt-get clean leaves. Ticked by default; skipped while PackageKit, GNOME Software or Software Updater is running.
Uninstaller (terminal app): f now also shows apps not used for 365+ days, after the 90+ days filter.
User & App Junk (both apps): game launcher caches — installers winetricks and Wine downloaded (~/.cache/winetricks, ~/.cache/wine) and the cover art and temporary installers of Lutris and Heroic, deb and Flatpak. One row per folder, pre-selected, skipped while a launcher, Wine or Proton runs; Wine prefixes, games and saves are never touched.
Developer Junk (both apps): old asdf and mise runtime versions (Node.js, Python, Ruby, Java…, often 100 MB–1 GB each). The newest version of each tool is kept, as is every version pinned in ~/.tool-versions, mise's settings or the .tool-versions / mise.toml of a project in your home; a pin like 20 or lts keeps the newest match. Not pre-selected, deleted for good (asdf install or mise install brings one back), skipped while asdf or mise runs, a version a program runs from is skipped; each version on its own in the desktop app.
Developer Junk (both apps): old Proton and Wine versions — Proton-GE, Wine-GE and other builds (often 0.5–1 GB each) that Steam (compatibilitytools.d), Lutris, Heroic and Bottles leave behind, deb and Flatpak. The newest of each and the versions a game or bottle is set to use are kept; Steam's own Proton is never touched. Not pre-selected, deleted for good (the launcher or ProtonUp-Qt downloads any version again), skipped while a launcher, Wine, Proton or gamescope runs; each version on its own in the desktop app.
Developer Junk (both apps): old Unity Editor versions in Unity Hub (often 5–15 GB each). The newest is kept, as is every version a project uses (its ProjectSettings/ProjectVersion.txt, for Unity Hub's projects and projects in your home). Not pre-selected, deleted for good (Unity Hub installs one again), skipped while Unity or Unity Hub runs; each version on its own in the desktop app.
Developer Junk (both apps): Unity caches — package, build and Asset Store downloads (~/.cache/unity3d, ~/.config/unity3d/cache, ~/.local/share/unity3d). Not pre-selected, skipped while Unity runs; licenses, settings and game saves are kept.
Fixed
Developer caches: when XDG_CACHE_HOME is not set, the scan no longer looks for Deno, Zig, Bazel, ccache, sccache, Poetry, pipx, pre-commit and GPU shader caches at the root of the disk (/zig, /pre-commit, …). Nothing there was ever deleted.