Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

158 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DUSTOFF

Find and remove JS/TS build artifacts wasting disk space.

npm version npm downloads AUR version Homebrew license node version


dustoff in action
Demo recorded with the Catppuccin Mocha theme. See Theme Gallery for all 10 themes.


🧹 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.

Sorting artifacts by size and age

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).

Searching and filtering artifacts

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.

Directory grouping

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.

Range multi-select

Safe Deletion

Select artifacts with Space, delete with d. Confirmation dialog and live progress tracking.

Selecting and deleting artifacts

10 Built-in Themes

Cycle with t. Your choice is saved across sessions.

Cycling through themes

⌨️ 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.


Tokyo Night

Nord Frost

Dracula

Gruvbox Dark

RosΓ© Pine

Kanagawa

Everforest

Solarized Dark

Cyberpunk Neon

Catppuccin Mocha

πŸ” 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

MIT

About

πŸ” 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. 🧹

Topics

Resources

Contributing

Stars

64 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages