█████████ ██████ █████ █████ ████ █████ █████ █████ ███░░░░░██ ░██████ ░███ ░███ ███░ ░███ ░███ ░███ ███ ░░░ ░███░███ ░███ ░███ ███ ░███ ░███ ░███ ░███ ░███░░███░███ ░███████ ░███ ░███ ░███ ░███ ░███ ░░██████ ░███░░███ ░███ ░███ ░███ ░░███ ███ ░███ ░░█████ ░███ ░░███ ░███ ░███ █ ░███ █ ░░█████████ █████ ░░█████ █████ ░░████ █████ ███████████ ███████████ ░░░░░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░ ░░░░░ ░░░░░░░░░░░ ░░░░░░░░░░░
A Blazing Fast, Interactive TUI tool (like npkill) to find and delete vendor/ and node_modules/ directories in your old projects — freeing up disk space fast.
We provide multiple installation methods to suit your preferences. The recommended way is the standalone executable for Linux and macOS.
- Quick install (Linux/macOS, standalone executable):
curl -fsSL https://raw.githubusercontent.com/barnphp/cnkill/master/install.sh | sh- System-wide install (requires sudo):
curl -fsSL https://raw.githubusercontent.com/barnphp/cnkill/master/install.sh | sh -s -- --system- Install via cpx (the npx for PHP):
cpx barnphp/cnkill- Install globally via Composer:
composer global require barnphp/cnkillYou will find it installed in ~/.composer/vendor/bin or ~/.config/composer/vendor/bin.
Add it to your PATH or create an alias:
alias cnkill="~/.composer/vendor/bin/cnkill"
# or
alias cnkill="~/.config/composer/vendor/bin/cnkill"cnkill [path: defaults to current path] [options]## Examples
cnkill # find both vendor/ and node_modules/ in current path
cnkill /path/to/projects # find both vendor/ and node_modules/ in a specific path
cnkill /path/to/projects --node # find node_modules/ only
cnkill /path/to/projects --composer # find vendor/ only
cnkill /path/to/projects --sort=size # sort by size
cnkill /path/to/projects --maxdepth=4 # limit search depth
cnkill cache --sort=modified # sort caches by last modifiedcnkill stores its configuration at ~/.config/cnkill/config.json (respects $XDG_CONFIG_HOME).
Use the config command to manage which targets are scanned and to define custom ones.
cnkill configOpens an interactive multi-select list of all known targets (built-in and custom). Use Space to toggle a target on or off, Enter to save, and q to quit without saving.
cnkill config addRuns an interactive 4-step wizard:
- Folder name or pattern — a simple name (e.g.
.venv) or a wildcard path pattern (e.g.*/ios/build) - Label — human-readable name shown in
cnkill config - Manifest files — comma-separated files that must exist in the parent directory to confirm it's a real project (e.g.
pyproject.toml, requirements.txt); leave blank to match any - Lock / reference files — files used to determine the "last modified" timestamp; defaults to manifests if left blank
After the wizard, the new target is saved and automatically enabled.
cnkill config removePresents a list of user-defined custom targets. Select one and confirm to delete it.
| Target | Directory | Enabled by default |
|---|---|---|
vendor |
vendor (Composer) | Yes |
node |
node_modules (npm/pnpm/yarn/bun) | Yes |
next |
.next (Next.js build output) | Yes |
expo |
.expo (Expo / React Native) | Yes |
turbo |
.turbo (Turborepo cache) | Yes |
svelte-kit |
.svelte-kit (SvelteKit) | Yes |
nuxt |
.nuxt (Nuxt build output) | Yes |
cache |
.cache (generic tool cache) | Yes |
parcel-cache |
.parcel-cache (Parcel bundler) | Yes |
coverage |
coverage (test coverage reports) | Yes |
output |
.output (Nitro / Nuxt server output) | Yes |
dist |
dist (build distribution) | No |
build |
build (generic build output) | No |
derived-data |
DerivedData (Xcode) | No |
android |
android/build (Android / Gradle) | No |
Note: Per-run flags like
--nodeand--composeroverride the saved config for that invocation only.
| Key | Action |
|---|---|
↑ / ↓ |
Navigate the list |
← / → |
Page through the list |
s |
Cycle sort mode |
Shift + s |
Toggle sort direction |
Space |
Delete the highlighted directory |
q / Ctrl-C |
Quit |
- Interactive TUI with real-time streaming results
- Support for
vendor/directories (Composer) - Support for
node_modules/directories (npm/yarn) - Async size calculation and deletion
- Add support for Windows
- Add a build workflow to publish release binaries automatically
- ... share your ideas in the issues
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please open an issue to report any security vulnerabilities.
The MIT License (MIT). Please see License File for more information.