> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/astral-sh/uv/llms.txt
> Use this file to discover all available pages before exploring further.

# uv python list

> List available Python installations

## Synopsis

```bash theme={null}
uv python list [OPTIONS] [REQUEST]
```

## Description

List the available Python installations.

By default, installed Python versions and the downloads for latest available patch version of each supported Python major version are shown.

Use `--managed-python` to view only managed Python versions.

Use `--no-managed-python` to omit managed Python versions.

Use `--all-versions` to view all available patch versions.

Use `--only-installed` to omit available downloads.

## Arguments

### `[REQUEST]`

A Python request to filter by.

When provided, only Python installations matching the request will be displayed.

See `uv help python` to view supported request formats.

**Examples:**

* `3.12` - Show only Python 3.12.x versions
* `cpython` - Show only CPython versions
* `pypy@3.10` - Show only PyPy 3.10 versions

## Options

### Version Filtering

#### `--all-versions`

List all Python versions, including old patch versions.

By default, only the latest patch version is shown for each minor version.

**Example:** Shows 3.12.0, 3.12.1, 3.12.2, 3.12.3, 3.12.4 instead of just 3.12.4

### Platform Filtering

#### `--all-platforms`

List Python downloads for all platforms.

By default, only downloads for the current platform are shown.

**Example:** On macOS, this will also show Linux and Windows distributions.

#### `--all-arches`

List Python downloads for all architectures.

By default, only downloads for the current architecture are shown.

**Aliases:** `--all-architectures`

**Example:** On ARM64, this will also show x86\_64 distributions.

### Installation Filtering

#### `--only-installed`

Only show installed Python versions.

By default, installed distributions and available downloads for the current platform are shown.

* **Conflicts with:** `--only-downloads`

#### `--only-downloads`

Only show available Python downloads.

By default, installed distributions and available downloads for the current platform are shown.

* **Conflicts with:** `--only-installed`

### Display Options

#### `--show-urls`

Show the URLs of available Python downloads.

By default, these display as `<download available>`.

#### `--output-format <OUTPUT_FORMAT>`

Select the output format.

* **Type:** Enum
* **Default:** `text`
* **Values:**
  * `text` - Plain text (for humans)
  * `json` - JSON (for computers)

### Custom Downloads

#### `--python-downloads-json-url <PYTHON_DOWNLOADS_JSON_URL>`

URL pointing to JSON of custom Python installations.

* **Type:** String

## Output Format

### Text Format (Default)

```
cpython-3.13.1-macos-aarch64-none     <download available>
cpython-3.12.8-macos-aarch64-none     /Users/user/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/bin/python3.12
cpython-3.11.11-macos-aarch64-none    <download available>
cpython-3.10.16-macos-aarch64-none    /Users/user/.local/share/uv/python/cpython-3.10.16-macos-aarch64-none/bin/python3.10
cpython-3.9.21-macos-aarch64-none     <download available>
cpython-3.8.20-macos-aarch64-none     <download available>
pypy-3.10-macos-aarch64-none          <download available>
```

Installed versions show their installation path, while available downloads show `<download available>`.

### Text Format with URLs

```bash theme={null}
uv python list --show-urls
```

```
cpython-3.13.1-macos-aarch64-none     https://github.com/astral-sh/python-build-standalone/releases/download/20250107/cpython-3.13.1%2B20250107-aarch64-apple-darwin-install_only.tar.gz
cpython-3.12.8-macos-aarch64-none     /Users/user/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/bin/python3.12
cpython-3.11.11-macos-aarch64-none    https://github.com/astral-sh/python-build-standalone/releases/download/20250107/cpython-3.11.11%2B20250107-aarch64-apple-darwin-install_only.tar.gz
```

### JSON Format

```bash theme={null}
uv python list --output-format json
```

```json theme={null}
[
  {
    "key": "cpython-3.13.1-macos-aarch64-none",
    "version": "3.13.1",
    "implementation": "cpython",
    "os": "macos",
    "arch": "aarch64",
    "libc": "none",
    "installed": false,
    "download_url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250107/cpython-3.13.1%2B20250107-aarch64-apple-darwin-install_only.tar.gz"
  },
  {
    "key": "cpython-3.12.8-macos-aarch64-none",
    "version": "3.12.8",
    "implementation": "cpython",
    "os": "macos",
    "arch": "aarch64",
    "libc": "none",
    "installed": true,
    "path": "/Users/user/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/bin/python3.12"
  }
]
```

## Examples

### List all available Python versions

```bash theme={null}
uv python list
```

Shows installed versions and latest patch of each minor version available for download.

### List only installed versions

```bash theme={null}
uv python list --only-installed
```

### List all patch versions

```bash theme={null}
uv python list --all-versions
```

Shows every patch release (3.12.0, 3.12.1, 3.12.2, etc.) instead of just the latest.

### Filter by version

```bash theme={null}
uv python list 3.12
```

Shows only Python 3.12.x versions.

### Filter by implementation

```bash theme={null}
uv python list pypy
```

Shows only PyPy installations and downloads.

### List with download URLs

```bash theme={null}
uv python list --show-urls
```

### List all platforms and architectures

```bash theme={null}
uv python list --all-platforms --all-arches
```

Shows distributions for all operating systems and CPU architectures.

### Get machine-readable output

```bash theme={null}
uv python list --output-format json
```

### List only downloads (exclude installed)

```bash theme={null}
uv python list --only-downloads
```

### Check if a specific version is installed

```bash theme={null}
uv python list 3.12.4 --only-installed
```

### List all installed PyPy versions

```bash theme={null}
uv python list pypy --only-installed
```

### Export to JSON file

```bash theme={null}
uv python list --output-format json > python-versions.json
```

## Use Cases

### Check what's installed

```bash theme={null}
uv python list --only-installed
```

Quickly see which Python versions are currently installed on your system.

### Find available versions before installing

```bash theme={null}
uv python list 3.13 --only-downloads
```

See what Python 3.13 versions are available for download.

### Audit Python installations

```bash theme={null}
uv python list --all-versions --only-installed --output-format json
```

Generate a complete inventory of installed Python versions in machine-readable format.

### Check cross-platform availability

```bash theme={null}
uv python list 3.12 --all-platforms --show-urls
```

Verify that a specific Python version is available for all platforms you need to support.

### Scripting and automation

```bash theme={null}
# Get list of installed Python 3.12 versions
INSTALLED=$(uv python list 3.12 --only-installed --output-format json | jq -r '.[].version')

# Install if not found
if [ -z "$INSTALLED" ]; then
  uv python install 3.12
fi
```

## See Also

* [`uv python install`](python-install.mdx) - Download and install Python versions
* [`uv python find`](python-find.mdx) - Find a Python installation
* [`uv python uninstall`](python-uninstall.mdx) - Uninstall Python versions
* [`uv python pin`](python-pin.mdx) - Pin to a specific Python version
