You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A fast, cross-platform CLI tool written in Rust that lists which package managers are installed on the current machine, reports their version and global packages directory (with provenance), and can enumerate what each has installed.
Each line follows command # name # version # packages_dir (source). The source in parentheses describes where the path came from:
Source
Meaning
$VAR_NAME
Value of a specific environment variable
python sysconfig
Result of sysconfig.get_path('purelib')
~/.config/bin/config.json
Value read from a config file
default
Hardcoded OS-appropriate fallback
The packages directory (and its source) are omitted when the manager has no fixed global location.
Example output of --list mode
# System
scoop # Scoop # v0.5.3 # C:\Users\you\scoop\apps (default)
There aren't any apps installed.
bin # bin # 0.23.1 # D:\Development\bin (~/.config/bin/config.json)
Path Version URL Status
D:\Development\bin\bin.exe v0.23.1 github.com/marcosnils/bin OK
D:\Development\bin\doggo.exe v1.1.2 https://github.com/mr-karan/doggo OK
With --list --json each entry gains a "packages" array (and "list_error" when --verbose is set and listing failed).
Development build
cargo build
# binary at target/debug/pmls (pmls.exe on Windows)
Supported package managers
System β Windows
Manager
Command
List command
Chocolatey
choco
choco list --local-only
Scoop
scoop
scoop list
winget
winget
winget list --disable-interactivity
NuGet CLI
nuget
β
System β Linux
Manager
Command
List command
apt
apt
apt list --installed
apt-get
apt-get
apt list --installed
pacman
pacman
pacman -Q
dnf
dnf
dnf list installed
yum
yum
yum list installed
zypper
zypper
zypper packages --installed-only
apk
apk
apk list --installed
snap
snap
snap list
Flatpak
flatpak
flatpak list
Portage
emerge
β
eopkg
eopkg
eopkg list-installed
xbps
xbps-query
xbps-query -l
Nala
nala
nala list --installed
GNU Guix
guix
guix package --list-installed
System β FreeBSD / Termux
Manager
Command
List command
pkg
pkg
pkg info
pkgin
pkgin
pkgin list
System β macOS
Manager
Command
List command
Homebrew
brew
brew list
MacPorts
port
port installed
System β cross-platform
Manager
Command
List command
bin
bin
bin ls
Universal / polyglot
Manager
Command
List command
Nix
nix
nix profile list
Helm
helm
helm list -A
asdf
asdf
asdf list
mise
mise
mise ls
Toolchain / version managers
These managers govern which runtime version is active rather than installing packages; their --list output enumerates installed runtime versions.
Manager
Command
Ecosystem
List command
rustup
rustup
Rust
rustup toolchain list
pyenv
pyenv
Python
pyenv versions
rbenv
rbenv
Ruby
rbenv versions
RVM
rvm
Ruby
rvm list
Volta
volta
Node.js
volta list --format plain
nodenv
nodenv
Node.js
nodenv versions
SDKMAN!
sdk
JVM
sdk list
jenv
jenv
Java
jenv versions
goenv
goenv
Go
goenv versions
Language / ecosystem
Node.js / JavaScript
Manager
Command
List command
npm
npm
npm -g ls --depth=0
Yarn
yarn
yarn global list --depth=0
pnpm
pnpm
pnpm -g ls --depth=0
Bun
bun
bun pm -g ls
Deno
deno
deno info
nvm
nvm
nvm list
fnm
fnm
fnm list
Corepack
corepack
β
Python
Manager
Command
List command
pip
pip
pip list
pip3
pip3
pip3 list
pipenv
pipenv
β
uv
uv
uv tool list
Poetry
poetry
poetry env list
PDM
pdm
pdm list
Hatch
hatch
hatch env show
Conda
conda
conda list
Mamba
mamba
mamba list
pixi
pixi
pixi list
Ruby
Manager
Command
List command
RubyGems
gem
gem list
Bundler
bundle
bundle list
PHP
Manager
Command
List command
Composer
composer
composer global show
.NET
Manager
Command
List command
dotnet CLI
dotnet
dotnet tool list -g
Rust
Manager
Command
List command
Cargo
cargo
cargo install --list
rustup
rustup
rustup toolchain list
Go
Manager
Command
List command
Go toolchain
go
go version -m on each binary in GOBIN
goenv
goenv
goenv versions
Java / JVM
Manager
Command
List command
Maven
mvn
β (project-scoped)
Gradle
gradle
β (project-scoped)
sbt
sbt
β (project-scoped)
Leiningen
lein
β (project-scoped)
Coursier
cs
cs list
Mill
mill
β (project-scoped)
SDKMAN!
sdk
sdk list
jenv
jenv
jenv versions
C / C++
Manager
Command
List command
vcpkg
vcpkg
vcpkg list
Conan
conan
conan list
Elixir
Manager
Command
List command
Mix / Hex
mix
mix hex.info
Haskell
Manager
Command
List command
Stack
stack
stack ls dependencies
Cabal
cabal
cabal list --installed
OCaml
Manager
Command
List command
opam
opam
opam list
Nim
Manager
Command
List command
Nimble
nimble
nimble list --installed
Lua
Manager
Command
List command
LuaRocks
luarocks
luarocks list
Perl
Manager
Command
List command
cpanminus
cpanm
β
Dart / Flutter
Manager
Command
List command
Flutter
flutter
β
Swift
Manager
Command
List command
Mint
mint
mint list
Maven, Gradle, sbt, Leiningen, and Mill do not have meaningful global package lists β their dependencies are per-project β so --list produces no output for them.
How it works
For each known manager, the tool probes PATH using where (Windows) or which (Unix).
If found, it runs <command> <version_flag> to retrieve the version string, routing through cmd /C on Windows so .cmd / .bat shims (npm, yarn, pnpm, β¦) resolve correctly.
The packages directory is resolved at runtime. Resolution is source-aware: env vars are checked first, then config files are parsed (e.g. bin reads ~/.config/bin/config.json via simd-json), then OS-appropriate defaults are used. The source is reported alongside the path.