dustoff
v1.0.0
Published
Find and remove JS/TS build artifacts wasting disk space
Maintainers
Readme
🧹 What It Does
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.
🚀 Quick Start
npx dustoffThat's it. No install required.
Global Install
npm install -g dustoff
# or
bun install -g dustoffRequires Node.js >= 18.18.0.
CLI Options
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 numberExamples:
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 artifacts✨ Features
Smart Sorting
Sort by size, path, or age with s to find the biggest space hogs.
Search & Filter
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).
Directory Grouping
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.
Range Multi-Select
Hold Shift + arrow keys (or use J/K) to select a contiguous range of artifacts. Shift+Space extends selection from an anchor point.
Safe Deletion
Select artifacts with Space, delete with d. Confirmation dialog and live progress tracking.
10 Built-in Themes
Cycle with t. Your choice is saved across sessions.
⌨️ Keybindings
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 |
🎨 Themes
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.
🔍 Detected Artifacts
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 |
🤝 Contributing
Contributions are welcome! Check the CONTRIBUTING.md guide to get started.
