Ce qui est analysé
lu-cleaner exécute huit scanners. Sept d'entre eux contiennent de la logique (état git, versions utilisées, état des simulateurs…) ; le huitième, catalog, évalue une liste de chemins fixes. Cette page liste tous les types d'éléments qu'ils produisent. Utilisez un type, ou un identifiant de scanner, avec --kind/-k :
lu-cleaner scan -k node_modules,ios-pods # deux types d'artefactslu-cleaner scan -k apple # tout ce qu'a trouvé le scanner applelu-cleaner clean -y -k xcode-derived-data -n # simulation sur tous les dossiers DerivedDataAvec clean --yes, un identifiant de scanner qui couvre plusieurs catégories (apple, ai, system, catalog) ne constitue pas à lui seul un filtre restrictif : ajoutez -c ou --smart, ou utilisez des types d'éléments.
Lire les tableaux
Section intitulée « Lire les tableaux »- Risque : safe, moderate, caution ou never. Plusieurs types changent de risque selon ce qu'observe le scanner ; la condition est indiquée.
- Méthode :
delete,trash,command(la commande est indiquée),worktreeoureport. Voir méthodes de nettoyage. - Recommandé décrit le comportement effectif de la sélection intelligente :
- Oui : dès que l'élément ne porte aucun avertissement (pour les éléments safe, à partir de 1 Mio) ;
- Si inactif : une fois inutilisé depuis
stale_after(14 jours par défaut) ; - Non : jamais recommandé, soit parce que l'élément est caution, soit parce que le scanner y met son veto (voir vetos des scanners) ;
- une condition : la règle propre au scanner.
Deux règles s'appliquent partout et ne sont pas répétées : un élément qui porte un avertissement n'est jamais recommandé (application en cours d'exécution, processus à l'intérieur, version la plus récente conservée…), et les artefacts d'un projet actif dans les dernières 24 heures ne sont jamais recommandés. Les détails sont dans Niveaux de risque et sélection intelligente. clean --yes retient aussi tout élément qui porte un avertissement, sauf si vous passez --risk caution.
« Version la plus récente conservée » suit le réglage keep_latest (1 par défaut) : il fixe combien des versions les plus récentes sont tenues à l'écart de la sélection intelligente pour les builds des outils d'IA, les paquets du SDK Android et les versions d'Android Studio, les IDE JetBrains, les versions de Node (par gestionnaire de versions), les runtimes de simulateur (par plateforme) et les entrées du catalogue qui conservent leurs correspondances les plus récentes.
Tout ce dont l'emplacement réel se trouve sur un autre volume devient un élément en rapport seul, avec l'avertissement on external volume — no internal gain, quel que soit son type. Les totaux et les plans comptent ce que la suppression libère réellement : des données liées physiquement depuis l'extérieur de l'élément ne libèrent rien, et un clone APFS ne libère que ses blocs privés, sauf si toutes les copies se trouvent dans l'élément. Quand c'est moins que la taille, la taille affiche un * et le JSON contient reclaim.
worktrees
Section intitulée « worktrees »Trouve les worktrees liés git, les checkouts que les agents d'IA créent par dizaines, et supprime des worktrees entiers avec git worktree remove.
Découverte, combinée et dédoublonnée par inode :
- les répertoires contenant un fichier
.gitsous les racines de worktrees (~/.codex/worktrees,~/.cursor/worktrees,~/conductor/workspaces,~/.claude/worktrees,~/.claude-worktrees,~/.worktrees,~/.superset/worktrees,~/Library/Application Support/Claude/worktrees, plusworktree_roots), sur 4 niveaux de profondeur ; - les dépôts principaux et les worktrees isolés sous vos racines de projets, jusqu'à
max_depth; git worktree list --porcelaindans chaque dépôt principal trouvé, ce qui attrape les worktrees situés n'importe où sur le disque ;- les dossiers conventionnels
<repo>/.claude/worktrees,<repo>/.worktrees,<repo>/worktreeset<repo>-worktrees.
L'outil créateur est reconnu d'après l'emplacement, le codex-thread.json de Codex et le nommage des branches (claude/… pour Claude desktop, worktree-… pour Claude Code). Le type d'élément est <tool>-worktree.
La dernière activité provient de git (date du commit HEAD, index, reflog, fichiers modifiés) et des outils eux-mêmes (threads Codex, sessions Claude desktop), jamais de la date de modification du dossier.
Les sous-modules et leurs worktrees sont laissés de côté. Un worktree n'est orphelin que si ses données git n'existent plus, de façon vérifiée (le dossier parent est lisible) ; quand elles ne peuvent pas être lues (permissions, protection de la vie privée de macOS, volume non monté), il est signalé comme illisible, jamais supprimé.
| Type | Ce que c'est | Risque | Méthode | Recommandé |
|---|---|---|---|---|
codex-worktree, cursor-worktree, conductor-worktree, claude-worktree, claude-desktop-worktree, superset-worktree, claude-squad-worktree, vibe-kanban-worktree, multica-worktree, manual-worktree |
Un worktree lié, avec sa taille décomposée en checkout et artefacts (node_modules, ios/Pods, builds natifs…) |
moderate ; caution s'il est modifié, verrouillé, orphelin, déplacé, détaché avec des commits non poussés, illisible pour git, avec des fichiers secrets ignorés introuvables ailleurs, contenant un autre dépôt ou worktree, ouvert dans Cursor ou VS Code, utilisé par un processus, ou lié à un thread Codex, une session Claude desktop ou un workspace Conductor actif | worktree ; delete pour les orphelins, uniquement avec --force ; report hors de votre dossier personnel et de votre dossier temporaire utilisateur (par exemple /tmp), sur un volume externe, illisible, quand son dépôt principal est sur un volume non monté ou a été déplacé, ou pour un orphelin qui contient un autre dépôt |
Propre, poussé et inactif depuis 7 jours, ou fusionné dans la branche par défaut et inactif depuis 1 jour ; jamais un orphelin |
worktree-prune |
Métadonnées git de worktrees dont le dossier n'existe plus, de façon vérifiée | safe | command : git -C <repo> worktree prune (ou suppression des seules entrées vérifiées quand d'autres appartiennent à un checkout non monté, illisible ou déplacé) |
Oui |
Statut (colonne STATUS de lu-cleaner worktrees --list, meta.status en JSON) :
| Statut | Signification |
|---|---|
clean |
Aucune modification non commitée, rien de non poussé |
merged |
Propre, et tous ses commits sont dans la branche par défaut |
unpushed |
Des commits n'existent sur aucun remote (en avance sur l'upstream, ou jamais poussés), ou git n'a pas pu le déterminer. La branche et ses commits sont conservés lors de la suppression |
dirty |
Modifications non commitées, sur des fichiers suivis ou non suivis |
locked |
git worktree lock a été utilisé |
orphan |
Git ne suit plus le dossier : c'est une simple copie de fichiers |
unknown |
Git n'a pas pu être interrogé, les données git ou le dépôt principal sont illisibles, ou le dépôt principal est sur un volume non monté ou a été déplacé |
Les avertissements signalent aussi les fichiers secrets ou personnels ignorés qui seraient perdus (.env*, .npmrc, keystores, clés de signature, surcharges *.local.*…), les dépôts imbriqués, et un worktree que git enregistre à un autre emplacement (moved: … run git -C <repo> worktree repair). Le worktree qui contient votre répertoire courant ne peut pas être sélectionné. La suppression conserve la branche ; sans --force, elle est refusée pour un worktree verrouillé, des modifications non commitées ou non suivies, des commits présents sur aucune branche, ou un worktree ou dépôt imbriqué, et --dry-run signale les mêmes refus. Voir Nettoyer les worktrees des agents IA.
artifacts
Section intitulée « artifacts »Le scanner à la npkill, qui connaît React Native. Il parcourt vos racines de projets, les racines de worktrees et quelques dossiers où des outils conservent des copies de projets (~/conductor/archived-contexts, ~/Documents/Codex, ~/.gemini/antigravity/scratch, auxquels seules les règles de dépendances et de build s'appliquent), jusqu'à max_depth niveaux. Les racines indiquées en ligne de commande (lu-cleaner artifacts <root>, --root) sont alors les seuls dossiers parcourus : ni racines de worktrees, ni dossiers supplémentaires, et / est refusé. Il ne descend jamais dans les liens symboliques ni dans d'autres volumes, et ne propose jamais le checkout lui-même.
Règles de correspondance :
- Un dossier ne correspond que si un marqueur existe à côté (
package.jsonà côté denode_modules). Les marqueurs sont revérifiés juste avant la suppression. - Un dossier qui contient une entrée
.gitde n'importe quel type (dépôt, worktree lié, sous-module) ou un dépôt bare est un checkout, jamais un artefact, pas plus qu'un dossier qui contient un worktree enregistré. Une sortie générique qui contient un checkout est en rapport seul. Juste avant la suppression, une cible devenue un checkout depuis l'analyse est laissée intacte. - Les noms génériques (
build,dist,out,target,coverage,vendor/bundle,.yarn/*…) peuvent être du code source. Dans un arbre de travail git, ils doivent être ignorés par git, ou être non suivis avec un contenu de build sans ambiguïté (produits de build Xcode,CMakeCache.txt,CACHEDIR.TAG…). Hors de git, ils doivent avoir ce contenu. Une sortie JS (build,dist,out,web-build) hors de git dont le contenu n'est qu'un indice faible (simples fichiers.js,index.html, ressources), sans rien de propre à un générateur (source maps, noms de bundles hachés,asset-manifest.json,_next…), est caution et jamais recommandée, avec l'avertissementnot under git: nothing proves it is build output — check before deleting. - Dans un arbre de travail git, un dossier qui contient des fichiers suivis n'est jamais proposé.
- Un candidat qui échoue à la vérification est affiché en rapport seul avec
not proposed: <reason>.
La dernière utilisation est l'activité du projet, car les builds et les installations touchent l'artefact lui-même en permanence : les fichiers de premier niveau du projet et du paquet (les dates des dossiers sont ignorées), l'index git, HEAD et le reflog, et les fichiers non commités ou non suivis n'importe où dans l'arbre de travail. Hors de git, c'est le fichier source le plus récent d'un parcours limité qui compte.
Recommandé : les artefacts safe une fois leur projet inactif depuis 24 heures ; les artefacts moderate une fois le projet inactif depuis stale_after. Jamais tant qu'un processus tourne dans le projet (in use: process … runs inside the project (dev server, agent, shell?)), tant que l'outil qui le protège tourne (xcodebuild is running — quit it before cleaning), ni quand le dossier contient des fichiers .apk, .aab ou .ipa générés.
JavaScript et React Native
Section intitulée « JavaScript et React Native »| Type | Dossier | Requis à côté | Risque |
|---|---|---|---|
node_modules |
node_modules |
package.json |
moderate |
ios-pods |
Pods |
Podfile ou Podfile.lock |
moderate |
ios-build (xcode-build hors de ios/ et macos/) |
build |
*.xcodeproj, *.xcworkspace ou Podfile, plus un contenu de build Xcode |
safe ; moderate quand Podfile.lock référence le codegen React Native dans build/generated/ios |
android-build (gradle-build hors de android/) |
build |
build.gradle(.kts), plus un contenu de sortie Gradle |
safe |
android-gradle (gradle-cache) |
.gradle |
Fichiers de projet Gradle | safe |
android-kotlin (gradle-kotlin) |
.kotlin |
Fichiers de projet Gradle | safe |
android-cxx |
.cxx, .externalNativeBuild |
CMakeLists.txt ou build.gradle(.kts) |
safe |
expo |
.expo |
package.json, app.json ou app.config.* |
safe |
metro-cache |
.metro-cache, .metro |
package.json ou metro.config.* |
safe |
js-build, dist, web-build, out |
build, dist, web-build, out |
package.json (ou configuration Next.js / electron-vite pour out), plus un contenu de sortie de build |
safe ; js-build, dist et out deviennent moderate quand package.json (main, exports, types) pointe dedans ; caution hors de git avec seulement des indices faibles |
next, open-next, nuxt, nitro-output, svelte-kit, astro, docusaurus, react-router, vinxi, tanstack |
.next, .open-next, .nuxt, .output, .svelte-kit, .astro, .docusaurus, .react-router, .vinxi, .tanstack |
package.json ou la configuration du framework |
safe |
turbo, parcel-cache, vite-cache, swc-cache, wireit, rollup-cache, nx-cache, angular-cache, js-cache |
.turbo, .parcel-cache, .vite, .swc, .wireit, .rollup.cache ou .rpt2_cache, .nx/cache, .angular/cache, .cache |
package.json ou la configuration de l'outil |
safe |
vercel-output, netlify-cache, netlify-functions-serve, wrangler-tmp |
.vercel/output, .netlify/cache, .netlify/functions-serve, .wrangler/tmp (les liens de site et les données locales sont conservés) |
package.json ou la configuration de l'outil |
safe |
storybook-static, coverage, nyc-output |
storybook-static, coverage (avec un rapport de couverture à l'intérieur), .nyc_output |
package.json (ou un fichier de projet Python pour coverage) |
safe |
playwright-report |
playwright-report, test-results, blob-report |
playwright.config.* ou package.json |
moderate |
pnpm-store |
.pnpm-store (un store-dir à l'intérieur du dépôt) |
Fichiers de projet pnpm ou npm | moderate |
yarn-cache |
.yarn/cache |
.yarnrc.yml |
moderate ; recommandé immédiatement quand enableGlobalCache: true en fait un reste inutile |
yarn-unplugged |
.yarn/unplugged |
.yarnrc.yml |
moderate |
| Type | Dossier | Requis à côté | Risque |
|---|---|---|---|
project-derived-data |
DerivedData, DerivedData-*, .derived-data*, derived-data, derivedData |
Projet Xcode, Podfile ou Package.swift, plus un contenu DerivedData |
safe |
swiftpm-build |
.build |
Package.swift |
safe |
carthage-build |
Carthage/Build |
Cartfile ou Cartfile.resolved |
safe |
ios-pods, ios-build et project-derived-data sont refusés tant que xcodebuild tourne.
Autres langages
Section intitulée « Autres langages »| Type | Dossier | Requis à côté | Risque |
|---|---|---|---|
cmake-build |
build, build-*, build_*, cmake-build-*, out avec CMakeCache.txt à l'intérieur |
CMakeLists.txt |
moderate |
flutter-build, dart-tool |
build, .dart_tool |
pubspec.yaml |
safe |
rust-target |
target |
Cargo.toml |
safe |
maven-target |
target |
pom.xml ou build.sbt |
safe |
python-venv |
.venv, venv avec pyvenv.cfg |
un fichier de projet Python (pyproject.toml, requirements*.txt, uv.lock…) |
moderate |
python-venv |
.venv, venv, env, .env ou tout dossier contenant pyvenv.cfg, sans fichier de dépendances |
aucun | caution |
python-tox |
.tox, .nox |
un fichier de projet Python | safe |
python-cache |
__pycache__, .pytest_cache, .mypy_cache, .ruff_cache, .pytype, .pyre, regroupés par projet |
aucun | safe |
htmlcov |
htmlcov avec un rapport à l'intérieur |
un fichier de projet Python | safe |
ruby-vendor-bundle |
vendor/bundle |
Gemfile |
moderate |
elixir-build, elixir-deps |
_build, deps |
mix.exs |
safe, moderate |
zig-cache, haskell-stack-work, cabal-dist, dotnet-build |
zig-cache, .zig-cache, zig-out, .stack-work, dist-newstyle, bin et obj |
build.zig, stack.yaml, fichiers Cabal, *.csproj |
safe |
Générique
Section intitulée « Générique »| Type | Ce que c'est | Risque | Méthode |
|---|---|---|---|
cachedir-tag |
Tout dossier contenant un CACHEDIR.TAG valide (écrit par cargo, uv, ccache…) |
safe | delete |
extra-artifact |
Un nom de dossier listé dans extra_artifacts |
moderate | delete |
ignored-dir |
Un dossier ignoré par git de 200 Mo ou plus (sans compter les artefacts connus qu'il contient) qu'aucune règle ne reconnaît : caches de QA d'agents, copies de préproduction, enregistrements | caution | delete ; report quand il contient un checkout git ou un worktree |
lu-cleaner artifacts -t <kind> n'accepte que ces types (et les alias pods, pod, cocoapods, node-modules) ; un type inconnu est une erreur d'utilisation.
Xcode et les simulateurs iOS. Les caches Xcode fixes (CocoaPods, SwiftPM, Carthage, journaux CoreSimulator…) sont des entrées du catalogue.
| Type | Ce que c'est | Risque | Méthode | Recommandé |
|---|---|---|---|---|
xcode-derived-data |
Un dossier DerivedData (Xcode en crée un par chemin de workspace, donc un par worktree), y compris dans un emplacement DerivedData personnalisé | safe | delete, refusé tant que Xcode ou xcodebuild tourne |
Oui ; le nom indique (workspace gone) quand son workspace n'existe plus |
xcode-module-cache |
Caches de modules partagés d'un emplacement DerivedData personnalisé | safe | delete |
Oui |
xcode-archive |
Un .xcarchive (binaire et dSYM) ; la plus récente de chaque application porte un avertissement |
caution | trash |
Non |
xcode-device-support |
Symboles de débogage copiés depuis un appareil, par version d'OS | moderate | delete |
Si inactif ; jamais les symboles les plus récents d'une plateforme |
xcode-app |
Un Xcode installé autre que celui qui est sélectionné | caution | report |
Non |
xcode-metal-toolchain |
Le compilateur de shaders Metal que Xcode télécharge séparément | moderate | command : xcodebuild -deleteComponent metalToolchain |
Non |
ios-simulator |
Un appareil de simulateur | moderate ; caution quand des applications y sont installées | command : xcrun simctl delete <udid> ; non sélectionnable quand il est démarré |
Éteint, sans application et inactif ; jamais un appareil qui n'a jamais été démarré |
ios-simulators-unavailable |
Un simulateur que simctl signale comme indisponible |
safe quand son runtime a disparu de façon avérée et qu'il ne contient aucune application ; caution quand il contient des applications, ou peut revenir (runtime encore installé ou présent sur le disque, autre Xcode sélectionné, image du runtime non montée) | command : xcrun simctl delete <udid> pour ce seul appareil |
Quand safe |
ios-simulator-orphan |
Un dossier d'appareil que simctl ne connaît plus (device.plist absent ou cassé) |
moderate | delete |
Inutilisé depuis 7 jours |
ios-simulator-runtime |
Une image disque de runtime de simulateur | moderate ; rapport seul quand il est fourni avec Xcode | command : xcrun simctl runtime delete <id> |
Utilisé par aucun simulateur, pas parmi les keep_latest plus récents de sa plateforme, et un runtime plus récent est installé |
ios-simulator-device-set |
Ensembles d'appareils des aperçus SwiftUI, d'Interface Builder, des tests parallèles et des Playgrounds | safe | command : xcrun simctl --set <dir> delete all |
Oui |
ios-simulator-attachments |
Enregistrements d'écran XCTest laissés dans un simulateur par l'automatisation des tests d'interface | safe | delete |
Quand le simulateur est éteint |
ios-simulator-logs |
Journaux unifiés des simulateurs éteints | safe | delete |
Oui |
ios-simulator-caches |
Caches système des simulateurs inutilisés depuis plus de 2 semaines | moderate | delete |
Si inactif |
ios-simulator-dyld-cache |
Caches dyld appartenant à root, pour un autre build de macOS ou un runtime supprimé | safe | report (la note donne la commande sudo rm) |
Non |
coresimulator-caches |
Caches et fichiers temporaires CoreSimulator de l'utilisateur | safe | delete, refusé tant que Simulator tourne |
Oui |
Les appareils de simulateur, ainsi que les enregistrements, journaux et caches pris à l'intérieur, sont revérifiés avec simctl juste avant le nettoyage : si un simulateur a été démarré depuis l'analyse, l'élément est ignoré. Un simulateur indisponible est aussi ignoré s'il est redevenu disponible ou a changé de runtime. lu-cleaner ne lance jamais xcrun simctl delete unavailable, qui supprimerait aussi des appareils qui ne sont inutilisables que pour le moment.
La chaîne d'outils Android d'un développeur React Native ou Expo. Les SDK et les dossiers d'AVD qui se trouvent en réalité sur un autre volume (souvent derrière des liens symboliques) sont signalés, jamais supprimés, et les liens symboliques cassés ne sont jamais touchés. Les paquets versionnés du SDK sont comparés à ce qu'utilisent vos projets analysés (versions du wrapper Gradle, compileSdk, ndkVersion, versions de build-tools et de CMake), lu dans vos racines configurées même quand --root restreint le scan des artefacts : sans racines de projets, l'utilisation est inconnue et aucun paquet versionné n'est recommandé.
| Type | Ce que c'est | Risque | Méthode | Recommandé |
|---|---|---|---|---|
android-avd |
Un émulateur : dossier et .ini |
caution ; moderate pour les AVD x86 sur Apple Silicon | delete, refusé tant que l'émulateur tourne |
Seulement les AVD x86 sur Apple Silicon (ils ne peuvent pas démarrer) |
android-avd-snapshots |
Snapshots Quick Boot d'un AVD | moderate ; caution s'il y a des snapshots que vous avez enregistrés | delete |
Si inactif |
android-avd-orphan-ini |
Un .ini d'AVD dont le dossier a été supprimé |
safe | delete |
Oui |
android-avd-home |
Un dossier d'AVD hors du volume interne | caution | report |
Non |
android-system-image |
Une image système d'émulateur | moderate ; non sélectionnable tant qu'un AVD l'utilise | delete |
Quand aucun AVD ne l'utilise, ou qu'elle est x86 sur Apple Silicon |
android-ndk, android-build-tools, android-platform, android-cmake |
Paquets versionnés du SDK | moderate ; safe pour les restes d'une installation ratée (build-tools, platforms, CMake) | delete |
Quand aucun projet analysé ne l'utilise ; jamais les keep_latest versions les plus récentes ; CMake 3.22.1 (version par défaut d'AGP 8) est conservé |
android-ndk-bundle |
Le dossier obsolète ndk-bundle |
moderate | delete |
Sauf si un projet épingle ndk.dir |
android-sources |
Sources du SDK pour un niveau d'API | safe ; moderate quand elles sont utilisées ou les plus récentes | delete |
Oui (celles qui sont safe) |
android-sdk-temp |
Fichiers temporaires et téléchargements partiels du SDK Manager | safe | delete |
Oui |
android-sdk-legacy-tools, android-cmdline-tools-old, android-haxm |
SDK Tools obsolètes, cmdline-tools remplacés, Intel HAXM sur Apple Silicon | moderate | delete |
Oui |
android-sdk |
Un SDK hors du volume interne | moderate | report |
Non |
android-gradle-dist |
Une distribution du wrapper Gradle | moderate ; safe pour un téléchargement interrompu | delete |
Quand aucun projet analysé n'utilise cette version, ou que le téléchargement a été interrompu |
android-gradle-version-cache |
Caches Gradle par version | moderate | delete |
Quand ni un projet analysé ni un Gradle installé n'utilise cette version ; sinon si inactif |
android-gradle-transforms, android-gradle-jars, android-gradle-build-cache |
Caches de transformations, de jars et de build locaux | moderate ; safe pour les anciens formats de cache et le cache de build | delete |
Anciens formats et cache de build : oui ; transformations actuelles : si inactif |
android-gradle-modules |
Le cache des dépendances (modules-2) |
moderate | delete |
Si inactif |
android-gradle-caches-other |
Autres caches Gradle partagés | moderate | delete |
Si inactif |
android-gradle-daemon-logs |
Journaux du démon d'une version de Gradle | safe | delete |
Oui |
android-gradle-tmp |
Fichiers temporaires et téléchargements interrompus de plus d'un jour | safe | delete |
Oui |
android-gradle-jdk |
Un JDK provisionné automatiquement par les toolchains Gradle | moderate | delete |
Non |
android-gradle-misc |
Assistants natifs, rapports de build Kotlin, état des workers | safe | delete |
Oui |
android-gradle-home |
Un Gradle user home hors du volume interne | moderate | report |
Non |
android-studio-cache |
Caches d'une version d'Android Studio ; son dossier LocalHistory (votre historique de modifications) est toujours conservé |
safe pour les versions qui ne sont plus installées ; moderate pour la version actuelle | delete, refusé tant qu'Android Studio tourne |
Oui pour les anciennes versions ; si inactif pour la version actuelle |
android-studio-logs |
idea.log et rapports de plantage |
safe | delete |
Oui |
android-studio-config |
Réglages d'un ancien Android Studio (ceux de la version actuelle ne sont jamais listés) | moderate | delete |
Quand la version actuelle a ses propres réglages ; jamais tant qu'une version installée n'a pas encore été lancée (elle les importe à son premier lancement) |
android-user-cache |
Cache du dépôt ~/.android, ancien cache de build, dumps de plantage (les clés et les réglages sont conservés) |
safe | delete |
Oui |
android-jdk |
Un JDK dans votre dossier personnel, installé par un IDE, SDKMAN, mise ou asdf | moderate ; non sélectionnable quand il est utilisé | delete |
Non |
android-jdk-system |
Un JDK dans /Library/Java/JavaVirtualMachines |
moderate | report |
Non |
Les éléments Gradle reçoivent un avertissement tant qu'un démon Gradle tourne (./gradlew --stop règle le problème), ce qui les exclut aussi de la sélection intelligente.
Les données laissées par les outils de code IA. Les emplacements fixes (journaux de débogage de Claude Code, caches de Codex, caches des applications de bureau…) sont des entrées du catalogue ; le scanner traite ce qui demande de la logique. La plupart des éléments sont refusés tant que l'application concernée tourne.
| Type | Ce que c'est | Catégorie | Risque | Méthode | Recommandé |
|---|---|---|---|---|---|
claude-code-orphan-project |
Transcripts et sorties d'outils des sessions Claude Code lancées dans un dossier qui n'existe plus, de façon vérifiée (son memory/ est conservé) |
ai | moderate quand le dossier a été lu dans les sessions elles-mêmes, n'est pas un workspace Conductor, et que rien n'a été écrit depuis 30 jours ; caution sinon | delete, revérifié juste avant |
Seulement quand moderate |
claude-code-old-sessions |
Sessions d'un projet non touché depuis 30 jours ou plus | ai | caution | delete |
Non |
claude-code-config-backups |
Sauvegardes horodatées de ~/.claude.json de plus de 7 jours (la plus récente est conservée) |
ai | moderate | delete |
Si inactif |
claude-code-old-version |
Builds natifs de Claude Code remplacés | ai | moderate | delete |
Oui |
claude-desktop-old-claude-code, claude-desktop-old-claude-code-vm |
Anciennes copies de Claude Code téléchargées par l'application Claude desktop | ai | safe | delete |
Oui |
cursor-agent-old-version, cursor-agent-bundled-old-version, cursor-origin-old-version, copilot-cli-old-version, vibe-kanban-old-version, conductor-old-agent-binary |
Builds de CLI et d'agents remplacés (le build actif est conservé) | ai | safe | delete |
Oui |
codex-old-sessions |
Rollouts Codex non touchés depuis 30 jours ou plus, par mois (threads épinglés conservés) | ai | caution | delete |
Non |
codex-archived-sessions |
Rollouts des threads que vous avez archivés, par mois | ai | caution | delete |
Non |
codex-logs-db |
Base de journaux de traçage de Codex (avec ses -wal/-shm) |
ai | safe | delete |
Oui |
codex-stale-logs-db |
Une ancienne copie de la base de journaux | ai | safe | delete |
Oui |
codex-visualizations |
Captures d'écran et enregistrements d'agent de plus de 30 jours | ai | caution | delete |
Non |
multica-task-codex-homes |
Copies du dossier personnel de Codex pour des tâches Multica terminées | ai | moderate | delete |
Oui |
cursor-agent-orphan-projects |
Données de l'agent Cursor pour des dossiers supprimés | ai | moderate quand Cursor a enregistré le dossier et que rien n'a été écrit depuis 30 jours ; caution (« to review ») quand elles sont récentes, déduites du nom du répertoire, ou d'un workspace Conductor | delete, revérifié juste avant |
Seulement quand moderate |
cursor-agent-mcp-caches |
Caches de descripteurs MCP par projet | ai | safe | delete |
Oui |
cursor-agent-old-transcripts |
Transcripts d'agent non touchés depuis 30 jours ou plus | ai | caution | delete |
Non |
cursor-cached-data-old-builds |
Caches de code des builds précédents de Cursor | ide | safe | delete |
Oui |
cursor-workspace-storage-orphans |
État de workspace de dossiers supprimés | ide | moderate quand il n'a pas été touché depuis 30 jours et ne contient pas de données de conversation ; caution (« to review ») quand il est récent, contient des données de conversation, ou appartient à un workspace Conductor | delete, revérifié juste avant |
Seulement quand moderate |
cursor-workspace-dead-extension-data |
Données de workspace d'extensions désinstallées | ide | safe | delete |
Oui |
cursor-extension-old-versions |
Versions d'extensions remplacées | ide | moderate | delete |
Oui |
conductor-archived-contexts |
Notes et pièces jointes de workspaces Conductor archivés il y a plus de 30 jours | ai | caution | delete |
Non |
chatgpt-atlas-leftover |
Données de ChatGPT Atlas quand l'application n'est pas installée | ai | caution | delete |
Non |
antigravity-browser-profile |
Profil de l'agent navigateur d'Antigravity (mots de passe enregistrés, cookies, historique) quand l'application n'est pas installée | ai | caution | delete |
Non |
antigravity-extensions |
Extensions de l'IDE Antigravity quand l'application n'est pas installée | ai | moderate | delete |
Si inactif |
antigravity-browser-recordings |
Enregistrements de l'agent navigateur de plus de 90 jours | ai | caution | delete |
Non |
antigravity-conversations, antigravity-brain |
Transcripts et mémoire d'agent d'Antigravity | ai | caution | report |
Non |
ollama-model, lmstudio-model, huggingface-model, huggingface-dataset, huggingface-space, whisper-model, voiceink-whisper-model |
Poids de modèles locaux | ai | caution | delete |
Non |
La configuration, les identifiants, les mémoires, l'historique et les bases de conversations de ces outils sont protégés. Les sauvegardes des bases de conversations (sauvegardes de state.vscdb de Cursor, sauvegardes de réparation par Codex des bases de mémoires et d'objectifs) sont des entrées caution du catalogue, jamais recommandées. Voir Nettoyer les données des outils d'IA.
La chaîne d'outils JavaScript et React Native, là où il faut de la logique. Les caches de gestionnaires de paquets à chemin fixe (npm, Yarn classic, bun, Metro, Jest…) sont des entrées du catalogue.
| Type | Ce que c'est | Risque | Méthode | Recommandé |
|---|---|---|---|---|
node-version |
Une version de Node.js installée par nvm, fnm, mise, asdf ou volta | moderate ; caution quand c'est votre version par défaut ou le node de votre PATH ; non sélectionnable tant qu'un processus l'exécute |
delete |
Quand rien ne la référence : ni version par défaut, ni dans le PATH, ni épinglée par un projet (.nvmrc, .node-version, .tool-versions), ni alias, ni en cours d'exécution, et aucun paquet global installé uniquement là. Jamais les keep_latest versions non référencées les plus récentes de chaque gestionnaire, et jamais quand la liste des processus ne peut pas être lue |
npm-global-leftover |
Un dossier .name-XXXXXXXX laissé par un npm install -g interrompu, de plus d'un jour |
safe | delete |
Oui |
npx-package |
Un paquet installé à la volée par npx (souvent un serveur MCP) |
moderate | delete |
Inutilisé depuis 14 jours et non utilisé par un processus en cours |
pnpm-store |
Un store pnpm adressé par contenu (un par version de store) | moderate ; caution quand il contient un store virtuel global vers lequel pointent des projets | delete |
Si inactif ; jamais avec un store virtuel global |
pnpm-store-prune |
Paquets non référencés du store actif (taille inconnue avant l'exécution : affichée comme ?) |
safe | command : pnpm store prune |
Oui, sauf si un projet enregistré dans le store est inaccessible (volume non monté) |
yarn-berry-cache |
Cache zip global de Yarn Berry | safe ; caution quand des projets Plug'n'Play s'exécutent à partir de lui ; moderate quand la recherche des projets Plug'n'Play n'a pas pu regarder partout | delete |
Oui ; jamais avec des projets PnP ; si inactif quand moderate |
yarn-berry-metadata |
Métadonnées de registre de Yarn Berry | safe | delete |
Oui |
yarn-berry-store |
Store hardlinks-global de Yarn Berry (les fichiers encore liés dans des node_modules survivent) |
moderate | delete |
Si inactif |
expo-go-ios |
Builds Expo Go mis en cache pour le simulateur iOS | safe ; moderate pour le build le plus récent d'une version de SDK | delete |
Builds remplacés : oui ; le plus récent : si inactif, sauf si un projet utilise ce SDK |
playwright-browser |
Une révision de navigateur Playwright | moderate | delete |
Quand aucun Playwright installé n'en a besoin, ou qu'une révision plus récente du même navigateur existe |
rn-codegen-tmp, vitest-tmp |
Dossiers temporaires du codegen React Native et de Vitest dans $TMPDIR, de plus de 2 heures |
safe | delete |
Oui |
fnm-multishells |
Liens symboliques par shell de fnm pour des shells qui n'existent plus (uniquement les liens, jamais Node lui-même) | safe | delete |
Oui |
watchman-stale-watches |
Surveillances watchman sur des dossiers supprimés (libère de la mémoire, pas du disque) | safe | command : watchman watch-del <root> pour chaque surveillance périmée uniquement ; les surveillances actives (Metro, Jest) ne sont pas touchées |
Oui |
Voir Caches de la chaîne d'outils JavaScript et versions de Node.
Tout ce qui se trouve hors des projets et des chaînes d'outils mobiles ou d'IA : Corbeille, conteneurs, Homebrew et chaînes d'outils de langages, éditeurs, ~/Downloads, et les éléments de macOS qui expliquent un disque plein.
| Type | Ce que c'est | Catégorie | Risque | Méthode | Recommandé |
|---|---|---|---|---|---|
trash |
Tout le contenu de ~/.Trash |
system | moderate | delete (la vide) ; ignoré en mode Corbeille |
Non : vider la Corbeille est irréversible |
trash-finder |
La Corbeille quand lu-cleaner ne peut pas la lire (pas d'Accès complet au disque) | system | caution | command : « Vider la Corbeille » du Finder via osascript |
Non |
downloads-installers, downloads-archives, downloads-mobile-builds |
Fichiers .dmg/.pkg, archives et fichiers .ipa/.apk de ~/Downloads ni téléchargés ni ouverts depuis 30 jours |
system | caution | delete |
Non |
app-update-downloads |
Mises à jour téléchargées par les outils de mise à jour intégrés des applications | system | safe | delete |
Oui |
ios-device-backup, ios-device-backups |
Sauvegardes locales d'iPhone et d'iPad | system | caution | report |
Non |
time-machine-snapshots, macos-swap, macos-staged-updates |
Snapshots locaux APFS, fichiers de swap, mises à jour macOS en attente | system | never | report |
Non |
docker-build-cache |
Cache BuildKit inutilisé | containers | safe | command : docker --context <context> builder prune -a -f |
Oui |
docker-unused-images |
Images qu'aucun conteneur n'utilise | containers | moderate | command : docker --context <context> image prune -a -f |
Non |
docker-stopped-containers |
Conteneurs arrêtés et leur couche inscriptible | containers | caution | command : docker --context <context> container prune -f |
Non |
docker-unused-volumes |
Volumes qu'aucun conteneur n'utilise | containers | caution | report |
Non |
docker-desktop-disk, orbstack-data, colima-vm, lima-vm |
Images disque de VM contenant les conteneurs et les images (celles de Docker Desktop et d'OrbStack uniquement avec l'Accès complet au disque : elles se trouvent dans les conteneurs de ces applications) | containers | caution | report |
Non |
apple-container-data |
Images et snapshots de la CLI container d'Apple |
containers | moderate | report |
Non |
homebrew-cache |
Cache de téléchargement de Homebrew (ses métadonnées d'API sont conservées) | langs | safe | delete |
Oui |
homebrew-cleanup |
Anciennes versions, verrous et journaux périmés, tels que calculés par brew cleanup -n |
langs | moderate | command : brew cleanup --prune=all |
Oui |
homebrew-old-kegs |
Anciennes versions conservées par des formules obsolètes | langs | moderate | report |
Non |
go-build-cache |
Cache de build et de tests de Go | langs | safe | command : go clean -cache (une simple suppression quand go n'est pas installé) |
Oui |
go-module-cache |
Cache des modules Go | langs | moderate | command : go clean -modcache |
Si inactif |
rustup-toolchain, rbenv-ruby |
Toolchains Rust autres que celle par défaut, Rubies rbenv ni globales ni épinglées | langs | moderate | report |
Non |
vscode-cached-data (et vscode-insiders-…, vscodium-…) |
Caches de code des builds précédents de l'éditeur | ide | safe | delete |
Oui |
vscode-vsix-cache, vscode-caches, vscode-ls-indexes |
Paquets .vsix téléchargés, caches et anciens journaux, index de serveurs de langage non touchés depuis 3 jours |
ide | safe | delete |
Oui |
vscode-workspace-orphans |
Stockage de workspace de dossiers supprimés, non touché depuis 7 jours ou plus | ide | moderate | delete |
Oui |
vscode-old-extensions |
Versions d'extensions remplacées | ide | safe | delete |
Oui |
vscode-local-history |
Local History (Timeline) | ide | caution | report |
Non |
vscode-extensions-leftover |
Extensions d'un éditeur qui n'est plus installé | ide | caution | delete |
Non |
zed-caches, zed-language-servers, zed-leftover |
Caches de Zed, serveurs de langage téléchargés, données d'un Zed désinstallé | ide | safe, moderate, caution | delete |
Oui, si inactif, non |
jetbrains-old-caches, jetbrains-logs |
Caches JetBrains des versions d'IDE plus anciennes que les keep_latest plus récentes, journaux des IDE |
ide | safe | delete |
Oui |
jetbrains-old-settings, jetbrains-caches |
Réglages d'anciennes versions d'IDE, caches des versions actuelles | ide | moderate | delete |
Si inactif |
Les caches JetBrains n'incluent jamais le dossier LocalHistory, qui contient votre historique de modifications. Les commandes Docker sont liées au contexte qui a été mesuré et revalidées juste avant leur exécution : un docker context use lancé dans un autre terminal ne peut pas les rediriger. Ce sont de simples commandes docker … quand DOCKER_HOST est défini, et aucune n'est proposée quand le contexte actuel ne peut pas être lu.
Voir Pourquoi l'espace libéré n'apparaît pas pour les snapshots, la Corbeille et les images disque de Docker.
Le scanner catalog évalue environ 200 entrées : des emplacements connus de caches, de journaux et de données d'outils dans votre dossier personnel ou votre dossier temporaire utilisateur. L'id de chaque entrée est le type d'élément. La liste complète, avec le risque, la méthode, les chemins et les notes, se trouve dans la référence du catalogue, et sur votre machine :
lu-cleaner catalog # toutes les entréeslu-cleaner catalog -c js # une catégorielu-cleaner catalog -k claude # les identifiants qui contiennent "claude"lu-cleaner catalog --jsonComment les entrées deviennent des éléments :
- Les chemins sont des globs (
~/.cache/node/corepack/*,$TMPDIR/bunx-*). Par défaut, toutes les correspondances d'une entrée forment un élément groupé (Metro / Haste file maps (18)) ; certaines entrées produisent à la place un élément par correspondance (un par version téléchargée, par exemple), en laissant éventuellement de côté les plus récentes (au moinskeep_latestd'entre elles). - Une entrée peut exiger un binaire dans le
PATH(pour sa commande), ne garder que les correspondances plus anciennes qu'un âge donné, masquer les résultats sous une taille minimale, et déclarer des applications qui ne doivent pas tourner pendant son nettoyage. Une application en cours d'exécution apparaît comme un avertissement lors de l'analyse. - Les chemins exclus ne correspondent jamais, les chemins protégés seulement pour les entrées en rapport seul, les liens symboliques cassés sont ignorés, et les correspondances situées sur un autre volume sont en rapport seul.
- Sans l'Accès complet au disque, les chemins situés dans les conteneurs des autres applications (
~/Library/Containers/<app>,~/Library/Group Containers/<group>) ne sont jamais lus : macOS bloquerait sur une demande d'autorisation. Une telle entrée devient un élément en rapport seul avec l'avertissementinside another app's container: needs Full Disk Access (…). - La date de dernière utilisation d'un groupe est celle du fichier le plus récent écrit à l'intérieur, car la date de modification d'un dossier de cache ne change que lorsque des entrées y sont ajoutées ou retirées.
- Les risques et les recommandations suivent les règles génériques ; une entrée peut forcer la recommandation (
Flipper leftovers).
Pour ajouter une entrée, voir Contribuer.