Hoe Mole groeide van shellscript tot Mac-app
Jarenlang hield ik een privé shellscript bij waarvan de enige taak was rommel van mijn Mac te halen. Ik hou van een computer die snel aanvoelt, dus ik bleef het bijschaven, van 500 regels naar meer dan 2.000, zoals sommige mensen een tuin verzorgen. In oktober 2025 liep mijn schijf weer vol. Ik probeerde verschillende bekende cleaners en geen ervan maakte veel verschil, daarna draaide ik mijn eigen script en zag het in één gang tientallen gigabytes wissen. Dat leek de moeite van het delen waard.
Ik was toen op vakantie in Sanya, zat bij een hotelzwembad, en besloot van het script een echt open-source CLI-hulpmiddel te maken. Het had een naam nodig. Een mol is een klein gravend dier met sterke voorpoten, erg goed in tunnels graven en dingen onder de grond vinden, en dat is precies wat het script deed: diep graven in de hoeken van macOS waar rommel zich ophoopt. Dus, Mole. De banner van die eerste versie zei "can dig deep to clean your Mac", en dat doet hij nog steeds.
Wat de gemeenschap ermee deed
Ik verwachtte een klein hulpmiddel met een paar honderd gebruikers. Na een half jaar had de repo meer dan 50.000 sterren op GitHub. Belangrijker dan de sterren: gebruikers hadden bijna 800 issues ingediend met opschoonpaden waarvan ik nooit had gehoord, ongeveer 300 feature-PR's gestuurd, en ongeveer 120 ontwikkelaars over de wereld waren bijdragers geworden. Elke ontwikkelaars-machine verbergt wegwerpbare uitvoer op andere plekken, en de gemeenschap bracht er veel meer van in kaart dan ik alleen had gekund.
Die breedte leverde de hardere les: elk nieuw opschoondoel is ook een nieuwe plek om een destructieve fout te maken. Een catalogus van paden was niet genoeg. Het hulpmiddel had gedeelde padbewaking nodig, beschermde locaties, controles op actieve processen, time-outs, beoordeling en tests die de gevallen vastzetten die het moet weigeren. De schaal van de gemeenschap voegde niet alleen dekking toe; die dwong het veiligheidsmodel algemener te worden dan het oorspronkelijke script.
Het moment waarop ik de schaal begreep was een rekening. Ik had twee schermafbeeldingen in de README gezet en ze via een CDN op Vercel geserveerd. In één week schoten ze voorbij de bandbreedtevergoeding, en ik was Vercel tachtig dollar schuldig voor twee plaatjes.
Waarom een Mac-app
Al vroeg schreven gebruikers steeds hetzelfde verzoek: mijn ouders willen dit, mijn zus wil dit, maar die gaan nooit een terminal openen. Ik schoof het idee maanden voor me uit omdat de CLI nog niet volwassen genoeg voelde om een desktopversie te dragen. In het voorjaar van 2026 wel, dus ik bouwde de Mac-app in een paar weekenden en lanceerde die op de avond van 11 mei 2026: Mole voor Mac, twee Macs, levenslange updates, tegen een vroegboekprijs als dank aan de gebruikers die Mole al die tijd hadden getest.
De app kon niet simpelweg een knop zijn die het script draaide. Een grafisch hulpmiddel moet ontdekken en verwijderen scheiden, een annulering overleven, toestemmingen uitleggen, het venster stabiel houden terwijl scans afronden, en een herstelbaar plan tonen aan iemand die nooit een shellcommando heeft gelezen. De CLI leerde de app waar die moest kijken; de app dwong het werk zichtbaar en onderbreekbaar te worden.
De planeten
De app had een menubalkhulpprogramma met een opschoonknop kunnen zijn, en die zou prima hebben verkocht. Maar er is al te veel door AI gegenereerde rommelsoftware in de wereld. Als ik de tokens ging uitgeven, wilde ik dat ze iets werden waarin je prettig zit, niet nog iets dat je tijdlijn vervuilt.
Als kind keek ik graag naar de planeten, en tien jaar geleden, meteen nadat ik frontend leerde, was het eerste dat ik vreselijk graag wilde leren WebGL, zodat ik ze kon tekenen. Deze app bouwen bracht die twee eindelijk samen: elk van de vijf functies kreeg een planeet waarvan het karakter bij het werk past.
- Opschonen is de aarde: bergregen spoelt oud stof weg.
- Apps is Mars: rood zand begraaft oude sporen.
- Optimaliseren is Mercurius: het dichtst bij de zon, het snelst in vlucht.
- Analyse is Jupiter: het breedste oog van allemaal.
- Status is de zon: het licht dat nooit slaapt.
De texturen komen uit astronomische beelden, met de aarde gebaseerd op NASA's Blue Marble. Ik wisselde ze meer dan tien keer voordat elke planeet klopte. Draai-richting en relatief tempo volgen de echte lichamen, en dat doet ook het kleine vluchteffect wanneer een bewerking klaar is. Strikt genomen heeft niets hiervan veel met een mol te maken. Het is meer het gevoel van een klein gravend wezen dat vanuit zijn tunnel naar een heel grote hemel kijkt, en daar stil over blijft.
Lanceeravond
Ik publiceerde rond tien uur 's avonds. Vrienden retweetten het, en daarna begon mijn telefoon te zoemen met een aankoopmelding ongeveer elke tien seconden, uit Frankrijk, Duitsland, valuta's die ik nog nooit in een uitbetaling had gezien. Mijn iPhone liep warm en leegde de batterij alleen door ze te tonen. Ik zette e-mail-meldingen uit om te kunnen slapen, en de aankopen kwamen de ochtend erna nog binnen. Best veel mensen, zo bleek, kochten de app puur omdat de CLI hen goed had behandeld.
De Mac-app heeft nog volop gaten, en ik ben dankbaar dat zoveel mensen voor een mooi speeltje betaalden en geduldig zijn terwijl ik ze invul. Ik laat dingen graag in hun eigen tempo rijpen in plaats van naar resultaten te haasten. Mole deed er jaren over om van een privéscript naar een open-source CLI naar een betaalde app te gaan, en het beste deel van de hele boog zijn de lange iteratie en de vriendschappen met ontwikkelaars over de wereld geweest. Dat is de echte rijkdom.