Pulizia e manutenzione dell’IA in Mole
Durante queste vacanze volevo aggiungere a Mole una funzione utile: pulire cache di IA, vecchie sessioni e worktree che non servono più, e disinstallare strumenti provati tanto tempo fa e poi lasciati inutilizzati.
Mentre testavo i residui di centinaia di app Mac dopo la disinstallazione, erano già arrivate molte richieste sulla pulizia dei dati dell’IA. Allora consideravo utile buona parte di quei “rifiuti”. Le conversazioni di AI Coding sono per me un patrimonio importante, perciò Mole si occupava soprattutto di cache vere e vecchie versioni.
Continuando a usare l’IA, però, anche sul mio Mac si sono accumulati file generati, sessioni e worktree ormai poco utili. Così mi sono messo al lavoro. Un utente chiedeva anche come pulire un opencode.db arrivato da solo a 62 GB. Questa volta ho installato app desktop e strumenti da riga di comando, effettuato l’accesso e usato davvero ciascuno prima di cercare ciò che lasciava.
Come li ho testati
A differenza dell’altra volta, quando le app venivano solo installate e rimosse, stavolta ho fatto l’accesso agli strumenti che potevo usare e li ho provati nei miei progetti: fare domande, avviare agenti, creare un indice del codice, impostare un’attività pianificata. Molti dati compaiono solo con l’uso reale, quindi un’app installata ma mai aperta ne nasconde la maggior parte. Per ogni strumento un’IA confrontava il Mac prima e dopo, misurava cosa scriveva nella cartella Inizio, in ~/Library, in /usr/local/bin e nella configurazione della shell, e lo annotava in un registro. Poi guardavo quanti processi e quanta memoria occupava nella pagina Stato di Mole, lo disinstallavo con Mole e cercavo per nome in tutta la cartella Inizio ciò che Mole non aveva elencato. Quello che mancava entrava nel codice la sera stessa, seguito da un nuovo test.
Sul fronte desktop ho testato 13 app: Devin, OpenCode, Trae, Trae CN, TRAE SOLO CN, Kiro, Qoder, QoderWork, Qoder CN, Lingma, CodeBuddy CN, WorkBuddy e Doubao Work. Dodici le ho usate davvero; Lingma dopo l’accesso non aveva quota, quindi ho misurato solo i file che scriveva. Da riga di comando ho installato e avviato Amp, opencode, Kimi CLI, Kimi Code, Factory Droid, Copilot CLI, Gemini CLI, Qwen Code e iFlow, che insieme a Claude Code, Codex, Grok e Cursor Agent, che erano già sul mio Mac, fanno 13. Seguendo l’elenco supportato da CC Switch, ho misurato anche cosa lasciano OpenClaw, Hermes e Pi dopo la rimozione. Amp si è distinto per la cura, con un carattere tutto suo. Qoder CN è stato probabilmente il migliore tra i prodotti di IA cinesi che avevo provato quel giorno, pulito e chiaro nel complesso. Alcuni non si sono potuti usare: durante questo test non sono riuscito ad accedere a Gemini CLI con il mio account Google personale, e Qwen Code e iFlow richiedono entrambi un endpoint e una chiave propri.
Cosa scrivono lo vedi solo usandoli
La memoria era la parte più evidente. Aperte insieme, le 13 app desktop usavano circa 23 GB, e CodeBuddy CN da solo faceva girare 41 processi per 4,49 GB. Quasi tutte sono app VS Code o Electron, in cui una finestra nasconde una catena di helper, ed è per questo che la pagina Stato di Mole dà a ogni app una sola riga che somma tutti i suoi processi figli. Guardando un semplice elenco di processi, è difficile capire chi stia davvero usando la memoria.
Le piccole modifiche che apportano al sistema mi hanno sorpreso di più. Devin, CodeBuddy, Kiro e Kimi Code aggiungono a ~/.zshrc righe di PATH o di integrazione con la shell, e al primo avvio Kiro, Trae e Trae CN mettono in /usr/local/bin un collegamento di comando di proprietà di root, che non punta più a nulla quando l’app non c’è più. WorkBuddy ha messo un python3.12 in ~/.local/bin, così da quel momento digitare python3.12 nel Terminale esegue la sua copia, e ha installato anche un Python uv da 127 MB; lì per lì ho detto che era più invadente di quanto mi aspettassi. Il più curioso è stato Kimi CLI: l’ho avviato una volta, mi ha detto che non era più mantenuto e poi, senza chiedere, ha scaricato e installato il nuovo Kimi Code, modificato .zshrc e rinominato il vecchio comando in kimi-legacy.
Quanto allo spazio, il primo uso della modalità Work di TRAE SOLO scarica circa 1 GB di strumenti che una volta decompressi occupano 3,1 GB, un pacchetto integrato di LibreOffice, FFmpeg e OpenJDK, e sei strumenti desktop che avevano svolto solo una o due attività ciascuno hanno scritto in tutto 5,2 GB di dati. Il mio ~/.codex, che uso ogni giorno, è già di 24 GB, di cui 17 GB di sessioni, e dei 14 GB dell’app desktop di Claude, 12 GB sono la macchina virtuale Linux usata da Cowork. Il database di opencode registra eventi, quindi una sola domanda scrive più del triplo della dimensione del messaggio stesso, ed eliminare una sessione non riduce il file: probabilmente è così che qualcuno è arrivato a 62 GB.
Le skill erano un’altra trappola. Molti installer di skill scrivono una cartella skills/ nella directory di ogni agente, che tu abbia quell’agente o no, e così ~/.qwen, ~/.iflow e ~/.factory esistevano sul mio Mac anche se non avevo mai usato Qwen Code, iFlow o Droid. La prima versione di Mole li contava persino come strumenti da 2,4 MB e per poco non ha trattato le skill che avevo installato come residui.
Qualcosa resta anche dopo la disinstallazione
Dopo che il primo giro aveva rimosso 14 app, una nuova ricerca trovava ancora più di una decina di cartelle nascoste che Mole non aveva elencato, come ~/.kiro, ~/.qoder, ~/.qodersec, ~/.lingma e ~/.codebuddy, oltre al file del token di accesso che Kiro tiene in ~/.aws. Non stanno sotto ~/Library e i loro nomi non corrispondono sempre all’app, quindi l’unico modo per trovarle era procedere un’app alla volta. Alcune sono condivise tra prodotti: Trae CN e TRAE SOLO CN condividono ~/.trae-cn, Qoder e QoderWork condividono ~/.qoder, perciò rimuovendone uno non va elencata una cartella che l’altro usa ancora. Testando la versione internazionale di Trae è emerso anche che si attribuiva le cartelle di Trae CN, con le cache selezionate per impostazione predefinita; dopo la correzione il suo elenco è sceso da 33 righe a 14.
L’altra sorpresa sono stati i processi. Ricontrollando la mattina dopo, ~/.kimi-code e ~/.factory erano ricomparse dopo essere state eliminate, perché le sessioni kimi e droid lasciate aperte nel Terminale la sera prima erano ancora vive: i loro file di programma erano già nel Cestino e i processi continuavano a scrivere log in quelle cartelle. Poi ho trovato ancora attive anche sessioni di gemini, qwen, iflow e amp. Gli strumenti da riga di comando non hanno una finestra e chiudere una scheda del Terminale non sempre li termina, quindi conviene verificare che uno strumento non sia in esecuzione prima di disinstallarlo.
I test mi hanno anche ricordato la misura di Claude, Codex e Cursor, i tre che uso spesso. Altri prodotti mi hanno infastidito: alcuni installer scrivevano negli appunti durante il download per tracciare il canale d’installazione e raccogliere statistiche, e mi sembrava eccessivo. Altre app mostravano subito finestre che invitavano a partecipare a promozioni per ricevere token. A volte bisognava sopportare parecchio per usarle.
Qoder è stata una bella sorpresa. Misurato, curato nell’aspetto e senza comportamenti invadenti: il prodotto mi ha colpito. Spero di vedere più software cinesi così. Continuate così.
Puoi dare prima un’occhiata da solo
Nessuno di questi controlli richiede Mole; basta il Terminale, e i comandi qui sotto leggono soltanto, non modificano nulla.
Per prima cosa, controlla se qualche strumento di IA ha aggiunto righe alla configurazione della shell:
grep -nE "codeium|codebuddy|kiro|kimi|lmstudio|\.local/bin" ~/.zshrc ~/.bashrc ~/.zprofile 2>/dev/null
Ogni riga inizia con il nome del file e il numero di riga. Se lo strumento a cui si riferisce una riga non c’è più, puoi eliminarla con un editor di testo; prima fai una copia del file, e dopo apri una nuova finestra del Terminale per verificare che tutto funzioni ancora.
Poi cerca in /usr/local/bin i comandi che puntano all’interno di un’app e i collegamenti che non funzionano più:
ls -l /usr/local/bin | grep "\.app/"
find /usr/local/bin -maxdepth 1 -type l ! -exec test -e {} \; -print
Il primo elenca i comandi che puntano all’interno di un’app, il secondo i collegamenti la cui destinazione è sparita. Per lo più li lasciano app già rimosse; appartengono a root, quindi per eliminarli serve la password di amministratore.
Verifica se un agente da riga di comando già rimosso è ancora in esecuzione:
ps -axo pid,lstart,command | grep -E "kimi|droid|gemini|qwen|iflow|amp|opencode" | grep -v grep
Questa è una ricerca testuale per nome. Controlla comando completo e ID del processo per confermare che sia lo strumento IA: amp può comparire anche in parole estranee. Poi esci dal Terminale originale, oppure usa kill con quell’ID se non trovi la finestra.
Infine, misura quanto occupano questi strumenti:
du -sh ~/.codex ~/.claude ~/.grok ~/.gemini ~/.cursor ~/.local/share/opencode 2>/dev/null
Queste cartelle contengono la cronologia delle tue sessioni, quindi prima di eliminare qualcosa decidi se vorrai tornarci: una conversazione con un’IA eliminata senza conservarne una copia non si può recuperare.
Capire cosa contiene una cartella grande
La cartella di uno strumento IA può contenere cache ricreabili, modelli scaricati, conversazioni, progetti e configurazione condivisa. Un nome che sembra una cache non rende ogni file eliminabile. A mano, guarda prima i dati ricreabili, poi titoli, date e backup del tuo lavoro. Per un worktree controlla sia le modifiche non committate sia che i commit siano conservati in un ramo da tenere.
Se opencode.db resta grande dopo aver eliminato sessioni, non è necessariamente un fallimento. SQLite spiega che le pagine dei record eliminati restano di solito disponibili per riuso senza ridurre il file. Compattare recupera quelle pagine vuote, non cancella un altro giro di conversazioni. Decidi prima le sessioni da rimuovere, poi fai manutenzione al database, senza fondere le due cose in una grande eliminazione.
Come se ne occupa ora Mole
La pagina IA è attualmente in Preview e deve ancora essere testata prima della prossima versione. Ci si arriva da una Luna lontana nella pagina Pulizia, che compare solo quando vengono trovati dati di strumenti di IA e che si può nascondere nelle Impostazioni se non la vuoi. All’interno, Mole passa in rassegna gli strumenti uno per uno e divide ciò che trova in tre fasce, secondo quanto potresti pentirti di rimuoverlo: cache e versioni precedenti si ricreano da sole e partono selezionate; sessioni e worktree non si ricreano da soli, quindi sei tu a confermarle; gli strumenti inutilizzati da tempo e la manutenzione vengono per ultimi e anche loro non sono selezionati.
Nella fascia delle sessioni, le vecchie sessioni di Codex oltre il periodo di conservazione si possono filtrare a 15, 30, 90 o 120 giorni, e una volta espanse ognuna mostra titolo e data e si può deselezionare da sola. Mole copia prima il file di sessione nel Cestino e poi richiama il comando di eliminazione di Codex stesso, così l’indice di Codex resta coerente. Per Claude Code elenca solo le sessioni la cui cartella di progetto non esiste più, e un worktree concluso compare solo quando git può dimostrare che non contiene modifiche non committate, con una nota se il suo lavoro è già stato unito al ramo principale.
La fascia degli strumenti inutilizzati è quella che ha richiesto più tempo in questo giro. Mole cerca gli strumenti di IA da riga di comando nelle posizioni fisse usate da npm, pipx, uv, dagli installer ufficiali e da Homebrew, elenca solo quelli inutilizzati da 30 giorni e non in esecuzione, e rimuove insieme il programma, i collegamenti di comando che puntano a esso e le sue impostazioni, sessioni e credenziali di accesso. I dati che un altro prodotto usa ancora restano: anche Antigravity tiene elementi in ~/.gemini, e l’app desktop di opencode condivide un database delle sessioni con la sua riga di comando. Con più di quattro strumenti inutilizzati, i tre più grandi hanno ciascuno la propria riga e gli altri vengono raccolti in una sola. Claude Code e Codex non sono nell’elenco, perché le loro cartelle contengono anche lo stato delle app desktop.
Anche gli strumenti da riga di comando installati nelle cartelle di sistema con sudo npm compaiono nell’elenco, e rimuoverli chiede una sola volta la password di amministratore. Per opencode.db, il database di opencode che continua a crescere, quando le sessioni eliminate vi hanno lasciato vuoto più di un decimo del file e il file supera i 200 MB, Mole propone di compattarlo in questa fascia: nessuna sessione viene rimossa, solo lo spazio libero torna al disco, e prima bisogna chiudere opencode.
Sul fronte della disinstallazione, le cartelle nascoste di cui sopra ora vengono elencate come righe da confermare, non selezionate per impostazione predefinita, e una cartella condivisa da più prodotti non viene elencata finché un altro di essi è ancora installato. Anche i collegamenti di comando di proprietà di root in /usr/local/bin vengono elencati durante la disinstallazione e finiscono nel Cestino tramite l’helper di amministratore di Mole. I file ordinari nel Cestino si possono recuperare finché restano lì. I programmi installati con Homebrew usano ancora il suo comando di disinstallazione. Le sessioni in un database richiedono il file esportato e le istruzioni di ripristino: non tutto si recupera trascinando un elemento dal Cestino, e la copia di recupero deve ancora esistere.
Queste modifiche arriveranno con la prossima versione di Mole.
Cosa manca ancora
Alcune cose non sono ancora fatte. Mole non modificherà la configurazione della shell per togliere le righe aggiunte dagli strumenti di IA; l’idea è invece di indicare quelle righe nei dettagli della disinstallazione. I worktree di strumenti come Cursor e Conductor non sono inclusi, perché sul mio Mac non ho ancora dati reali su di loro. Al momento di questo test, le vecchie sessioni di opencode e Devin non si potevano pulire per anzianità in Mole. Non ho testato MiniMax questa volta, quindi non è ancora supportato.
Aggiornamento: le vecchie sessioni OpenCode e Devin
Il 1 ottobre ho aggiunto al codice il supporto per le vecchie sessioni OpenCode e Devin, filtrate per periodo di conservazione o dopo aver verificato che le cartelle di lavoro non esistano più. Dischi offline e cartelle illeggibili non contano come eliminati. Mole salva prima una copia di recupero, poi usa il percorso di eliminazione dello strumento e verifica il risultato. OpenCode conserva il JSON esportato; Devin conserva la sessione scelta e i record collegati, con istruzioni di ripristino. Uno strumento in esecuzione o un controllo fallito impediscono la pulizia. Era lavoro per la Preview successiva, non presente nel download pubblicato allora. Non ho misurato lo spazio recuperabile sul database reale dell’utente.
Considerando anche i test precedenti di oltre 700 app, ho visto quanti prodotti non rispettano alcuni principi di base dello sviluppo software. Non sono sempre professionali e puliti come ci si aspetta. Questo mi fa voler mantenere Mole semplice, approfondirne le capacità, non prendere dati inutili e non caricare mai file locali o contenuti delle conversazioni. Non aggiungo nemmeno statistiche d’uso. Vorrei continuare a lavorare con questa cura anche nel lungo periodo.
Se sul tuo Mac ci sono strumenti di IA di cui vorresti che Mole si occupasse, o un tipo di pulizia che ti pesa più degli altri, dimmelo nella discussione. Tutte le app testate finora sono nell’elenco delle app testate, e se preferisci fare pulizia a mano, la guida alla pulizia degli strumenti AI per programmare spiega come.
Le inserirò nei test e aggiungerò ciò che risulta adatto alla pulizia. Sarà probabilmente un lavoro da mantenere a lungo.