AI News Feed
Market watch
Products & Applications

Mole Expands From Open-Source Mac Cleanup CLI to Paid Desktop App as Users Shape Its AI-Era Rules

Mole, an open-source Mac cleanup command-line tool, has become a paid Mac desktop app after reaching 60,000 GitHub stars and more than 120 contributors. Its developer says users pushed the shift and shaped safeguards for cleaning AI-generated files, while the CLI remains free and open source.

The CLI has shipped more than 50 versions and received code contributions from 121 developers worldwide, resolving nearly 800 feature requests and bugs. The developer said he did not fully grasp how many people were using it until two images in the README, accelerated by Vercel, pushed traffic past the free tier and left an $80 bill. That was the moment he concluded a desktop version was possible. The most common emails came from users abroad who asked for a version their parents or sisters could use without opening a terminal. He delayed the desktop build until the CLI had run for more than half a year and he was confident about what could be deleted safely. The desktop version was released at 10 p.m. one night, and notifications kept arriving in currencies from France, Germany and elsewhere until he turned off email alerts to sleep. Early paying users helped finish the product. The CLI has not changed: it stays open source and free, and it will keep receiving updates. Only the desktop version is paid.

After the desktop version launched, the developer used its cleanup most often because AI tools had filled his own Mac. He ran Claude Code and Codex all day and identified three broad categories of AI-related waste. The first is build output, which is not new but has been amplified by agents: Rust target directories, frontend .next and dist folders, and Xcode DerivedData. He once cleaned 86 GB of such files. The second is old versions left by auto-updating AI command-line tools such as Claude Code, Cursor Agent and GitHub Copilot. Each update downloads a new version directory of about 250 MB, and old versions are not removed, leaving more than a dozen unused versions after a few months. The third is model files pulled by Ollama and LM Studio and caches from HuggingFace, often tens of gigabytes. Mole cleans the first two categories and does not touch the third.

The developer organized cleanup into three tiers. The first is renewable data, including HTTP caches, GPU caches, build output and most logs, which can be cleaned when the related app is closed and the path is clear. The second is data that is costly to rebuild, such as package manager caches, local model weights and iOS DeviceSupport files; these can be rebuilt but require network and time, so users should review them. The third is irreplaceable data, including chat histories, mail stores, photo libraries and the state of active projects. He said these should not appear in a one-click cleanup list. The cleanup page lists ten categories in that order. Build folders such as target, build, dist, __pycache__ and DerivedData can be regenerated in minutes, while node_modules, Pods, venv and vendor require downloading dependencies again. The Mac version removed all download-based directories from its cleanup list.

Model files receive stricter treatment. Ollama splits models into hash-named blocks that may be shared by multiple models, and its own removal command checks references before freeing space. Deleting a large-looking block from the file system could damage another model. Paths such as ~/.ollama/models and ~/.cache/huggingface are hard-coded in a protection list and do not appear during scanning; they are only shown as disk usage, and the models are left to Ollama and LM Studio to manage. AI session records are even more protected. Paths such as ~/.codex/sessions, ~/.claude/projects and ~/.grok/sessions store months or years of conversations, including rejected approaches and reasons for changes. Mole never cleans them, regardless of age, and also protects memories, plans, skills and generated images.

These protection rules were mostly learned through mistakes. In an early CLI version, Mole treated com.apple.e5rt.e5bundlecache as a cache because of its name and location, but it is compiled models for Apple's neural engine. After cleanup, recognition features in all affected apps failed until a restart. The developer now asks three questions before touching any directory with cache in its name: who wrote it, who will read it after a restart, and how to recover it if deleted. If any answer is missing, he leaves it alone.

The developer measures a cleanup tool less by how much it deletes than by whether it lets users see clearly before deletion. Mole scans first and lists each item with its identity, location and size. Uncertain items are unchecked by default. After confirmation, files go to the Trash first so they can be recovered. Scanning and cleanup run locally, and neither files nor results are uploaded. The trade-off is speed, but he prefers missing something to deleting the wrong thing. Uninstall uses the same logic: selecting an app brings up related files across the system with paths and sizes. In one example, Claude's app package was 781 MB while ~/Library/Application Support/claude was 7.67 GB. Login items and background services are on the same page.

The macOS installer directory, /macOS Install Data, can be more than ten gigabytes and looks like an ideal cleanup target, but the system may still need it to finish an update. Mole leaves it unchecked by default and applies three gates: it hides the row if an update is waiting to install, if the installer has been modified in the last 14 days, or if installation-related processes are running. If any signal cannot be read, Mole treats it as risky and does not show it. At deletion time, a root script reruns the checks and exits with a non-zero status if they fail. The developer also described a simpler test for cleanup tools: install two products from the same vendor, uninstall only one, and see whether the tool lists the shared Application Support parent directory or group container. If it does, he said, it is matching by name rather than ownership.

Mole is designed not to interrupt. It does not send reminders to clean, and it does not warn users that their computers are in danger after a scan. Users open it when they want it and otherwise leave it alone. The interface waits until scanning is finished before entering results, delays a busy animation, and reserves space on the completion page so the window does not jump. It supports reduced motion: when the system setting is enabled, a planet stops decorative rotation and state changes reduce spatial movement. Accessibility includes reading order, keyboard operation and stable focus. The developer said a maintenance tool should let users start a task, wait for it to finish and get their screen back, without blinking lights asking for attention.

User emails influenced several decisions. A UK user who was nearly 70 wrote that he had accidentally bought Mole again and said the second payment could be treated as a gift; the developer suggested a refund or passing the extra license to someone else. A US user corrected the assumption that Americans use Fahrenheit for technical contexts, saying Americans use Celsius in technical settings except for weather and body temperature; Mole later defaulted to Celsius with an option to switch to Fahrenheit. The same user said the price read as if it had been converted from another currency, and the developer said he had set it arbitrarily. A user with mild visual impairment said the app was unusable because it hard-coded dark mode. The developer said the dark-only design was intentional, but acknowledged that light mode is also an accessibility need and that it remains unfinished. A lecturer at a German university applied for an education license and called it meaningful educational support. A Hungarian doctor left a negative review saying the price was high for something a free app could do; the developer said purchasing power varies and took it as positioning feedback.

Some features came from users as well. An AirPods low-battery reminder was added during work on battery health. Screen-awake behavior was expanded to three modes after user requests, allowing AI coding to continue while the developer was away. The status view can show an iPhone battery level. The developer said he still answers emails manually, including refunds and activation resets, even though they are less than 1% of users and could be automated. He set a threshold for automation: a problem must repeat, the answer must be stable, and exceptions must be understood.