Un tool CLI interattivo veloce che scansiona il tuo filesystem alla ricerca di cartelle di dipendenze inutilizzate (node_modules, vendor, .venv, ecc.) e ti permette di eliminarle in blocco per recuperare spazio su disco.
Scritto in Go con scansione parallela e interfaccia terminale Bubbletea.
- Rilevamento intelligente — segnala solo i progetti il cui file di configurazione (
package.json,composer.json, ecc.) non è stato modificato da N giorni - Scansione parallela — usa un pool limitato di goroutine per scansionare filesystem anche molto grandi
- TUI interattiva — naviga i risultati, seleziona/deseleziona con la barra spaziatrice, vedi lo spazio recuperabile in tempo reale
- Wizard di primo avvio — scegli quali tipi di dipendenze monitorare al primo utilizzo
- Modalità dry-run — simula l'eliminazione senza rimuovere nulla
- Statistiche cumulative — tiene traccia di quanto spazio hai liberato nel tempo
- Configurabile — soglia giorni, percorsi esclusi e selezione target salvati in
~/.corgab.yaml - Sicuro — salta automaticamente le directory nascoste (
.git, ecc.) e i percorsi di sistema (/System,/Library, ecc.)
| Ecosistema | Cartella Dipendenze | File di Configurazione |
|---|---|---|
| Node.js | node_modules |
package.json |
| PHP | vendor |
composer.json |
| Python | .venv / venv |
requirements.txt |
| Rust | target |
Cargo.toml |
| Java Maven | target |
pom.xml |
| Go | vendor |
go.mod |
| Dart/Flutter | .dart_tool |
pubspec.yaml |
| CocoaPods | Pods |
Podfile |
| Gradle | build |
build.gradle |
I target sono opt-in: scegli quali monitorare durante il wizard di configurazione.
- Go 1.22+ — installa con
brew install go(macOS) oppure visita go.dev/dl - Dopo l'installazione di Go, aggiungi
~/go/binal tuo PATH se non è già presente:echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
git clone https://github.com/corgab/cleaner.git
cd cleaner
go install ./cmd/corgabOra il comando corgab è disponibile globalmente da qualsiasi directory.
go build -o corgab ./cmd/corgab
./corgab# Scansiona la home directory con le impostazioni predefinite (soglia 30 giorni)
corgabAl primo avvio, il wizard ti chiederà quali tipi di dipendenze monitorare.
| Flag | Default | Descrizione |
|---|---|---|
--path <dir> |
~ |
Directory radice da scansionare |
--days <n> |
30 |
Mostra progetti inattivi da più di N giorni |
--dry-run |
false |
Simula l'eliminazione senza rimuovere nulla |
--stats |
false |
Mostra le statistiche cumulative ed esci |
--reset-config |
false |
Riesegui il wizard di configurazione |
# Scansiona solo la cartella Dev
corgab --path ~/Dev
# Mostra tutto ciò che è inattivo da più di 7 giorni
corgab --days 7
# Simula senza eliminare
corgab --dry-run
# Controlla quanto spazio hai liberato nel tempo
corgab --stats
# Riconfigura i target da monitorare
corgab --reset-configWizard di Configurazione:
| Tasto | Azione |
|---|---|
Spazio |
Toggle selezione |
a |
Toggle tutti |
j / k |
Naviga giù/su |
Enter |
Conferma |
q / Esc |
Esci |
Vista Principale:
| Tasto | Azione |
|---|---|
Spazio |
Toggle selezione |
a |
Seleziona tutti |
n |
Deseleziona tutti |
j / k |
Naviga giù/su |
Enter |
Procedi all'eliminazione |
q / Esc |
Esci |
Conferma:
| Tasto | Azione |
|---|---|
y |
Conferma |
n |
Torna indietro |
Corgab salva la sua configurazione in ~/.corgab.yaml:
days: 30
targets:
- node_modules
- vendor
excluded_paths:
- /Users/me/progetto-importante- days — soglia di inattività predefinita (sovrascrivibile con
--days) - targets — nomi delle cartelle di dipendenze da cercare (impostati durante il wizard)
- excluded_paths — directory da saltare completamente durante la scansione
Modifica il file direttamente oppure usa --reset-config per rieseguire il wizard.
- Percorre il filesystem dalla directory radice (default
~) - Salta directory nascoste, percorsi di sistema e percorsi esclusi
- Trova directory che corrispondono ai target selezionati (
node_modules,vendor, ecc.) - Verifica il file di configurazione nella directory genitore (
package.json,composer.json, ecc.) - Filtra — mostra solo i progetti il cui file di configurazione è più vecchio della soglia
- Disambigua nomi condivisi (es.
vendor→ verificacomposer.jsonvsgo.mod) - Calcola le dimensioni in parallelo usando un pool limitato di goroutine
- Mostra i risultati in una TUI interattiva per selezione ed eliminazione
Viene eliminata solo la cartella di dipendenze (es. node_modules/), mai il progetto stesso.
Corgab tiene traccia delle statistiche cumulative in ~/.corgab_stats.json:
$ corgab --stats
corgab cleaner has freed 14.3 GB in 47 operations since 15 Jan 2026cleaner/
├── cmd/corgab/ # Punto di ingresso, parsing dei flag
├── internal/
│ ├── config/ # Caricamento/salvataggio config YAML
│ ├── scanner/ # Scanner parallelo del filesystem
│ ├── filter/ # Rilevamento inattività (staleness)
│ ├── cleaner/ # Eliminazione directory con supporto dry-run
│ ├── stats/ # Statistiche cumulative (JSON)
│ ├── fsutil/ # Utilità condivise (DirSize, FormatBytes)
│ └── tui/ # TUI Bubbletea (wizard + vista principale)
├── pkg/
│ └── targets/ # Registro dei target
├── go.mod
└── go.sum
go test ./... -vMIT