# uvx.sh: Install Python tools without uv or Python


Astral has released [uvx.sh](https://uvx.sh), a service that generates installation scripts for any Python tool on PyPI. With a single curl or PowerShell command, users can install tools like [ruff](https://pydevtools.com/handbook/reference/ruff.md) or [pytest](https://pydevtools.com/handbook/reference/pytest.md) without having [uv](https://pydevtools.com/handbook/reference/uv.md) or Python already installed on their system.

## How It Works

uvx.sh dynamically generates installation scripts for any PyPI package. The URL pattern is simple:

```
uvx.sh/{package}/install.sh     # macOS/Linux
uvx.sh/{package}/install.ps1    # Windows
```

For example, to install ruff:

```bash
curl -LsSf uvx.sh/ruff/install.sh | sh
```
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://uvx.sh/ruff/install.ps1 | iex"
```
The service installs uv behind the scenes and uses it to run the requested tool. This gives users access to the entire PyPI ecosystem through a single command.

## Installing Specific Versions

Version pinning is supported by adding the version number to the URL:

```bash
curl -LsSf uvx.sh/ruff/0.8.3/install.sh | sh
```

This ensures reproducible installations across different machines or CI environments.

## Advanced Options

The installation scripts accept arguments passed through `sh -s --`:

```bash
# Force installation (overwrite existing)
curl -LsSf uvx.sh/ruff/install.sh | sh -s -- --force

# Install from a specific package index
curl -LsSf uvx.sh/cmake/install.sh | sh -s -- --index https://download.pytorch.org/whl/cpu
```

## Use Cases

uvx.sh is particularly useful for onboarding new developers who don't have Python configured yet. A single command in the README gets them running linters and formatters immediately.

CI/CD pipelines also benefit since build scripts can install tools without managing Python installations or virtual environments. The same approach works for project documentation, where maintainers can provide installation commands that work regardless of the reader's existing setup.

## Comparison with Other Installation Methods

| Method | Requires Python | Requires uv | One Command |
|--------|-----------------|-------------|-------------|
| uvx.sh | No | No | Yes |
| `uv tool install` | No | Yes | Yes |
| `pipx install` | Yes | No | Yes |
| `pip install` | Yes | No | Yes |

uvx.sh provides the most streamlined installation experience when neither uv nor Python is available, making it particularly useful for first-time setup or minimal environments.

## Learn More

- [uvx.sh](https://uvx.sh)
- [How to install Python CLI tools without Python](https://pydevtools.com/handbook/how-to/how-to-install-python-cli-tools-without-python.md)
- [uv Reference Documentation](https://pydevtools.com/handbook/reference/uv.md)
- [uv official documentation](https://docs.astral.sh/uv/)
