个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证The Mac cleaner made for developers. Find the space your dev tools quietly eat, and clean it safely.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗MoltDisk scans a developer Mac for reclaimable space (node_modules and build folders in any language, package caches, Xcode data, old simulators, unused editor extensions, app caches, logs) and groups it by category with sizes and a safety label on every item. It deletes only what you tick, after a confirmation sheet showing the total, and moves things to the Trash by default.
build or dist only count when the project file next to them proves it.xcrun simctl, the way Xcode does it.Paste this in Terminal:
curl -fsSL https://moltdisk.vercel.app/install.sh | sh
It downloads the latest release from GitHub, puts MoltDisk.app in Applications (or ~/Applications if you can't write to /Applications) and opens it. Run it again any time to update. Read the script first if you like: landing/install.sh.
Or with Homebrew:
brew tap joe-watson-dev/moltdisk https://github.com/joe-watson-dev/moltdisk && brew trust joe-watson-dev/moltdisk && brew install --cask moltdisk
Homebrew asks you to trust a tap before it runs an outside recipe; brew trust does that for this one. Both commands always install the latest release. To update later, run the curl command again, or brew upgrade --cask --greedy moltdisk (the cask tracks the newest release, so Homebrew needs --greedy to reinstall it).
Why a Terminal command? MoltDisk isn't signed by Apple yet (that needs a paid Apple Developer account). When you download an unsigned app in a browser, macOS tags it as coming from the internet and blocks it as being from an unidentified developer. A download made with curl isn't tagged, and the Homebrew cask removes the tag after installing, so the app opens normally. Everything it runs is in this repository.
Requirements: a Mac with Apple silicon (M1 or newer) and macOS 15 Sequoia or later. The script checks both and stops with a clear message otherwise.
Downloaded in the browser and macOS blocks it? Move MoltDisk.app to Applications, then run:
xattr -dr com.apple.quarantine /Applications/MoltDisk.app
This also fixes "MoltDisk is damaged and can't be opened". Or try to open the app once, then go to System Settings › Privacy & Security and click Open Anyway (needs an admin account).
Build it yourself (needs Xcode or the Command Line Tools; apps you build are never blocked):
git clone https://github.com/joe-watson-dev/moltdisk && cd moltdisk && ./scripts/build-app.sh && open build/MoltDisk.app
Work Macs managed by a company may block unsigned apps completely; only a notarized build gets past that.
To read the Trash and remove other apps' containers, grant Full Disk Access in System Settings › Privacy & Security.
./scripts/build-app.sh # builds build/MoltDisk.app (release, ad-hoc signed)
open build/MoltDisk.app
Or open Package.swift in Xcode and press Run. swift run MoltDisk works too.
swift run MoltDisk --report prints the scan to the terminal without opening a window.
The app icon (a broom sweeping a drive) is drawn in code by scripts/make-icon.swift, which writes Resources/AppIcon.icns; build-app.sh bundles it. Rerun the script after tweaking colors or shapes.
| Category | Where | Label |
|---|---|---|
| Dependencies | node_modules, Python virtualenvs (any folder with pyvenv.cfg), Composer vendor, Pods, Carthage, Elixir deps, .tox, .terraform, project-local .pnpm-store | Will need reinstall |
| Build artifacts | JS (.next, .turbo, .expo, .nuxt, .svelte-kit, .angular, dist, build, out, coverage…), Python (__pycache__ grouped per project, .pytest_cache, .mypy_cache, .ruff_cache, *.egg-info, dist), Java/Spring Boot (Maven target, Gradle build + .gradle), Rust target, .NET bin/obj, SwiftPM .build, Xcode, Flutter build + .dart_tool, Elixir _build, Haskell, Zig, CMake, Rails tmp, Unity Library/Temp | Safe, or Review first when a generic name like build/bin isn't gitignored |
| Xcode | DerivedData, Archives, DeviceSupport, SwiftUI Previews | Safe / Review |
| Package caches | npm, npx, pnpm (old store versions; the live store is locked), Yarn, Bun, Homebrew, CocoaPods, Gradle, Maven ~/.m2, NuGet, pub, Composer, Go modules, Cargo, pip, SwiftPM, Deno, ~/.cache/* | Safe |
| iOS Simulators | devices and runtimes from xcrun simctl | Will need reinstall (unavailable devices: Safe) |
| Editors & IDEs | Each editor found on the Mac gets its own sidebar entry. VS Code family (VS Code, Insiders, VSCodium, Cursor, Windsurf, Antigravity, Kiro, Trae, Positron, Void): every extension with its real name and whether you use it (see below), old duplicate versions, editor caches. JetBrains (IntelliJ, WebStorm, PyCharm, GoLand, Rider…) and Android Studio: old versions left after upgrades (caches + settings + plugins + logs), plus the current version's caches and logs. The current version's settings are never offered |
Projects are searched in ~/DEV, ~/Developer, ~/Projects, ~/code… by default; change them in Settings › Project folders (⌘,).
~/Library/Application Support/MoltDisk/ (e.g. vscode-usage.json, cursor-usage.json), so the history keeps growing after VS Code rotates its logs.globalStorage and workspaceStorage folders also counts as use.Cleaning only acts on items ticked in the section you're viewing. Ticks you made in other sections stay, but are never included; the bottom bar shows how many there are. Overview shows everything, so cleaning from Overview includes every ticked item.
xcrun simctl delete / simctl runtime delete, never rm.. suffix such as .plist, a developer Team ID in front, or a group. prefix), or, in Application Support/Caches/Logs, exactly after the app's name. Apple's apps and identifiers in any form (com.apple…, group.com.apple…, developer.apple…), system tools, MoltDisk itself and Claude's data are always refused. The app goes to the Trash first (through the Finder, which asks for a password when an admin installed it); if a file can't be moved, the rest still is and the result says what is left. Other apps' Containers need Full Disk Access. Uninstalling isn't part of Overview, so "select all" there never removes an app.warp.log.old.0 are ignored.SafetyGuard). Every path is checked right before deletion: it must be inside your home folder and at least two levels deep. ~/Library/Application Support (Claude always), Containers, Group Containers, iCloud Drive, Keychains, Preferences, Documents, Desktop, Pictures, .ssh and .config are refused. The only exceptions are Chromium/Electron cache folders (Cache, Code Cache, GPUCache, Service Worker/CacheStorage…) and a sandboxed app's Data/Library/Caches. MoltDisk --check-guard prints the guard's decisions for sample paths./Library/Developer/CoreSimulator (root-owned simulator volumes and dyld caches). Removing the runtime through the app frees the runtime image itself./opt/homebrew: use brew cleanup / brew autoremove.MOLTDISK_SELFTEST=/path/to/some/node_modules MOLTDISK_SNAPSHOTS=/tmp/shots build/MoltDisk.app/Contents/MacOS/MoltDisk
This scans, ticks only that item, opens the confirmation sheet, moves the item to the Trash through the same Store.clean() call the button uses, saves a PNG of the window at each step and quits.
| Path | What |
|---|---|
Sources/MoltDisk/ | The app: scanners, safety guard, cleaner, SwiftUI views |
Resources/ | App icon |
scripts/ | App build script, icon and marketing image generators |
landing/ | Product landing page (static HTML) |
marketing/ | Screenshot and promo images |
MoltDisk is open source under the GPL-3.0. Any modified version you share must stay under the same license, with its source code available. If you fork MoltDisk, please use a different name and icon and credit MoltDisk as the original; see TRADEMARK.md. MoltDisk is provided as is, without warranty of any kind.
Copyright © 2026 Joe Watson.
| Locked / Not used recently / Review / Safe |
| App caches | ~/Library/Caches/*, Chrome/Brave/Edge/Arc and Electron app caches (Slack, Discord, Cursor, Notion…) inside Application Support, optionally sandboxed app caches in ~/Library/Containers (Settings) | Safe (com.apple.*: Review) |
| Logs | ~/Library/Logs/* | Safe |
| Large downloads | items over 100 MB in ~/Downloads | Review |
| Trash | ~/.Trash (needs Full Disk Access to read) | Review |
| Applications | Installed: every app in /Applications (and one folder deep) and ~/Applications, with the files it keeps in ~/Library: Application Support, Caches, Logs, Containers, Group Containers, Preferences (incl. ByHost), Saved Application State, HTTPStorages, WebKit, Cookies, Application Scripts and LaunchAgents. Leftovers: the same kinds of files from apps that are no longer on the Mac, one row per developer | Will need reinstall / Not used recently (90 days) / Review (leftovers) |