Scope and highlights

uv is described as an extremely fast Python package and project manager, written in Rust and backed by Astral. It is intended as a single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine and virtualenv, and is stated to be 10-100x faster than pip. Alongside project management it runs scripts, installs and manages Python versions, and runs or installs tools published as Python packages. It is disk-space efficient, using a global cache for dependency deduplication.

  • Replaces pip, pip-tools, pipx, poetry, pyenv, twine and virtualenv
  • 10-100x faster than pip
  • Comprehensive project management with a universal lockfile
  • Scripts with inline dependency metadata
  • Installs and manages Python versions
  • pip-compatible interface with a familiar CLI
  • Cargo-style workspaces for scalable projects
  • Global cache for dependency deduplication
  • Supports macOS, Linux and Windows

Sources: uv, Astral Docs

Project management

uv manages Python projects that declare their dependencies in a pyproject.toml file. A project is created with uv init, which generates a .gitignore, .python-version, pyproject.toml, README.md and a src package directory, along with a Git directory. The first time a project command such as uv run, uv sync or uv lock is used, uv creates a virtual environment in .venv and a uv.lock file at the project root. uv.lock is a cross-platform lockfile recording exact resolved versions and is intended to be checked into version control for reproducible installations.

  • uv init — create a new project
  • uv add / uv remove — manage dependencies
  • uv run — run commands in the project environment
  • uv lock — resolve and write uv.lock
  • uv sync — install the locked dependencies
  • pyproject.toml also holds uv configuration under [tool.uv]

Sources: Working on projects | uv, uv

Scripts and tools

uv manages dependencies and environments for single-file scripts: uv add --script writes inline metadata declaring a script's dependencies, and uv run then executes the script in an isolated virtual environment. For command-line applications published as Python packages, uv offers behaviour similar to pipx. The uvx command, an alias for uv tool run, invokes a tool in an ephemeral environment without installing it, while uv tool install adds a tool persistently.

  • uv add --script — add inline dependency metadata
  • uv run example.py — run a script in an isolated environment
  • uvx — run a tool without installing it
  • uv tool install — install a command-line tool

Sources: uv, Using tools | uv

Installation

uv provides an official standalone installer for macOS, Linux and Windows, and the installation script may be inspected before use. A specific version can be requested by including it in the installer URL, and binaries can also be downloaded directly from GitHub. uv is additionally published to PyPI and to several package managers. When installed via the standalone installer, uv can update itself with uv self update; with other installation methods self-updates are disabled and the package manager's upgrade method is used instead.

  • macOS and Linux: curl -LsSf https://astral.sh/uv/install.sh | sh
  • Windows: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • PyPI: pipx install uv or pip install uv
  • Homebrew: brew install uv
  • MacPorts: sudo port install uv
  • WinGet: winget install --id=astral-sh.uv -e
  • Scoop: scoop install main/uv
  • Docker image at ghcr.io/astral-sh/uv
  • GitHub Releases binaries
  • Cargo: cargo install --locked uv

Sources: Installation | uv, uv

Place in the Astral toolchain

uv is one of Astral's open-source Python projects, alongside the Ruff linter and formatter and the ty type checker and language server, all written in Rust. Astral states its mission as making the Python ecosystem more productive by building high-performance developer tools. The Ruff documentation uses uv in its own tutorial, initialising a project with uv init --lib, adding Ruff as a development dependency with uv add --dev ruff, and running checks through uv run ruff check.

  • uv — Python package and project manager
  • Ruff — Python linter and formatter
  • ty — Python type checker and language server

Sources: Astral Docs, Tutorial | Ruff

Sources

  1. Astral Docs https://docs.astral.sh/ Verified 19 Sep 2026
  2. Tutorial | Ruff https://docs.astral.sh/ruff/tutorial/ Verified 19 Sep 2026
  3. Installation | uv https://docs.astral.sh/uv/getting-started/installation/ Verified 19 Sep 2026
  4. Using tools | uv https://docs.astral.sh/uv/guides/tools/ Verified 19 Sep 2026
  5. Working on projects | uv https://docs.astral.sh/uv/guides/projects/ Verified 19 Sep 2026

Last verified 19 Sep 2026. This entry is compiled from the public web pages listed above. Nothing here is stated that those pages do not, and each of them was read on the date shown.