#cargo #node #cli

app polykill

Lightweight command line utility for removing dependencies and build artifacts from unused projects

30 releases (18 stable)

1.6.0 Dec 5, 2025
1.5.2 May 26, 2025
1.5.0 Mar 26, 2025
1.4.0 Dec 14, 2024
0.5.3 May 24, 2023

#246 in Command line utilities

MIT license

45KB
1K SLoC

Polykill

Crates.io Crates.io (Downloads) Crates.io Size

Like polyfill - but more violent

Lightweight command line utility for removing unwanted dependencies and build artifacts from local projects. Inspired by npkill.

Supported project types:

  • Node
  • Cargo
  • .NET
  • Go
  • Gradle
  • Mix
  • Composer
  • Misc. (see "Additional Information")

Installation

Cargo

cargo install polykill

Homebrew

brew tap bdeering1/polykill
brew install polykill

Nix (Flake)

nix shell github:Bdeering1/polykill
# OR
nix run github:Bdeering1/polykill

Usage

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
-a, --auto Automatically clean up older project artifacts (no menu)
-t, --threshold Minimum threshold for automatic artifact cleanup (days since last modified)
      --register Register system service to run polykill automatically
      --unregister Remove registered system service
-i, --interval Interval (in days) to run system service on
      --status Check if a polykill service exists, print info if found
-s, --skip-empty Hide projects with zero possible disk savings
-u, --unsorted Don't sort projects
      --no-vcs Include projects without version control (this will slow down search)
-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

Dependencies

~3–14MB
~121K SLoC