SkillAgentSearch skills...

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/Dustoff
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img src="assets/logo.svg" alt="DUSTOFF" width="500" /> <br /> <br /> <strong>Find and remove JS/TS build artifacts wasting disk space.</strong> <br /> <br /> <a href="https://www.npmjs.com/package/dustoff"><img src="https://img.shields.io/npm/v/dustoff.svg" alt="npm version" /></a> <a href="https://www.npmjs.com/package/dustoff"><img src="https://img.shields.io/npm/dm/dustoff.svg" alt="npm downloads" /></a> <a href="https://aur.archlinux.org/packages/dustoff"><img src="https://img.shields.io/aur/version/dustoff" alt="AUR version" /></a> <a href="https://github.com/westpoint-io/homebrew-dustoff"><img src="https://img.shields.io/badge/homebrew-available-orange?logo=homebrew" alt="Homebrew" /></a> <a href="https://github.com/westpoint-io/dustoff/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/dustoff.svg" alt="license" /></a> <img src="https://img.shields.io/node/v/dustoff.svg" alt="node version" /> </p>
<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.

<p align="center"> <img src="assets/features/sorting.gif" alt="Sorting artifacts by size and age" width="800" /> </p>

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

<p align="center"> <img src="assets/features/search_filter.gif" alt="Searching and filtering artifacts" width="800" /> </p>

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.

<p align="center"> <img src="assets/features/grouping.gif" alt="Directory grouping" width="800" /> </p>

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.

<p align="center"> <img src="assets/features/multi_select.gif" alt="Range multi-select" width="800" /> </p>

Safe Deletion

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

<p align="center"> <img src="assets/features/deletion.gif" alt="Selecting and deleting artifacts" width="800" /> </p>

10 Built-in Themes

Cycle with t. Your choice is saved across sessions.

<p align="center"> <img src="assets/features/themes.gif" alt="Cycling through themes" width="800" /> </p>

โŒจ๏ธ 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.

<table> <tr> <td align="center"><img src="assets/themes/tokyo-night.png" width="400" /><br /><strong>Tokyo Night</strong></td> <td align="center"><img src="assets/themes/nord-frost.png" width="400" /><br /><strong>Nord Frost</strong></td> </tr> <tr> <td align="center"><img src="assets/themes/dracula.png" width="400" /><br /><strong>Dracula</strong></td> <td align="center"><img src="assets/themes/gruvbox-dark.png" width="400" /><br /><strong>Gruvbox Dark</strong></td> </tr> <tr> <td align="center"><img src="assets/themes/rose-pine.png" width="400" /><br /><strong>Ros&eacute; Pine</strong></td> <td align="center"><img src="assets/themes/kanagawa.png" width="400" /><br /><strong>Kanagawa</strong></td> </tr> <tr> <td align="center"><img src="assets/themes/everforest.png" width="400" /><br /><strong>Everforest</strong></td> <td align="center"><img src="assets/themes/solarized-dark.png" width="400" /><br /><strong>Solarized Dark</strong></td> </tr> <tr> <td align="center"><img src="assets/themes/cyberpunk-neon.png" width="400" /><br /><strong>Cyberpunk Neon</strong></td> <td align="center"><img src="assets/themes/catppuccin-mocha.png" width="400" /><br /><strong>Catppuccin Mocha</strong></td> </tr> </table>

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

Related Skills

View on GitHub
GitHub Stars32
CategoryDevelopment
Updated1d ago
Forks2

Languages

TypeScript

Security Score

95/100

Audited on Mar 28, 2026

No findings