CLI for resolving package dependencies using real package managers
Go
3
12 commits
updated Jun 28, 2026
CLI tool for resolving package dependencies using real package managers. Part of ecosyste.ms.
Given a package name and registry (or ecosystem), it fetches the package's runtime dependencies from the ecosyste.ms API, creates a temporary project, runs the actual package manager to resolve the full dependency tree, and outputs the result as JSON.
resolve --registry rubygems.org --package rails --version 7.0.0
resolve --ecosystem npm --package express --version 4.21.2
resolve --ecosystem gem --package sinatra --tree
resolve --ecosystem cargo --package serde --before 2024-01-01
| Flag | Description |
|---|---|
--registry | ecosyste.ms registry name (e.g. rubygems.org, npmjs.org) |
--ecosystem | PURL type (e.g. gem, npm, cargo, pypi). Alternative to --registry |
--package | Package name (required) |
--version | Version to resolve (default: latest) |
--tree | Output full dependency tree with PURLs instead of flat map |
--before | Only consider versions published before this date (ISO 8601) |
--manager | Override the package manager (e.g. uv instead of pip) |
--timeout | Timeout in seconds (default: 120) |
--api-key | ecosyste.ms API key (also reads ECOSYSTEMS_API_KEY env var) |
Either --registry or --ecosystem is required.
Flat (default):
{
"connection_pool": "3.0.2",
"redis-client": "0.28.0"
}
Tree (--tree):
[
{
"purl": "pkg:gem/[email protected]",
"name": "redis-client",
"version": "0.28.0",
"deps": [
{
"purl": "pkg:gem/[email protected]",
"name": "connection_pool",
"version": "3.0.2"
}
]
}
]
init and add for each dependency using git-pkgs/managersresolve command to produce the dependency graphnpm, gem, cargo, pypi, golang, maven, packagist, pub, hex, nuget, swift, clojars, hackage, conda, deno, helm, conan
Multiple managers are supported per ecosystem (e.g. npm/yarn/pnpm/bun for npm, pip/uv/poetry for pypi). Use --manager to override the default.
go install github.com/ecosyste-ms/resolve-cli/cmd/resolve@latest
Or build from source:
git clone https://github.com/ecosyste-ms/resolve-cli.git
cd resolve-cli
go build -o resolve ./cmd/resolve
AGPL-3.0-or-later
CLI for resolving package dependencies using real package managers
Go
3
12 commits
updated Jun 28, 2026
CLI tool for resolving package dependencies using real package managers. Part of ecosyste.ms.
Given a package name and registry (or ecosystem), it fetches the package's runtime dependencies from the ecosyste.ms API, creates a temporary project, runs the actual package manager to resolve the full dependency tree, and outputs the result as JSON.
resolve --registry rubygems.org --package rails --version 7.0.0
resolve --ecosystem npm --package express --version 4.21.2
resolve --ecosystem gem --package sinatra --tree
resolve --ecosystem cargo --package serde --before 2024-01-01
| Flag | Description |
|---|---|
--registry | ecosyste.ms registry name (e.g. rubygems.org, npmjs.org) |
--ecosystem | PURL type (e.g. gem, npm, cargo, pypi). Alternative to --registry |
--package | Package name (required) |
--version | Version to resolve (default: latest) |
--tree | Output full dependency tree with PURLs instead of flat map |
--before | Only consider versions published before this date (ISO 8601) |
--manager | Override the package manager (e.g. uv instead of pip) |
--timeout | Timeout in seconds (default: 120) |
--api-key | ecosyste.ms API key (also reads ECOSYSTEMS_API_KEY env var) |
Either --registry or --ecosystem is required.
Flat (default):
{
"connection_pool": "3.0.2",
"redis-client": "0.28.0"
}
Tree (--tree):
[
{
"purl": "pkg:gem/[email protected]",
"name": "redis-client",
"version": "0.28.0",
"deps": [
{
"purl": "pkg:gem/[email protected]",
"name": "connection_pool",
"version": "3.0.2"
}
]
}
]
init and add for each dependency using git-pkgs/managersresolve command to produce the dependency graphnpm, gem, cargo, pypi, golang, maven, packagist, pub, hex, nuget, swift, clojars, hackage, conda, deno, helm, conan
Multiple managers are supported per ecosystem (e.g. npm/yarn/pnpm/bun for npm, pip/uv/poetry for pypi). Use --manager to override the default.
go install github.com/ecosyste-ms/resolve-cli/cmd/resolve@latest
Or build from source:
git clone https://github.com/ecosyste-ms/resolve-cli.git
cd resolve-cli
go build -o resolve ./cmd/resolve
AGPL-3.0-or-later