Cómo Mole pasó de script de shell a app para Mac
Durante años guardé un script de shell privado cuya única tarea era limpiar basura de mi Mac. Me gusta un equipo que se sienta rápido, así que lo fui puliendo, de 500 líneas a más de 2.000, como quien cuida un jardín. En octubre de 2025 el disco se llenó otra vez. Probé varios limpiadores conocidos y ninguno movió la aguja mucho; entonces corrí mi propio script y vi cómo liberaba decenas de gigabytes de un solo paso. Eso parecía merecer compartirse.
Estaba de vacaciones en Sanya en ese momento, sentado junto a la piscina de un hotel, y decidí convertir el script en una herramienta CLI open source de verdad. Necesitaba un nombre. Un topo (mole en inglés) es un animal pequeño que cava con patas delanteras fuertes, muy bueno abriendo túneles y encontrando cosas bajo tierra, que es exactamente lo que hacía el script: cavar profundo en los rincones de macOS donde se acumula la basura. Así nació Mole. El banner de esa primera versión decía "can dig deep to clean your Mac", y sigue diciéndolo.
Qué hizo la comunidad con él
Esperaba una herramienta pequeña con unos cientos de usuarios. A los seis meses, el repo había superado las 50.000 estrellas en GitHub. Más importante que las estrellas: los usuarios habían abierto unos 500 issues sugiriendo rutas de limpieza que nunca había oído, enviaron alrededor de 300 PRs de funciones, y unos 100 desarrolladores de todo el mundo se convirtieron en contribuidores. Cada máquina de desarrollador esconde basura desechable en sitios distintos, y la comunidad mapeó muchos más de los que yo habría podido solo.
Esa amplitud trajo la lección más dura: cada nuevo objetivo de limpieza es también un nuevo lugar para cometer un error destructivo. Un catálogo de rutas no bastaba. La herramienta necesitaba protección de rutas compartida, ubicaciones protegidas, comprobaciones de procesos activos, timeouts, revisión y tests que fijen los casos que debe rechazar. La escala de la comunidad no solo sumó cobertura; también forzó a que el modelo de seguridad fuera más general que el del script original.
El momento en que entendí la escala fue una factura. Había puesto dos capturas en el README y las servía por un CDN en Vercel. En una semana consumieron 60 terabytes de ancho de banda, y le debí a Vercel ochenta dólares por dos imágenes.
Por qué una app para Mac
Desde el principio, los usuarios escribían la misma petición: mis padres quieren esto, mi hermana quiere esto, pero nunca van a abrir una terminal. Aplacé la idea durante meses porque el CLI aún no se sentía lo bastante maduro para sostener una versión de escritorio. En la primavera de 2026 sí lo estaba, así que construí la app para Mac en un par de fines de semana y la lancé la noche del 11 de mayo de 2026: Mole for Mac, dos Macs, actualizaciones de por vida, a nueve dólares de early bird como agradecimiento a los usuarios que habían estado probando Mole todo el tiempo.
La app no podía ser simplemente un botón que ejecutara el script. Una herramienta gráfica tiene que separar descubrimiento y borrado, sobrevivir a la cancelación, explicar permisos, mantener la ventana estable mientras terminan los escaneos, y mostrar un plan recuperable a alguien que nunca ha leído un comando de shell. El CLI le enseñó a la app qué buscar; la app forzó a que el trabajo se volviera visible e interrumpible.
Los planetas
La app podría haber sido una utilidad de la barra de menús con un botón de limpiar, y se habría vendido bien. Pero ya hay demasiado software basura generado por IA en el mundo. Si iba a gastar los tokens, quería que se convirtieran en algo cómodo de tener delante, no en otra cosa que contamine tu timeline.
De niño me encantaba mirar los planetas, y hace diez años, justo después de aprender frontend, lo primero que me urgía aprender era WebGL para poder dibujarlos. Construir esta app por fin unió las dos cosas: cada una de las cinco funciones recibió un planeta cuyo carácter encaja con el trabajo que hace.
- Clean es la Tierra: la lluvia de montaña lava el polvo viejo.
- Software es Marte: las arenas rojas entierran rastros antiguos.
- Optimize es Mercurio: el más cercano al sol, el más veloz en el vuelo.
- Analyze es Júpiter: el ojo más amplio de todos.
- Status es el Sol: la luz que nunca duerme.
Las texturas vienen de imágenes astronómicas; la Tierra se basa en el Blue Marble de la NASA. Las cambié más de diez veces antes de que cada planeta se viera bien. La dirección de giro y el ritmo relativo siguen a los cuerpos reales, y también el pequeño efecto de vuelo cuando termina una operación. En sentido estricto nada de esto tiene mucho que ver con un topo. Es más la sensación de una pequeña criatura excavadora que levanta la vista desde su túnel hacia un cielo muy grande, y se queda en silencio.
La noche del lanzamiento
Publiqué hacia las diez de la noche. Amigos lo retuitearon, y entonces el teléfono empezó a vibrar con una notificación de compra más o menos cada diez segundos, desde Francia, Alemania, monedas que nunca había visto en un payout. El iPhone se calentó y agotó la batería solo mostrándolas. Apagué las notificaciones de correo para dormir un poco, y las compras seguían llegando por la mañana. Bastante gente, resulta, compró la app solo porque el CLI los había tratado bien.
La app para Mac todavía tiene bastantes huecos, y agradezco que tanta gente haya pagado por un juguete bonito y sea paciente mientras los voy llenando. Me gusta dejar que las cosas maduren a su ritmo en lugar de correr detrás de resultados. Mole tardó años en pasar de un script privado a un CLI open source y a una app de pago, y la mejor parte de todo el arco ha sido la larga iteración y las amistades con desarrolladores de todo el mundo. Esa es la verdadera riqueza.