uvx.sh: Install Python tools without uv or Python
Astral has released 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 or pytest without having uv 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 # WindowsFor example, to install ruff:
curl -LsSf uvx.sh/ruff/install.sh | shpowershell -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:
curl -LsSf uvx.sh/ruff/0.8.3/install.sh | shThis ensures reproducible installations across different machines or CI environments.
Advanced Options
The installation scripts accept arguments passed through sh -s --:
# 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/cpuUse 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.