Skip to content

OpenClean 0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Oct 18:41
· 27 commits to main since this release
900a46e

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, Cargo target and 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/mod is now cleaned properly. Go makes it read-only, so before deleting
    it OpenClean gives you write permission on its folders, the same result as go 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 list and apps uninstall (to quarantine, with --dry-run and --json),
    openclean space large and space duplicates (read-only), and openclean 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.