Repository navigation
What's new since 0.2.1.
Safety fix: Poetry environments and Deno data
In 0.2.x the generic App caches rule treated everything in ~/Library/Caches as a regenerable cache.
Two tools keep data there that isn't a cache: Poetry keeps its virtual environments in
~/Library/Caches/pypoetry/virtualenvs, and Deno keeps localStorage in ~/Library/Caches/deno/location_data.
App caches deleted them immediately, without quarantine. 0.3.0 excludes them, along with every other
~/Library/Caches folder that now has its own rule. Poetry environments are now a separate Review rule
that goes to quarantine, and Deno's localStorage is never touched. If a Poetry project stopped working
after a clean, run poetry install in it to rebuild the environment.
Highlights
- Developer and AI caches: new rules for npx, Bun, Deno, Yarn 2+, Corepack, node-gyp, Electron,
Playwright, Puppeteer, Cypress, uv, Poetry, conda, pre-commit, Go, Cargo, Maven, Coursier, Ivy,
Gradle, SwiftPM, pub, Bundler, Composer, Terraform, JetBrains, VS Code, Cursor and Unity, and for
Hugging Face datasets, PyTorch Hub, Whisper, Keras, TensorFlow Datasets and Kaggle. - Old projects:
node_modules, Python virtual environments, Cargotargetand build output
(SwiftPM, Gradle, Maven, Flutter, Next.js and similar) in projects you haven't changed for 30 days.
These are Review items: nothing is selected for you, and they go to quarantine, so you can restore them. - Project folders: projects in Documents or Desktop are skipped unless you add their folder under
Settings → Project folders. Only build folders that OpenClean recognises can be cleaned there. Your
own files in those folders are still never removed. - Go module cache:
~/go/pkg/modis now cleaned properly. Go makes it read-only, so before deleting
it OpenClean gives you write permission on its folders, the same result asgo clean -modcache. - Scan reminder (optional, off by default): a weekly or monthly read-only scan that tells you how
much can be cleaned. It never cleans anything itself. - Clearer skipped items: after a clean, Smart Scan lists anything it left in place and says why
(open in another app, changed since the scan, protected) and whether scanning again would help. - CLI:
openclean apps listandapps uninstall(to quarantine, with--dry-runand--json),
openclean space largeandspace duplicates(read-only), andopenclean performance. - Languages: the app is now available in German, Spanish, French, Japanese and Simplified Chinese,
following your macOS language. The translations are machine-assisted; corrections from native speakers
are welcome (see CONTRIBUTING.md). The CLI stays in English. - Screenshots: the README now shows every screen and a short Smart Scan demo.
- Cleanup list: the selected category and rule are highlighted like the sidebar instead of in the
system accent colour. - Homebrew: this repository is now a Homebrew tap for both the app and the CLI (see Install below).
All changes
Changes since v0.2.1.
Features
- app: localise the app into German, Spanish, French, Japanese and Chinese (167f853)
- app: project folders in Settings, and say why items were left in place (726d495)
- scan: search chosen project folders and stop the project walk on cancel (9249206)
- rules: clean Go's read-only module cache (39070d2)
- app: optional weekly or monthly scan reminder (a307f03)
- cli: apps, space and performance commands (10eb91c)
- release: Homebrew cask and stable CLI formula, bumped by a release PR (1b72a56)
- rules: developer and ML caches, and old-project cleanup (6a93179)
- scan: find node_modules, venvs, target and build output in old projects (3d2ee03)
Fixes
- app: reopen onboarding on the step it was quit on (5feb73d)
- app: ship compiled translations and lay UI tests out at full size on CI (7265f29)
- app: select Cleanup categories and rules like the sidebar, not in system blue (8acde8b)
- scan: tie the project-folder exemption to each probe and never take a project for a venv (248f106)
- uninstaller: tell a pretend home from the account's real home (3436269)
Other
- process: allow for CI runner stalls in the concurrency hang checks (2859c55)
- languages, translation guide and 0.3.0 highlights (8de0e09)
- re-render the Cleanup screenshot from the test harness (67ee4ac)
- app: record README screenshots from the UI harness (545a9ca)
- screenshots and a demo GIF in the README (a499a7e)
- release notes for 0.3.0 (dfb4dae)
- app: layout and render tests for the main window (ff2f12d)
- project folders, make_writable and the Go module cache (48eda7b)
- rule suggestion and bug report forms, rule pack template, add-a-rule guide (a924537)
- list the new developer, ML and old-project cleanup (bb631f1)
Install
App: download OpenClean-0.3.0.dmg, open it and drag OpenClean onto Applications.
The DMG is a universal build (Apple silicon and Intel) for macOS 14 or later, signed with a Developer
ID and notarized by Apple. On first launch OpenClean walks you through granting Full Disk Access.
Updating: OpenClean checks for updates once a day (Settings → Updates) and installs them in place,
keeping the previous version in History. An update must be signed by the same developer as the app you
have, and Full Disk Access carries over.
CLI: download openclean-cli-0.3.0.zip, unzip it and run openclean-cli/bin/openclean, or
install it:
unzip openclean-cli-0.3.0.zip
sudo mkdir -p /usr/local/bin /usr/local/share/openclean
sudo cp openclean-cli/bin/openclean /usr/local/bin/
sudo cp -R openclean-cli/share/openclean/rules /usr/local/share/openclean/Homebrew: brew install --cask leoanimesh/openclean/openclean (app) or
brew install leoanimesh/openclean/openclean (CLI). The tap moves to a new version shortly after its
release, once its bump pull request is merged.
Verify downloads: shasum -a 256 -c SHA256SUMS.txt in the folder holding the assets.