From a 500-Line Shell Script to a Mac App: The Story of Mole
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. Last October 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. Half a year in, the repo has crossed 50,000 stars on GitHub. More important than the stars: users filed 500 issues suggesting cleanup paths I had never heard of, sent 300 solid feature PRs, and about 100 developers around the world became contributors. Every developer machine hides junk in different places, and the community mapped far more of them than I could have alone. That map is why Mole's cleaning reaches places bigger commercial tools miss.
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 this spring it did, so I built the Mac app over a couple of weekends and launched it on the evening of May 11: 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 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 NASA imagery, and I swapped them more than ten times before each planet looked right. Spin direction, axis, and speed 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.