Dustoff
๐ Scan for JavaScript/TypeScript build artifacts ๐ฆ (node_modules ๐, .next โ๏ธ, dist ๐ค, .cache ๐๏ธ, coverage ๐, .turbo ๐ช๏ธ, .parcel-cache ๐ฆ, and more) cluttering your filesystem. ๐พ See how much space each one is wasting, then select and delete them to reclaim disk space. ๐งน
Install / Use
/learn @westpoint-io/DustoffREADME
<p align="center"> <img src="assets/demo.gif" alt="dustoff in action" width="800" /> <br /> <em>Demo recorded with the Catppuccin Mocha theme. See <a href="#themes">Theme Gallery</a> for all 10 themes.</em> </p>
๐งน What It Does
Scan your filesystem for JavaScript/TypeScript build artifacts โ directories like node_modules, .next, dist, .cache, coverage, .turbo, and files like .tsbuildinfo, .eslintcache, heap snapshots, debug logs, and more โ then interactively browse, sort, select, and safely delete them to reclaim disk space.
๐ Installation
Requires Node.js >= 18.18.0.
-
Via npm โ no install required
npx dustoff -
Via npm or bun global install
npm install -g dustoff # or bun install -g dustoff -
Via Homebrew for macOS
brew install westpoint-io/dustoff/dustoff -
On Arch Linux (AUR) โ requires an AUR helper
yay -S dustoff # or paru -S dustoff
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 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 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).
File Artifact Scanning
dustoff detects individual build artifact files (.tsbuildinfo, .eslintcache, debug logs, heap snapshots, etc.) and groups them by type into collapsible rows. Expand with Enter to see individual files, or select the whole group with Space.
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. File groups nest inside their parent directory groups.
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
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 |
| Transpiler | .swc |
| Test/coverage | coverage, .nyc_output, .jest |
| Docs/storybook | storybook-static, gatsby_cache, .docusaurus |
| Serverless | .serverless |
| Runtime | deno_cache |
| Build outputs | dist, build, .output |
Files
Files are grouped by type into collapsible rows.
| Category | Files |
|----------|-------|
| Build/compiler | .tsbuildinfo |
| Linter/formatter caches | .eslintcache, .stylelintcache |
| Yarn PnP | .pnp.cjs, .pnp.loader.mjs |
| Package manager logs | npm-debug.log*, yarn-error.log*, yarn-debug.log*, pnpm-debug.log*, .pnpm-debug.log*, lerna-debug.log* |
| Profiling/diagnostics | *.heapsnapshot, *.cpuprofile, *.heapprofile |
| Package archives | *.tgz |
๐ค Contributing
Contributions are welcome! Check the CONTRIBUTING.md guide to get started.
๐ License
Related Skills
node-connect
341.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
84.5kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
review-duplication
99.5kUse this skill during code reviews to proactively investigate the codebase for duplicated functionality, reinvented wheels, or failure to reuse existing project best practices and shared utilities.
