[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10165":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":38,"readmeContent":39,"aiSummary":40,"trendingCount":16,"starSnapshotCount":16,"syncStatus":41,"lastSyncTime":42,"discoverSource":43},10165,"npkill","voidcosmos\u002Fnpkill","voidcosmos","List any node_modules 📦 dir in your system and how heavy they are. You can then select which ones you want to erase to free up space 🧹","https:\u002F\u002Fnpkill.js.org",null,"TypeScript",9265,243,39,11,0,4,25,90,20,92.66,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37],"cli","command-line","developer-tools","hacktoberfest","javascript","module","node","nodejs","npm","tool","typescript","2026-06-12 04:00:49","\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fdocs\u002Fnpkill-text-clean.svg\" width=\"380\" alt=\"npkill logo\" \u002F>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n\u003Cimg alt=\"npm\" src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdy\u002Fnpkill.svg\">\n\u003Ca href=\"#donations\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdonate-\u003C3-red\" alt=\"Donations Badge\"\u002F>\u003C\u002Fa>\n\u003Cimg alt=\"npm version\" src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnpkill.svg\">\n\u003Cimg alt=\"NPM\" src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnpkill.svg\">\n\u003C\u002Fp>\n\n### Easily find and **remove** old and heavy \u003Cfont color=\"red\">**node_modules**\u003C\u002Ffont> folders :sparkles:\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"\u002Fdocs\u002Fnpkill-demo-0.10.0.gif\" alt=\"npkill demo GIF\" \u002F>\n\u003C\u002Fp>\n\nThis tool allows you to list any _node_modules_ directories in your system, as well as the space they take up. You can then select which ones you want to erase to free up space. Yay!\n\n## i18n\n\nWe're making an effort to internationalize the Npkill docs. Here's a list of the available translations:\n\n- [Español](.\u002FREADME.es.md)\n- [Indonesian](.\u002FREADME.id.md)\n- [Português](.\u002FREADME.pt.md)\n- [Turkish](.\u002FREADME.tr.md)\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Multi-Select Mode](#multi-select-mode)\n  - [Options](#options)\n  - [Examples](#examples)\n  - [JSON Output](#json-output)\n- [Set Up Locally](#setup-locally)\n- [API](#API)\n- [Roadmap](#roadmap)\n- [Known bugs](#known-bugs)\n- [Contributing](#contributing)\n- [Buy us a coffee](#donations)\n- [License](#license)\n\n\u003Ca name=\"features\">\u003C\u002Fa>\n\n# :heavy_check_mark: Features\n\n- **Clear space:** Get rid of old and dusty _node_modules_ cluttering up your machine.\n\n- **Last Workspace Usage**: Check when was the last time you modified a file in the workspace (indicated in the **last_mod** column).\n\n- **Very fast:** NPKILL is written in TypeScript, but searches are performed at a low level, improving performance greatly.\n\n- **Easy to use:** Say goodbye to lengthy commands. Using npkill is as simple as reading a list of your node_modules, and pressing Del to get rid of them. Could it be any easier? ;)\n\n- **Minified:** It barely has any dependencies.\n\n\u003Ca name=\"installation\">\u003C\u002Fa>\n\n# :cloud: Installation\n\nYou don't really need to install it to use it!\nSimply use the following command:\n\n```bash\n$ npx npkill\n```\n\nOr if for some reason you really want to install it:\n\n```bash\n$ npm i -g npkill\n# Unix users may need to run the command with sudo. Go carefully\n```\n\n> NPKILL does not support node\u003Cv14. If this affects you you can use `npkill@0.8.3`\n\n\u003Ca name=\"usage\">\u003C\u002Fa>\n\n# :clipboard: Usage\n\n```bash\n$ npx npkill\n# or just npkill if installed globally\n```\n\nBy default, npkill will scan for node_modules starting at the path where `npkill` command is executed.\n\nMove between the listed folders with \u003Ckbd>↓\u003C\u002Fkbd> \u003Ckbd>↑\u003C\u002Fkbd>, and use \u003Ckbd>Space\u003C\u002Fkbd> or \u003Ckbd>Del\u003C\u002Fkbd> to delete the selected folder.\nYou can also use \u003Ckbd>j\u003C\u002Fkbd> and \u003Ckbd>k\u003C\u002Fkbd> to move between the results.\n\nYou can open the directory where the selected result is placed by pressing \u003Ckbd>o\u003C\u002Fkbd>.\n\nTo exit, \u003Ckbd>Q\u003C\u002Fkbd> or \u003Ckbd>Ctrl\u003C\u002Fkbd> + \u003Ckbd>c\u003C\u002Fkbd> if you're brave.\n\n**Important!** Some applications installed on the system need their node_modules directory to work and deleting them may break them. NPKILL will highlight them by displaying a :warning: to be careful.\n\n## Search Mode\n\nSearch mode allows you to filter results. This can be particularly useful for limiting the view to a specific route or ensuring that only those results that meet the specified condition are “selected all.”\n\nFor example, you can use this expression to limit the results to those that are in the `work` directory and that include `data` somewhere in the path: `\u002Fwork\u002F.*\u002Fdata`.\n\nPress \u003Ckbd>\u002F\u003C\u002Fkbd> to enter search mode. You can type a regex pattern to filter results.\n\nPress \u003Ckbd>Enter\u003C\u002Fkbd> to confirm the search and navigate the filtered results, or \u003Ckbd>Esc\u003C\u002Fkbd> to clear and exit.\n\nTo exit from this mode, leave empty.\n\n## Multi-Select Mode\n\nThis mode allows you to select and delete multiple folders at once, making it more efficient when cleaning up many directories.\n\n### Entering Multi-Select Mode\n\nPress \u003Ckbd>T\u003C\u002Fkbd> to toggle multi-select mode. When active, you'll see a selection counter and additional instructions at the top of the results.\n\n### Controls\n\n- **\u003Ckbd>Space\u003C\u002Fkbd>**: Toggle selection of the current folder.\n- **\u003Ckbd>V\u003C\u002Fkbd>**: Start\u002Fend range selection mode.\n- **\u003Ckbd>A\u003C\u002Fkbd>**: Toggle select\u002Funselect all folders.\n- **\u003Ckbd>Enter\u003C\u002Fkbd>**: Delete all selected folders.\n- **\u003Ckbd>T\u003C\u002Fkbd>**: Unselect all and back to normal mode.\n\n### Range Selection\n\nAfter pressing \u003Ckbd>V\u003C\u002Fkbd> to enter range selection mode:\n\n- Move the cursor with arrow keys, \u003Ckbd>j\u003C\u002Fkbd>\u002F\u003Ckbd>k\u003C\u002Fkbd>, \u003Ckbd>Home\u003C\u002Fkbd>\u002F\u003Ckbd>End\u003C\u002Fkbd>, or page up\u002Fdown\n- All folders between the starting position and current cursor position will be selected\u002Fdeselected\n- Press \u003Ckbd>V\u003C\u002Fkbd> again to exit range selection mode\n\n\u003Ca name=\"options\">\u003C\u002Fa>\n\n## Options\n\n| ARGUMENT                | DESCRIPTION                                                                                                                                                                   |\n| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| -p, --profiles          | Allows you to select the [profile](.\u002Fdocs\u002Fprofiles.md) (set of targets) to use. If no option is specified, the available ones will be listed _(**node** by default)_.         |\n| --config                | Path to a custom .npkillrc configuration file. By default, npkill looks first for `.\u002F.npkillrc` and then for `~\u002F.npkillrc`.                                                   |\n| -d, --directory         | Set the directory from which to begin searching. By default, starting-point is .                                                                                              |\n| -D, --delete-all        | Automatically delete all folders that are found. Suggested to be used together with `-x`.                                                                                     |\n| -e, --hide-errors       | Hide errors if any                                                                                                                                                            |\n| -E, --exclude           | Exclude directories from search (directory list must be inside double quotes \"\", each directory separated by ',' ) Example: \"ignore1, ignore2\"                                |\n| -f, --full              | Start searching from the home of the user (example: \"\u002Fhome\u002Fuser\" in linux)                                                                                                    |\n| --size-unit             | Set the unit for displaying folder sizes. _(Available: **auto**, mb, gb)_. With auto, sizes \u003C 1024MB are shown in MB (rounded), larger sizes in GB (with decimals).           |\n| -h, --help, ?           | Show help page                                                                                                                                                                |\n| -nu, --no-check-update  | Don't check for updates on startup                                                                                                                                            |\n| -s, --sort              | Sort results by: `size`, `path` or `age`                                                                                                                                      |\n| -t, --targets           | Disable profiles feature and specify the name of the directories you want to search for. You can define multiple targets separating with comma. Ej. `-t node_modules,.cache`. |\n| -x, --exclude-sensitive | Exclude sensitive directories.                                                                                                                                                |\n| -y                      | Avoid displaying a warning when executing --delete-all.                                                                                                                       |\n| --dry-run               | It does not delete anything (will simulate it with a random delay).                                                                                                           |\n| --json                  | Output results in JSON format at the end of the scan. Useful for automation and scripting.                                                                                    |\n| --json-stream           | Output results in streaming JSON format (one JSON object per line as results are found). Useful for real-time processing.                                                     |\n| -v, --version           | Show npkill version                                                                                                                                                           |\n\n\u003Ca name=\"examples\">\u003C\u002Fa>\n\n## Examples\n\n- Search **node_modules** directories in your _projects_ directory:\n\n```bash\nnpkill -d ~\u002Fprojects\n\n# other alternative:\ncd ~\u002Fprojects\nnpkill\n```\n\n- List **node_modules** in your _projects_ directory, excluding the ones in _progress_ and _ignore-this_ directories:\n\n```bash\nnpkill -d 'projects' --exclude \"progress, ignore-this\"\n```\n\n- Automatically delete all node_modules that have sneaked into your backups:\n\n```bash\nnpkill -d ~\u002Fbackups\u002F --delete-all\n```\n\n- Get results in JSON format for automation or further processing:\n\n```bash\nnpkill --json > results.json\n```\n\n- Stream results in real-time as JSON (useful for monitoring or piping to other tools):\n\n```bash\nnpkill --json-stream | jq '.'\n```\n\n- Save only successful results to a file, ignoring errors:\n\n```bash\nnpkill --json-stream 2>\u002Fdev\u002Fnull | jq -s '.' > clean-results.json\n```\n\n\u003Ca name=\"json-output\">\u003C\u002Fa>\n\n## JSON Output\n\nNpkill supports JSON output formats for automation and integration with other tools:\n\n- **`--json`**: Output all results as a single JSON object at the end of the scan\n- **`--json-stream`**: Output each result as a separate JSON object in real-time\n\nFor detailed documentation, examples, and TypeScript interfaces, see [JSON Output Documentation](.\u002Fdocs\u002Fjson-output.md).\n\n**Quick Examples:**\n\n```bash\n# Get all results as JSON\nnpkill --json > results.json\n\n# Process results in real-time\nnpkill --json-stream | jq '.result.path'\n\n# Find directories larger than 100MB\nnpkill --json | jq '.results[] | select(.size > 104857600)'\n```\n\n\u003Ca name=\"setup-locally\">\u003C\u002Fa>\n\n# :pager: Set Up Locally\n\n```bash\n# -- First, clone the repository\ngit clone https:\u002F\u002Fgithub.com\u002Fvoidcosmos\u002Fnpkill.git\n\n# -- Navigate to the dir\ncd npkill\n\n# -- Install dependencies\nnpm install\n\n# -- And run!\nnpm run start\n\n\n# -- If you want to run it with some parameter, you will have to add \"--\" as in the following example:\nnpm run start -- -f -e\n```\n\n\u003Ca name=\"API\">\u003C\u002Fa>\n\n# :bookmark_tabs: API\n\nThe api allows you to interact with npkill from node to create your own implementations in your scripts (automations, for example).\n\nYou can check the basic API [here](.\u002FAPI.md) or on the web (comming soon).\n\n\u003Ca name=\"roadmap\">\u003C\u002Fa>\n\n# :crystal_ball: Roadmap\n\n- [x] Release 0.1.0 !\n- [x] Improve code\n  - [x] Improve performance\n  - [ ] Improve performance even more!\n- [x] Sort results by size and path\n- [x] Allow the search for other types of directories (targets)\n- [ ] Reduce dependencies to be a more minimalist module\n- [ ] Allow to filter by directories that have not been used in a period of time\n- [ ] Create option for displaying directories in tree format\n- [x] Add some menus\n- [x] Add log service\n- [ ] Periodic and automatic cleaning (?)\n\n\u003Ca name=\"known-bugs\">\u003C\u002Fa>\n\n# :bug: Known bugs :bug:\n\n- Sometimes, CLI is blocked while folder is deleting.\n- Sorting, especially by routes, can slow down the terminal when there are many results at the same time.\n- Sometimes, size calculations are higher than they should be.\n- (SOLVED) Performance issues when searching from high level directories (like \u002F in linux).\n- (SOLVED) Sometimes text collapses when updating the cli.\n- (SOLVED) Analyzing the size of the directories takes longer than it should.\n\n> If you find any bugs, don't hesitate and open an issue :)\n\n\u003Ca name=\"contributing\">\u003C\u002Fa>\n\n# :revolving_hearts: Contributing\n\nIf you want to contribute check the [CONTRIBUTING.md](.github\u002FCONTRIBUTING.md)\n\n\u003Ca name=\"donations\">\u003C\u002Fa>\n\n# :coffee: Buy us a coffee\n\n\u003Cimg align=\"right\" width=\"300\" src=\"https:\u002F\u002Fnpkill.js.org\u002Fimg\u002Fcat-donation-cup.png\">\nWe have developed npkill in our free time, because we are passionate about the programming sector.\nTomorrow we would like to dedicate ourselves to this, but first, we have a long way to go.\n\nWe will continue to do things anyway, but donations are one of the many ways to support what we do.\n\n\u003Cspan class=\"badge-opencollective\">\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Fnpkill\u002Fcontribute\" title=\"Donate to this project using Open Collective\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fopen%20collective-donate-green.svg\" alt=\"Open Collective donate button\" \u002F>\u003C\u002Fa>\u003C\u002Fspan>\n\n### Thanks!!\n\n## A huge thank you to our backers :heart:\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Fnpkill#backers\" target=\"_blank\">\u003Cimg width=\"535\" src=\"https:\u002F\u002Fopencollective.com\u002Fnpkill\u002Ftiers\u002Fbacker.svg?width=535\">\u003C\u002Fa>\n\n---\n\n### Crypto alternative\n\n- btc: 1ML2DihUoFTqhoQnrWy4WLxKbVYkUXpMAX\n- bch: 1HVpaicQL5jWKkbChgPf6cvkH8nyktVnVk\n- eth: 0x7668e86c8bdb52034606db5aa0d2d4d73a0d4259\n\n\u003Ca name=\"license\">\u003C\u002Fa>\n\n# :scroll: License\n\nMIT © [Nya García Gallardo](https:\u002F\u002Fgithub.com\u002FNyaGarcia) and [Juan Torres Gómez](https:\u002F\u002Fgithub.com\u002Fzaldih)\n\n:cat::baby_chick:\n\n---\n","npkill 是一个用于查找并删除系统中旧且占用空间大的 node_modules 目录的工具。其核心功能包括列出所有 node_modules 文件夹及其占用的空间大小，用户可以选择性地删除这些文件夹以释放磁盘空间。该工具采用 TypeScript 编写，搜索速度快，并且几乎不依赖外部库，操作简单直观。适用于需要清理开发环境中累积的大量 node_modules 的场景，帮助开发者更高效地管理项目依赖和存储空间。",2,"2026-06-11 03:26:57","top_topic"]