Find and remove JS/TS build artifacts wasting disk space.
Demo recorded with the Catppuccin Mocha theme. See Theme Gallery for all 10 themes.
Scan your filesystem for JavaScript/TypeScript build artifacts β node_modules, .next, dist, .cache, coverage, .turbo, and 30+ more β then interactively browse, sort, select, and safely delete them to reclaim disk space.
npx dustoffThat's it. No install required.
npm install -g dustoff
# or
bun install -g dustoffRequires Node.js >= 18.18.0.
dustoff [options]
-d, --directory <path> Set scan root directory (default: current directory)
-E, --exclude <names> Exclude directories by name, comma-separated
-t, --target <names> Override default targets, comma-separated
-V, --verbose Write debug log to dustoff-debug.log
-h, --help Show this help message
-v, --version Show version number
Examples:
dustoff -d ~/projects # scan a specific directory
dustoff --exclude "dist,build" # skip dist and build directories
dustoff --target "node_modules,.next" # only scan for specific artifactsSort by size, path, or age with s to find the biggest space hogs.
Press / to search β instantly filter artifacts by path. Press f to open the type filter and show only specific artifact types (e.g. just node_modules or .next).
Press x to group artifacts by parent directory. Collapse and expand groups with Enter or arrow keys. Select an entire group at once with Space on the group header.
Hold Shift + arrow keys (or use J/K) to select a contiguous range of artifacts. Shift+Space extends selection from an anchor point.
Select artifacts with Space, delete with d. Confirmation dialog and live progress tracking.
Cycle with t. Your choice is saved across sessions.
Vim-style navigation is fully supported alongside arrow keys.
| Key | Action |
|---|---|
β k |
Move cursor up |
β j |
Move cursor down |
Shift+β K |
Range select up |
Shift+β J |
Range select down |
g / G |
Jump to top / bottom |
PgUp PgDn |
Page up / down |
Space |
Toggle selection |
Shift+Space |
Extend selection from anchor |
a |
Select all |
d |
Delete selected |
s |
Cycle sort mode |
/ |
Search / filter |
f |
Type filter |
x |
Toggle directory grouping |
Tab |
Toggle detail panel |
+ / - |
Scroll detail panel |
t |
Cycle theme |
Esc |
Clear selection |
q |
Quit |
Cycle through themes with t during a session. Your preference is saved to ~/.config/dustoff/config.json (or $XDG_CONFIG_HOME/dustoff/config.json) and persisted across sessions.
![]() Tokyo Night |
![]() Nord Frost |
![]() Dracula |
![]() Gruvbox Dark |
![]() RosΓ© Pine |
![]() Kanagawa |
![]() Everforest |
![]() Solarized Dark |
![]() Cyberpunk Neon |
![]() Catppuccin Mocha |
dustoff scans for these directories:
| Category | Directories |
|---|---|
| Package managers | node_modules, .npm, .pnpm-store |
| Framework builds | .next, .nuxt, .angular, .svelte-kit, .vite, .turbo, .nx |
| Bundler caches | .parcel-cache, .rpt2_cache, .esbuild, .rollup.cache, .cache |
| Linter/formatter | .eslintcache, .stylelintcache |
| Transpiler | .swc |
| Test/coverage | coverage, .nyc_output, .jest |
| Docs/storybook | storybook-static, gatsby_cache, .docusaurus |
| Runtime | deno_cache |
| Build outputs | dist, build, .output |
Contributions are welcome! Check the CONTRIBUTING.md guide to get started.















