How Mole Grew from Shell Script to Mac App
For years I kept a private shell script whose only job was cleaning junk off my Mac. I like a computer that feels fast, so I kept polishing it, from 500 lines to over 2,000, the way some people tend a garden. In October 2025 my disk filled up again. I tried several well-known cleaners and none of them moved the needle much, then ran my own script and watched it clear tens of gigabytes in one pass. That seemed worth sharing.
I was on holiday in Sanya at the time, sitting by a hotel pool, and decided to turn the script into a proper open-source CLI tool. It needed a name. A mole is a small burrowing animal with strong forelimbs, very good at digging tunnels and finding things underground, which is exactly what the script did: dig deep into the corners of macOS where junk accumulates. So, Mole. The banner on that first version read "can dig deep to clean your Mac," and it still does.
What the community did with it
I expected a small tool with a few hundred users. By the six-month mark, the repo had crossed 50,000 stars on GitHub. More important than the stars: users had filed roughly 500 issues suggesting cleanup paths I had never heard of, sent around 300 feature PRs, and about 100 developers around the world had become contributors. Every developer machine hides disposable output in different places, and the community mapped far more of them than I could have alone.
That breadth created the harder lesson: every new cleanup target is also a new place to make a destructive mistake. A catalog of paths was not enough. The tool needed shared path guards, protected locations, active-process checks, timeouts, review, and tests that lock down the cases it must refuse. Community scale did not just add coverage; it forced the safety model to become more general than the original script.
The moment I understood the scale was a bill. I had put two screenshots in the README and served them through a CDN on Vercel. One week they consumed 60 terabytes of bandwidth, and I owed Vercel eighty dollars for two pictures.
Why a Mac app
From early on, users kept writing the same request: my parents want this, my sister wants this, but they are never going to open a terminal. I put the idea off for months because the CLI did not yet feel mature enough to carry a desktop version. By spring 2026 it did, so I built the Mac app over a couple of weekends and launched it on the evening of May 11, 2026: Mole for Mac, two Macs, lifetime updates, at an early-bird nine dollars as a thank-you to the users who had been testing Mole all along.
The app could not simply be a button that ran the script. A graphical tool has to make discovery and deletion separate, survive cancellation, explain permissions, keep the window stable while scans finish, and show a recoverable plan to someone who has never read a shell command. The CLI taught the app what to look for; the app forced the work to become visible and interruptible.
The planets
The app could have been a menu bar utility with a clean button, and it would have sold fine. But there is already too much AI-generated junk software in the world. If I was going to spend the tokens, I wanted them to become something comfortable to sit in front of, not another thing polluting your timeline.
As a kid I loved watching the planets, and ten years ago, right after I learned frontend, the first thing I badly wanted to learn was WebGL so I could draw them. Building this app finally brought the two together: each of the five features got a planet whose character matches the work it does.
- Clean is Earth: mountain rain washes old dust away.
- Software is Mars: red sands bury old traces.
- Optimize is Mercury: closest to the sun, swiftest in flight.
- Analyze is Jupiter: the widest eye of all.
- Status is the Sun: the light that never sleeps.
The textures come from astronomical imagery, with Earth based on NASA's Blue Marble. I swapped them more than ten times before each planet looked right. Spin direction and relative pace follow the real bodies, and so does the little flight effect when an operation completes. Strictly speaking none of this has much to do with a mole. It is more the feeling of a small digging creature looking up from its tunnel at a very large sky, and staying quiet about it.
Launch night
I published around ten in the evening. Friends retweeted it, and then my phone started buzzing with a purchase notification roughly every ten seconds, from France, Germany, currencies I had never seen in a payout before. My iPhone ran hot and drained its battery just displaying them. I turned off email notifications to get some sleep, and the purchases were still coming in the morning. Quite a few people, it turns out, bought the app purely because the CLI had treated them well.
The Mac app still has plenty of gaps, and I am grateful that so many people paid for a pretty toy and are patient while I fill them in. I like letting things ripen at their own pace instead of rushing for results. Mole took years to go from a private script to an open-source CLI to a paid app, and the best part of the whole arc has been the long iteration and the friendships with developers around the world. That is the real wealth.