Skip to content
SPECIFICTION
Get listed

uv

docs.astral.sh

Free plan WindowsmacOSLinux
Visit docs.astral.sh
Spec score 8.9 #4 of 93 in Package Managers

What it is

uv is a Python package and project manager for Linux, macOS, and Windows. Written in Rust, it manages dependencies and environments, with lockfiles and workspaces, and can install, list, pin, or uninstall Python versions. It also runs scripts with dependencies and runs or installs command-line tools from Python packages. Its pip-compatible interface is intended to cover work done by tools such as pip, pip-tools, pipx, poetry, pyenv, twine, and virtualenv, though its commands do not exactly match those tools. The documentation describes uv as 10–100x faster than pip. It supports source distributions, wheels, requirements.txt, and pylock.toml, as well as offline installation and private registry authentication. For package selection, its default first-index strategy limits candidates to the first index where a package is found. Credentials are not stored in uv.lock, but uv currently stores them in a plaintext file; native system secret storage is an experimental preview. The free plan is free.

Spec sheet

What it does
uv is an extremely fast Python package and project manager written in Rust.Read 29 Sep 2026 · docs.astral.sh
Purpose
uv is an extremely fast Python package and project manager written in Rust.Read 30 Sep 2026 · docs.astral.sh
Intended users
Astral says it builds high-performance developer tools for the Python ecosystem to help developers ship software faster.Read 29 Sep 2026 · astral.sh
Free plan
YesRead 22 Sep 2026 · docs.astral.sh
Integrations
The documentation lists integrations and guides for Docker, Jupyter, marimo, GitHub Actions, GitLab CI/CD, Pre-commit, PyTorch, FastAPI, and several package registries.Read 30 Sep 2026 · docs.astral.sh
Security
uv uses TLS with rustls and bundled Mozilla root certificates by default to verify HTTPS connections.Read 30 Sep 2026 · docs.astral.sh
Maker
Astral says its mission is to make the Python ecosystem more productive by building high-performance developer tools, starting with Ruff.Read 30 Sep 2026 · astral.sh
Consolidated tooling
uv is designed to replace tools including pip, pip-tools, pipx, poetry, pyenv, twine, and virtualenv.Read 30 Sep 2026 · docs.astral.sh
Credential storage
uv currently stores credentials in a plaintext file; native system secret storage is available as an experimental preview feature.Read 29 Sep 2026 · docs.astral.sh
Credentials
Credentials are not stored in uv.lock; uv supports credentials through environment variables, URLs, netrc, and keyring.Read 30 Sep 2026 · docs.astral.sh
Dependency confusion protection
By default, uv's first-index strategy limits package candidates to the first index where a package is found, to help prevent dependency confusion attacks.Read 30 Sep 2026 · docs.astral.sh
Dependency resolution
YesRead 22 Sep 2026 · docs.astral.sh
Distribution
uv can be installed with a standalone installer, PyPI, Homebrew, MacPorts, WinGet, Scoop, Docker, GitHub Releases, or Cargo.Read 29 Sep 2026 · docs.astral.sh
Install methods
uv offers standalone installers and is also available through PyPI, Homebrew, MacPorts, WinGet, Scoop, Docker, GitHub Releases, and Cargo.Read 30 Sep 2026 · docs.astral.sh
Lockfile support
YesRead 22 Sep 2026 · docs.astral.sh
Offline installation
YesRead 22 Sep 2026 · docs.astral.sh
Package formats
source distributions,wheels,requirements.txt,pylock.tomlRead 22 Sep 2026 · docs.astral.sh
Performance
The documentation describes uv as 10–100x faster than pip.Read 29 Sep 2026 · docs.astral.sh
pip compatibility
uv provides a pip-compatible interface for common pip, pip-tools, and virtualenv commands.Read 30 Sep 2026 · docs.astral.sh
Platform limits
The documentation lists macOS, Linux, and Windows support; the PyPI installation note says platforms without a prebuilt wheel require a Rust toolchain to build from source.Read 30 Sep 2026 · docs.astral.sh
Private registry auth
YesRead 22 Sep 2026 · docs.astral.sh
Project management
uv manages project dependencies and environments and supports lockfiles and workspaces.Read 29 Sep 2026 · docs.astral.sh
Projects
uv manages project dependencies and environments and supports lockfiles and workspaces.Read 30 Sep 2026 · docs.astral.sh
Python versions
uv installs and manages Python versions, including switching between versions.Read 30 Sep 2026 · docs.astral.sh
Scripts and tools
uv manages dependencies for single-file scripts and runs or installs command-line tools published as Python packages.Read 30 Sep 2026 · docs.astral.sh
Speed
The documentation describes uv as 10–100x faster than pip.Read 30 Sep 2026 · docs.astral.sh
Supported platforms
macOS,Linux,Windows,CPython,PyPy,Pyodide,GraalPyRead 22 Sep 2026 · docs.astral.sh
Tool replacement
uv can replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and other tools.Read 29 Sep 2026 · docs.astral.sh
Workspace support
YesRead 22 Sep 2026 · docs.astral.sh

Plans and prices

uv Free Open-source Python package and project manager Read 30 Sep 2026 · docs.astral.sh

Every uv plan and price →

Strong points and limits

Strong points

  • Manages dependencies, environments, lockfiles, and workspaces
  • Installs and manages Python versions
  • Supports offline installation and private registries
  • Free plan: free

Limits

  • Credentials currently use a plaintext file
  • Native system secret storage is experimental
  • Some platforms require Rust to build from source

Who it suits

uv suits Python developers who want one tool for package and project management, Python versions, scripts, and command-line tools. Its lockfile, workspace, offline installation, and private registry support may also suit teams managing projects across supported platforms.

uv in depth

Read the full write-up

Overview

uv is Astral’s Rust-based package and project manager for Python, best suited to developers who want to consolidate dependency, environment, Python-version, script, and command-line-tool workflows. Its scope is unusually broad for a free tool, but its imperfect compatibility with familiar commands and plaintext credential storage are meaningful trade-offs.

Rather than assembling several separate tools, a developer can use uv for tasks often handled by pip, pip-tools, pipx, Poetry, pyenv, twine, and virtualenv. The documentation describes it as 10–100x faster than pip; that is a stated comparison, not a promise for every workload. Its pip-compatible interface also does not exactly reproduce the commands and behavior of the tools it draws on, so established workflows may need adjustment.

Compare it with our Python Package Managers and broader Package Managers directories.

Key features

Projects and dependencies

uv resolves dependencies and manages project environments, lockfiles, and workspaces. It handles source distributions and wheels, as well as requirements.txt and pylock.toml. Private registry authentication and offline installation support make it a practical option for internal package sources or environments where network access is restricted.

Its default first-index strategy limits package candidates to the first index where a package is found, helping reduce dependency-confusion risk. Credentials are excluded from uv.lock, and authentication can use environment variables, URLs, netrc, or keyring. The security caveat is storage: uv currently keeps credentials in a plaintext file. Native system secret storage exists only as an experimental preview, so teams with strict credential-handling requirements should weigh that limitation before adopting it.

Python versions, scripts, and tools

uv can install, list, pin, and uninstall Python versions, and it supports CPython, PyPy, Pyodide, and GraalPy. It can also run scripts with dependencies and run or install command-line tools distributed as Python packages. That breadth can reduce the number of separate utilities a Python developer needs, though teams should account for the differences in uv’s interfaces when replacing existing commands.

Integrations and installation

Official integration guides cover Docker, Jupyter, GitHub Actions, GitLab CI/CD, Pre-commit, PyTorch, FastAPI, Bazel, and package registries. uv uses rustls with aws-lc-rs for TLS and bundled Mozilla root certificates by default. Installation options include a standalone installer, PyPI, Homebrew, MacPorts, WinGet, Scoop, Docker, GitHub Releases, and Cargo. PyPI installation on platforms without a prebuilt wheel requires a Rust toolchain to build from source.

Pricing

uv is free: the uv plan costs nothing. It is an open-source Python package and project manager, with no paid tier or trial needed to get started. That makes it suitable for individual developers and teams seeking broad tooling without a software subscription.

Platforms

uv supports Linux, macOS, and Windows. Its Python compatibility spans CPython, PyPy, Pyodide, and GraalPy. The PyPI route may require a Rust toolchain on platforms without a prebuilt wheel; the standalone installer and other distribution channels provide alternatives.

Who it's for

uv is a strong fit for Python developers who want dependency resolution, lockfiles, workspaces, environment management, Python-version control, and script or CLI execution in one tool. Offline installation and private registry authentication also suit teams working with internal packages or constrained networks. It is less compelling for organizations that require mature native secret storage or exact behavioral compatibility with their current package-management commands.

Pros and cons

Pros

Broad Python workflow coverage: It can replace several common package, environment, version, and command-line tools, reducing tool sprawl.

Project controls: Dependency resolution, lockfiles, workspaces, and offline installation support reproducible work across projects and restricted environments.

Multiple Python implementations: Support for CPython, PyPy, Pyodide, and GraalPy gives it reach beyond a single interpreter.

Free and widely installable: The free plan and multiple distribution channels lower the cost and setup barriers.

Cons

Credentials currently use plaintext storage: Native secret storage is only an experimental preview, a concern for security-sensitive teams.

Compatibility is not exact: The pip-compatible interface differs in commands and behavior, which can complicate migration from familiar tools.

Some PyPI installs need a Rust toolchain: Building from source adds setup work on platforms without a prebuilt wheel.

Alternatives

Choose pip if you want Python package installation through a free, focused tool rather than uv’s broader project and environment scope. For JavaScript package management, npm offers a free plan for public package authors with unlimited public packages and public registry access; its paid plans are a separate consideration.

Gradle is a free open-source build system, while Cargo is a free Rust package manager and build tool. Yarn is a free open-source package manager with no paid plans or usage limits stated, and pnpm is another free package manager for Linux, macOS, Windows, and Android.

Conan is a free and open-source option for C and C++ package management, dependency, and binary management. For PHP dependency management, consider Composer, a free tool under the MIT license.

Verdict

Choose uv if you work in Python and want one free tool to cover dependency and environment management, Python versions, scripts, and command-line tools, with lockfiles and offline support. Its consolidation and breadth are the strongest reasons to adopt it. Look elsewhere if your team needs native secret storage beyond an experimental preview or relies on exact compatibility with existing package-management commands.

Verdict

uv brings several Python packaging and project tasks into one tool, with support for lockfiles, workspaces, and offline installation. Its plaintext credential storage is worth considering, and native secret storage remains experimental.

Where Specifiction places it

Alternatives to uvAll alternatives →