resolve
Resolve the full dependency tree for one or more requirements, producing a flat list of pinned package versions.
Requires uv to be installed. See Installation for setup details.
Usage
Arguments
| Argument | Description |
|---|---|
requirements |
One or more PEP 508 requirement strings. Required. |
Arguments are PEP 508 requirement strings — not bare package names.
You can pin or constrain versions with specifiers (e.g., "requests==2.31.0", "flask>=3.0").
A bare name like "requests" is valid and resolves to the latest compatible version.
Quote each requirement in your shell to prevent specifier characters (>, <, !) from being interpreted.
Options
| Option | Type | Default | Description |
|---|---|---|---|
--pre, --prerelease |
flag | off | Include pre-release versions in resolution. |
--python |
string | current | Target Python version (e.g., 3.12). |
--platform |
string | current | Target platform: linux, win32, darwin. |
Cross-platform resolution
By default, peeq resolves for the current host environment.
Use --python and --platform to resolve for a different target:
This evaluates PEP 508 environment markers against the specified target, so platform-conditional dependencies are included or excluded correctly.
Examples
Resolve a single requirement
$ peeq resolve "flask>=3.0"
Resolved 8 packages:
- blinker==1.9.0
- click==8.3.1
- colorama==0.4.6
- flask==3.1.3
- itsdangerous==2.2.0
- jinja2==3.1.6
- markupsafe==3.0.3
- werkzeug==3.1.8
Solver: uv
Resolve multiple requirements
$ peeq resolve "requests>=2.31.0" "flask>=3.0"
Resolved 13 packages:
- blinker==1.9.0
- certifi==2026.2.25
- charset-normalizer==3.4.7
- click==8.3.1
- colorama==0.4.6
- flask==3.1.3
- idna==3.11
- itsdangerous==2.2.0
- jinja2==3.1.6
- markupsafe==3.0.3
- requests==2.33.1
- urllib3==2.6.3
- werkzeug==3.1.8
Solver: uv
Resolve for a different platform
$ peeq resolve "requests>=2.31.0" --python 3.12 --platform linux
Resolved 5 packages:
- certifi==2026.2.25
- charset-normalizer==3.4.7
- idna==3.11
- requests==2.33.1
- urllib3==2.6.3
Solver: uv
Note that colorama is absent — it is only required on Windows.
Handle conflicts
When requirements are incompatible, resolve exits with an error and displays the conflicting constraints:
$ peeq resolve "django>=4.2,<5" "django>=5.0"
CONFLICT: (unknown)
Because you require django>=4.2,<5 and django>=5.0, we can conclude
that your requirements are unsatisfiable.
Use conflicts for the same behavior with pre-release versions included by default.