# Comment Mole est passé du shell script à l’app Mac

> Comment un script de nettoyage privé est devenu un CLI open source, un modèle de sécurité plus strict, et une app native conçue pour un travail visible et interruptible.

Published: 2026-05-11 | Updated: 2026-08-07

Pendant des années, j'ai gardé un script shell privé dont le seul rôle était de
nettoyer les déchets de mon Mac. J'aime qu'un ordinateur reste rapide, alors je
l'ai peaufiné sans relâche, de 500 lignes à plus de 2 000, comme d'autres
entretiennent un jardin. En octobre 2025, mon disque s'est encore rempli. J'ai
essayé plusieurs nettoyeurs bien connus, sans grand effet, puis j'ai lancé mon
propre script et l'ai vu libérer des dizaines de gigaoctets en un seul passage.
Cela méritait d'être partagé.

J'étais en vacances à Sanya à l'époque, assis près de la piscine d'un hôtel, et
j'ai décidé de transformer le script en un véritable outil CLI open source. Il
fallait un nom. Une taupe (mole) est un petit animal fouisseur aux pattes avant
puissantes, très doué pour creuser des tunnels et trouver ce qui se cache sous
terre, exactement ce que faisait le script : creuser au fond des recoins de
macOS où s'accumulent les déchets. Ainsi est né [Mole](https://github.com/tw93/mole).
La bannière de cette première version disait « can dig deep to clean your Mac »,
et c'est toujours le cas.

## Ce qu'en a fait la communauté

Je m'attendais à un petit outil avec quelques centaines d'utilisateurs. Au bout
de six mois, le dépôt avait dépassé les 50 000 étoiles sur GitHub. Plus
important encore que les étoiles : les utilisateurs avaient ouvert environ
500 issues pour suggérer des chemins de nettoyage dont je n'avais jamais
entendu parler, envoyé près de 300 pull requests de fonctionnalités, et une
centaine de développeurs du monde entier étaient devenus contributeurs. Chaque
machine de développeur cache des sorties jetables à des endroits différents, et
la communauté en a cartographié bien plus que je n'aurais pu le faire seul.

Cette ampleur a enseigné la leçon la plus dure : chaque nouvelle cible de
nettoyage est aussi un nouvel endroit où commettre une erreur destructrice. Un
catalogue de chemins ne suffisait pas. L'outil avait besoin de gardes de chemin
partagées, d'emplacements protégés, de contrôles de processus actifs, de
délais d'attente, de relecture et de tests qui verrouillent les cas qu'il doit
refuser. L'échelle de la communauté n'a pas seulement élargi la couverture ;
elle a forcé le modèle de sécurité à devenir plus général que le script
d'origine.

<figure class="blog-diagram">
  <video src="https://mole.fit/img/blog/mole-contributors.mp4" width="1600" height="900" autoplay muted loop playsinline></video>
  <figcaption>Six mois de commits, visualisés : chaque cluster est un coin du code, chaque silhouette un contributeur en orbite autour des fichiers sur lesquels il a travaillé.</figcaption>
</figure>

Le moment où j'ai compris l'échelle, c'est une facture. J'avais mis deux
captures d'écran dans le README et les servais via un CDN sur Vercel. En une
semaine, elles ont consommé 60 téraoctets de bande passante, et je devais
quatre-vingts dollars à Vercel pour deux images.

## Pourquoi une application Mac

Dès le début, les utilisateurs répétaient la même demande : mes parents en
veulent, ma sœur en veut, mais ils n'ouvriront jamais un terminal. J'ai repoussé
l'idée pendant des mois, parce que le CLI ne me semblait pas encore assez mûr
pour porter une version bureau. Au printemps 2026, ce n'était plus le cas :
j'ai construit l'application Mac en quelques week-ends et l'ai lancée le soir
du 11 mai 2026 : [Mole for Mac](https://mole.fit/), deux Mac, mises à jour à vie, à neuf
dollars en early bird, en remerciement aux utilisateurs qui avaient testé Mole
depuis le début.

L'application ne pouvait pas se contenter d'être un bouton qui lance le script.
Un outil graphique doit séparer la découverte et la suppression, survivre à
l'annulation, expliquer les permissions, garder la fenêtre stable pendant que
les analyses se terminent, et présenter un plan récupérable à quelqu'un qui
n'a jamais lu une commande shell. Le CLI a appris à l'application quoi
chercher ; l'application a forcé le travail à devenir visible et interruptible.

<figure class="blog-diagram">
  <video src="https://mole.fit/img/blog/mole-mac-demo.mp4" width="1440" height="1074" autoplay muted loop playsinline></video>
  <figcaption>Mole for Mac : nettoyage, gestion des applications, optimisation, analyse du disque et état en direct dans une application native.</figcaption>
</figure>

## Les planètes

L'application aurait pu être un utilitaire de barre de menus avec un bouton de
nettoyage, et elle se serait bien vendue. Mais le monde regorge déjà trop de
logiciels de pacotille générés par l'IA. Si j'allais dépenser des tokens,
je voulais qu'ils deviennent quelque chose d'agréable à avoir sous les yeux, pas
encore une chose de plus qui pollue votre fil.

Enfant, j'adorais regarder les planètes, et il y a dix ans, juste après avoir
appris le frontend, la première chose que j'avais terriblement envie d'apprendre
était le WebGL pour pouvoir les dessiner. Construire cette application a enfin
réuni les deux : chacune des cinq fonctionnalités a reçu une planète dont le
caractère correspond au travail qu'elle accomplit.

- Clean est la Terre : la pluie de montagne emporte la poussière ancienne.
- Software est Mars : les sables rouges ensevelissent les anciennes traces.
- Optimize est Mercure : la plus proche du soleil, la plus rapide en vol.
- Analyze est Jupiter : l'œil le plus vaste de tous.
- Status est le Soleil : la lumière qui ne dort jamais.

Les textures viennent d'images astronomiques, avec la Terre basée sur la
[Blue Marble](https://visibleearth.nasa.gov/images/57752/blue-marble-land-surface-shallow-water-and-shaded-topography)
de la NASA. Je les ai changées plus de dix fois avant que chaque planète
paraisse juste. Le sens de rotation et le rythme relatif suivent les corps
réels, tout comme le petit effet de vol lorsqu'une opération se termine.
À strictement parler, rien de tout cela n'a grand-chose à voir avec une taupe.
C'est plutôt le sentiment d'une petite créature fouisseuse qui lève les yeux
depuis son tunnel vers un ciel très vaste, et qui reste silencieuse.

## La nuit du lancement

J'ai publié vers dix heures du soir. Des amis ont retweeté, puis mon téléphone
a commencé à vibrer avec une notification d'achat environ toutes les dix
secondes, venant de France, d'Allemagne, de devises que je n'avais encore jamais
vues sur un versement. Mon iPhone chauffait et vidait sa batterie rien qu'à les
afficher. J'ai coupé les notifications par e-mail pour dormir un peu, et le
matin les achats continuaient d'arriver. Bien des gens, il s'avère, ont acheté
l'application uniquement parce que le CLI les avait bien traités.

L'application Mac a encore bien des lacunes, et je suis reconnaissant que tant
de personnes aient payé pour un joli jouet et patientent pendant que je les
comble. J'aime laisser les choses mûrir à leur rythme plutôt que de courir
après le résultat. Mole a mis des années pour passer d'un script privé à un CLI
open source puis à une application payante, et la plus belle part de tout ce
parcours a été la longue itération et les amitiés avec des développeurs du
monde entier. C'est là la vraie richesse.

---

Canonical HTML page: https://mole.fit/fr/blog/the-story-of-mole
Blog index for agents: https://mole.fit/fr/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
