Plugin catalog

reclaimable_space

Marks caches, build output and temporary files in the size map view and shows how many bytes you could free.

↓ on this page

reclaimable_space marks caches, build output and temporary files in the size map view and shows how many bytes each one holds. Reach for it when a disk is filling up and you want to know what's safe to clear. It never deletes anything.

Turn it on

# ~/.config/lla/config.toml
enabled_plugins = ["reclaimable_space"]

Or run lla --enable-plugin reclaimable_space, which writes the same setting, so it stays on. lla --disable-plugin reclaimable_space removes it.

The plugin only runs in the size map view (-S). Add --include-dirs so directories show their real size.

Matching entries get three typed fields: reclaimable_bytes (bytes), reclaim_reason (string) and reclaim_confidence (string). Read them from JSON, and keep -S in the command, since lla --json alone leaves them out:

lla -S --include-dirs --json | jq -c '.[] | select(.plugin.reclaimable_bytes) | {name, bytes: .plugin.reclaimable_bytes, confidence: .plugin.reclaim_confidence}'
{"name":"dist","bytes":100000,"confidence":"medium"}
{"name":"node_modules","bytes":40000,"confidence":"high"}
{"name":"target","bytes":3000000,"confidence":"high"}

field: columns stay empty, because the long and table views don't run this plugin.

What it matches

Matching uses the name alone and ignores case, so a directory you wrote by hand called build is marked too. Check medium entries before you delete them.

NameReasonConfidence
node_modulesdependency cachehigh
target, __pycache__, .pytest_cache, .mypy_cache, .ruff_cache, .cache, .parcel-cache, .turbogenerated cachehigh
.next, coverage, dist, buildbuild outputmedium
.DS_Store, Thumbs.dbsystem metadatahigh
Names ending in ~; .tmp, .temp, .swp, .swo, .bak, .oldtemporary filehigh
.pyc, .class, .o, .objgenerated artifacthigh
.loglog filemedium

The first three rows match directories, and the rest match files.

Actions

Run an action with lla plugin run reclaimable_space <action>.

ActionWhat it does
inspect -- <path>Explain whether a path is safely reclaimable

inspect isn't interactive, so it works in scripts and prints JSON without a TTY.

Example

lla -S --include-dirs
  target/                2.9 MB  ████████████████████████████████████████████████████████▓⋅⋅⋅ 95.5% [reclaim 2.9 MiB · generated cache]
  dist/                 97.7 KB  ▓⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅  3.2% [reclaim 97.7 KiB · build output]
  node_modules/         39.1 KB  ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅  1.3% [reclaim 39.1 KiB · dependency cache]
  server.log             2.0 KB  ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅  0.1% [reclaim 2.0 KiB · log file]
  notes.bak               512 B  ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅  0.0% [reclaim 512 B · temporary file]
  src/                      2 B  ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅  0.0%
  Total                  3.0 MB
lla plugin run reclaimable_space inspect -- target
{
  "confidence": "high",
  "path": "target",
  "reason": "generated cache",
  "reclaimable": true,
  "reclaimable_bytes": 3000000
}

To remove something and keep a way back, use trash.