https://github.com/bdeering1/polykill
Remove dependencies and build artifacts from unused local projects.
https://github.com/bdeering1/polykill
cargo cli dotnet filesystem gradle mix node tools
Last synced: 11 months ago
JSON representation
Remove dependencies and build artifacts from unused local projects.
- Host: GitHub
- URL: https://github.com/bdeering1/polykill
- Owner: Bdeering1
- License: mit
- Created: 2023-04-13T02:49:58.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-05-26T01:48:42.000Z (about 1 year ago)
- Last Synced: 2025-06-23T17:51:05.796Z (about 1 year ago)
- Topics: cargo, cli, dotnet, filesystem, gradle, mix, node, tools
- Language: Rust
- Homepage: https://crates.io/crates/polykill
- Size: 115 KB
- Stars: 12
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Polykill
[](https://crates.io/crates/polykill)
[](https://crates.io/crates/polykill)
[](https://crates.io/crates/polykill)
*Like [polyfill](https://developer.mozilla.org/en-US/docs/Glossary/Polyfill) - but more violent*
Lightweight command line utility for removing unwanted dependencies and build artifacts from local projects. Inspired by [npkill](https://www.npmjs.com/package/npkill).
Supported project types:
- Node
- Cargo
- .NET
- Go
- Gradle
- Mix
- Composer
- Misc. (see "Additional Information")
## Installation
```sh
cargo install polykill
```
## Usage
```sh
polykill [OPTIONS] [DIR]
```
Polykill will recursively search for projects in the provided directory and output a list of all projects found. If no directory is provided, the current directory will be searched.
When the search has completed, navigate the menu using the following controls:
| Key Bind | Action |
| ---------- | ---------------- |
| ↓, ↑, ←, →, h, j, k, l | select project |
| enter, del | remove artifacts |
| esc, q | exit |
**Warning for Node projects:** Some Node applications need their node_modules directory to work and deleting it may break them.
## Options
| Argument | Description |
| ---------------- | --------------------------------------------- |
| -v, --verbose | Verbose output |
| -s, --skip-empty | Hide projects with zero possible disk savings |
| --no-vcs | Include projects without version control (will slow down search) |
| -u, --unsorted | Don't sort projects |
| -h, --help | Print help |
| -V, --version | Print version |
*supported version control systems are: git, svn, and mercurial
## Additional Information
How projects are identified and which files or directories will be removed:
| Type | Identifier(s) | Artifacts |
| --------- | ------------------ | ---------------- |
| Node | package.json | node_modules |
| Cargo | cargo.toml | target |
| .NET | .csproj | bin, obj |
| Go | go.mod | dir(.exe), dir.test(.exe) |
| Gradle | build.gradle(.kts) | build |
| Mix | mix.exs | _build, deps |
| Composer | composer.json | vendor |
| Misc. | bin, build, dist | bin, build, dist |
*dir for go projects is the name of the project directory