Skip to main content
uv pip list displays installed packages in a human-readable format. It is similar to pip list but offers additional output formats and faster performance.

Usage

# List all packages
uv pip list

# List in JSON format
uv pip list --format json

# List outdated packages
uv pip list --outdated

# List editable packages only
uv pip list --editable

Arguments

Filtering Options

-e, --editable
Show only editable packages.
uv pip list --editable
--exclude-editable
Exclude editable packages from output.
uv pip list --exclude-editable
--exclude
package[]
Exclude specific packages from output.
uv pip list --exclude setuptools --exclude wheel
--outdated
List outdated packages with available updates.Shows both installed and latest versions.
uv pip list --outdated

Output Format

--format
string
Output format: columns, freeze, or json.
  • columns: Human-readable table (default)
  • freeze: pip freeze format
  • json: Machine-readable JSON
Default: columns
uv pip list --format json
uv pip list --format freeze

Python Environment

-p, --python
string
Python interpreter from which to list packages.By default, lists from virtual environment or system Python if no venv is found.
uv pip list --python 3.11
uv pip list --python /path/to/python
Environment: UV_PYTHON
--system
List packages from system Python, ignoring virtual environments.
uv pip list --system
Environment: UV_SYSTEM_PYTHON
-t, --target
path
List packages from a --target directory.
uv pip list --target ./libs
--prefix
path
List packages from a --prefix directory.
uv pip list --prefix /opt/myapp

Validation

--strict
Validate the environment, detecting packages with missing dependencies.
uv pip list --strict

Index Options

--index
url[]
Package indexes to check for updates (for --outdated).
uv pip list --outdated --index https://pypi.org/simple
Environment: UV_INDEX
--default-index
url
Default package index (for --outdated).
uv pip list --outdated --default-index https://private.pypi.org/simple
Environment: UV_DEFAULT_INDEX
-i, --index-url
url
Deprecated: Use --default-index instead.Environment: UV_INDEX_URL
--extra-index-url
url[]
Deprecated: Use --index instead.Environment: UV_EXTRA_INDEX_URL
Additional locations to search for packages (for --outdated).
uv pip list --outdated --find-links ./wheels
Environment: UV_FIND_LINKS
--no-index
Ignore package indexes (for --outdated).
uv pip list --outdated --no-index --find-links ./wheels
--index-strategy
string
Index selection strategy: first-index, unsafe-first-match, or unsafe-best-match.Default: first-indexEnvironment: UV_INDEX_STRATEGY
--keyring-provider
string
Keyring provider for authentication: disabled, subprocess.Default: disabledEnvironment: UV_KEYRING_PROVIDER

Version Constraints

--exclude-newer
date
Exclude packages uploaded after the specified date (for --outdated).
uv pip list --outdated --exclude-newer 2024-01-01
Environment: UV_EXCLUDE_NEWER
--exclude-newer-package
package=date[]
Exclude specific packages uploaded after dates (for --outdated).
uv pip list --outdated --exclude-newer-package "numpy=2024-01-01"
--prerelease
string
Pre-release handling (for --outdated): disallow, allow, if-necessary, explicit, or if-necessary-or-explicit.Default: if-necessary-or-explicitEnvironment: UV_PRERELEASE

Cache Options

--refresh
Refresh all cached data (for --outdated).
uv pip list --outdated --refresh
--refresh-package
package[]
Refresh cached data for specific packages (for --outdated).
uv pip list --outdated --refresh-package numpy

Output Formats

Columns (Default)

Human-readable table format:
Package               Version
--------------------- ---------
certifi               2024.2.2
charset-normalizer    3.3.2
idna                  3.6
requests              2.31.0
urllib3               2.2.1

Freeze Format

Same as uv pip freeze:
certifi==2024.2.2
charset-normalizer==3.3.2
idna==3.6
requests==2.31.0
urllib3==2.2.1

JSON Format

Machine-readable JSON:
[
  {
    "name": "certifi",
    "version": "2024.2.2"
  },
  {
    "name": "charset-normalizer",
    "version": "3.3.2"
  },
  {
    "name": "requests",
    "version": "2.31.0",
    "editable_project_location": "/path/to/requests"
  }
]

Outdated Format

With --outdated, shows available updates:
Package     Version  Latest   Type
----------- -------- -------- -----
requests    2.30.0   2.31.0   wheel
numpy       1.24.0   1.26.0   wheel

Examples

Basic Usage

# List all packages
uv pip list

# List with line numbers
uv pip list | nl

# Count packages
uv pip list --format freeze | wc -l

Filter Output

# Show only editable packages
uv pip list --editable

# Exclude editable packages
uv pip list --exclude-editable

# Exclude specific packages
uv pip list --exclude pip --exclude setuptools

Different Formats

# Human-readable table
uv pip list

# Freeze format
uv pip list --format freeze

# JSON format
uv pip list --format json

# Pretty-print JSON
uv pip list --format json | jq

Check for Updates

# List outdated packages
uv pip list --outdated

# Outdated in JSON
uv pip list --outdated --format json

# With custom index
uv pip list --outdated --index https://private.pypi.org/simple

Specific Environment

# From specific Python
uv pip list --python 3.11

# From system Python
uv pip list --system

# From target directory
uv pip list --target ./libs

Process with Tools

# Search for package
uv pip list --format freeze | grep requests

# Export to JSON file
uv pip list --format json > packages.json

# Count outdated packages
uv pip list --outdated --format freeze | wc -l

# Check for specific outdated package
uv pip list --outdated --format freeze | grep numpy

Use Cases

Audit Installed Packages

# View all packages
uv pip list

# Check for outdated dependencies
uv pip list --outdated

Generate Reports

# JSON report for tooling
uv pip list --format json > packages.json

# Freeze format for requirements
uv pip list --format freeze > requirements.txt

Compare Environments

# Export both environments
uv pip list --format json > local.json
uv pip list --python /path/to/prod/python --format json > prod.json

# Compare with jq
jq -s '.[0] - .[1]' local.json prod.json

CI/CD Health Checks

# Check for outdated packages in CI
if uv pip list --outdated --format freeze | grep -q .; then
  echo "Outdated packages found"
  uv pip list --outdated
fi

Find Development Packages

# List editable installs (usually dev packages)
uv pip list --editable

Differences from pip list

uv pip list is largely compatible with pip list:
# pip command
pip list

# Equivalent uv command
uv pip list

Key Differences

  1. Performance: uv is faster, especially for --outdated
  2. Default format: Both use columns by default
  3. JSON schema: Slightly different structure
  4. Index options: uv uses --index instead of --extra-index-url

Unsupported pip Options

Most pip list options are supported. Notable exceptions:
  • --uptodate: Not implemented (inverse of --outdated)
  • --user: Use --system or virtual environments
  • Some legacy pip list behaviors

Comparison with uv pip freeze

Featureuv pip listuv pip freeze
Default formatTable (columns)requirements.txt
Formatscolumns, freeze, jsonText only
Use caseViewing/inspectionReproducible installs
Outdated checkYesNo
EditablesShows installedShows source paths
# For viewing
uv pip list

# For requirements files
uv pip freeze > requirements.txt

# List can also output freeze format
uv pip list --format freeze > requirements.txt

Build docs developers (and LLMs) love