uv
uv is a high-performance package and project manager from Astral that replaces pip, pip-tools, pipx, poetry, pyenv, and virtualenv with a single tool. The handbook covers installation on every platform, day-to-day workflows, migration from older tools, and the design choices that make it fast.
Get started with uv
Learn uv in depth
Migrate to uv
More uv pages
Everything else tagged uv, grouped by section. Pages featured above are not repeated here.
Tutorial
- Build a Python library with a C extension
- Build a Python library with a C++ extension
- Build a Python library with a Rust extension
- Getting started with uv
- Publishing Your First Python Package to PyPI
- Run your first Python script with uv
- Set up a data science project with uv
- Setting up GitHub Actions with uv
- Setting up testing with pytest and uv
- Try Free-Threaded Python with uv
How To
- How to add dynamic versioning to uv projects
- How to add Python to your system path with uv
- How to change the Python version of a uv project
- How to configure Claude Code to use uv
- How to configure Cursor for a uv project
- How to configure Cursor rules to use uv
- How to configure VS Code for a uv project
- How to convert a script with requirements.txt to PEP 723 inline metadata
- How to create a new Python project with Codex
- How to Create and Distribute a Python CLI Tool
- How to customize uv's virtual environment location
- How to distribute internal Python CLI tools with uv
- How to fix "No `project` Table Found" error in uv
- How to Fix Common pytest Errors with uv
- How to fix Python version incompatibility errors in uv
- How to install Python CLI tools without Python
- How to install Python with uv
- How to Install PyTorch with uv
- How to Install RAPIDS with uv
- How to install the Astral plugins for Claude Code
- How to install uv on Linux
- How to install uv on macOS
- How to install uv on Windows
- How to keep Python up to date with uv python upgrade
- How to manage cross-repository Python dependencies with uv
- How to migrate from Pipenv to uv
- How to Protect Against Python Supply Chain Attacks with uv
- How to Publish to TestPyPI with uv
- How to replace tox with uv and a Makefile
- How to Run a Jupyter Notebook with uv
- How to Run a Python REPL with uv
- How to Run Tests Using uv
- How to run the IPython shell in your uv project
- How to set up a Python monorepo with uv workspaces
- How to Test Against Multiple Python Versions Using uv
- How to upgrade setup-uv from v7 to v8
- How to upgrade uv
- How to Use `--exclude-newer` for Reproducible Python Environments
- How to use a uv lockfile for reproducible Python environments
- How to use free-threaded Python in a uv project
- How to use pip in a uv virtual environment
- How to Use Poe the Poet as a Task Runner with uv
- How to use private package indexes with uv
- How to use the pydevtools CLAUDE.md template for Python projects
- How to use uv in a Dockerfile
- How to use uv to speed up Hatch
- How to use uv to speed up PDM
- How to use uv to speed up tox
- How to Verify Dependencies with Hashes in uv
- How to write install instructions for a Python library
- How to write self-contained Python scripts using PEP 723 inline metadata
Explanation
- Do I need a project to use uv?
- Do you still need tox or nox if you use uv?
- Do you still need tox or nox if you use uv?
- How do pyenv and uv compare for Python interpreter management?
- How Python tools adopt uv under the hood
- Modern Python Project Setup Guide for AI Assistants
- Understanding dependency groups in uv
- uv for Non-Python Teams
- uv init: project types, flags, and examples
- uv vs pixi vs conda for Scientific Python
- What Happens When You Run `uv run`
- When should I choose pixi over uv?
- When to Use `uv run` vs `uvx`
- Which Python package manager should I use?
- Why did uv originally use Hatch as a build backend?
- Why use native uv commands instead of uv pip
From the blog
Posts tagged uv.
-
What Reddit taught me about why people switch to uv
A 476-upvote r/Python thread asked 'But really, why use uv?' The OP was a casual user who only installs packages a few times a month. The comments convinced them anyway.
-
Did pip 26 close the gap with uv?
pip 26.0 shipped two flagship uv features in January 2026: PEP 723 inline scripts and --uploaded-prior-to. Here's where the actual gap sits in April 2026.
-
How Astral Uses Its Own Tools
A teardown of the ruff, ty, and uv repositories shows how Astral wires its own toolchain into the projects that produce it.
-
uv won developer hearts. Now it has to win READMEs.
uv is the most admired tool in the 2025 Stack Overflow survey, but adoption in real repos lags far behind. The gap is not just AI agents. It's the install snippets they read.
-
How uv Solves Dependencies So Fast
Inside uv's dependency resolver: SAT solving, universal lock files, zero-copy deserialization, and why Python's lack of multi-version support makes this problem NP-hard.
-
OpenAI to Acquire Astral
OpenAI announced plans to acquire Astral, the company behind uv, Ruff, and ty, folding its team into the Codex coding agent.
-
Charlie Marsh on uv, Coding Agents, and the Changing Open Source Contract
Charlie Marsh discusses uv's adoption strategy, coding agents reshaping Astral's development, and open source when code is cheap.
-
FOSDEM Talk: Modern Python Monorepo with uv, Workspaces, and prek
Apache Airflow's FOSDEM talk on managing 120+ Python distributions using uv workspaces and prek for fast pre-commit.
-
uvx.sh: Install Python tools without uv or Python
Astral's uvx.sh generates installation scripts for any PyPI tool with a single curl command, no uv or Python required.
-
How uv Achieved Its Performance
uv's speed comes from eliminating work rather than optimizing it, with design choices like skipping .egg support and bytecode compilation.
-
Teaching LLMs Python Best Practices
LLMs default to outdated Python patterns. The handbook provides llms.txt and structured context to teach AI assistants modern tooling.
-
Claude Code Hooks for uv Projects
Configure Claude Code hooks to prevent pip and python commands and enforce uv usage in your Python projects.
-
Sync with uv: Eliminate Pre-commit Version Drift
sync-with-uv automatically synchronizes tool versions between uv.lock and .pre-commit-config.yaml to prevent version drift.
-
uv format: Code Formatting Comes to uv (experimentally!)
uv 0.8.13 adds experimental uv format command that runs Ruff's formatter, similar to how cargo fmt wraps rustfmt.
-
How Python's RFC Process Paved the Way for uv, Ruff, and Ty
How PEP standards enabled Astral to build ruff, uv, and ty that work seamlessly within the Python ecosystem without being part of core.
-
Interview with the Pybites podcast
Tim Hopper joins the Pybites podcast to discuss the Python Developer Tooling Handbook, uv, and modern Python development.
-
Use Interceptors to teach Claude Code to use uv
Armin Ronacher's interceptor pattern creates fake Python executables that redirect AI coding agents toward uv.
-
uvhow: Get uv upgrade instructions for your uv install
uvhow detects how uv was installed on your system and provides the correct upgrade command for your installation method.
-
uv 0.8 Release: Automatic Python Installation to PATH
uv 0.8 adds automatic Python executable installation to PATH, making uv-managed Python versions available system-wide.
-
Python is good now!
César Soto Valero's experience switching to Python and finding the ecosystem, tooling, and syntax have improved significantly.
-
Hynek Schlawack's uv Workflow Guide
Hynek Schlawack demonstrates practical uv workflows for replacing pip, virtualenv, and pyenv with a single tool.
-
The uv build backend is now stable
uv build backend is now stable and really, really fast
-
Managing Python Versions In Your uv Projects
How .python-version files, requires-python, and uv work together to manage Python versions in your projects.
-
Why uv makes Make less essential for Python projects
uv's speed and unified CLI reduce the need for Makefiles in Python projects that previously required them for workflow automation.
-
The Python Tooling Revolution
Lewis Gaul examines how Astral's ruff and uv are transforming Python development workflows with speed and intelligent design.
-
Simple, Modern Python
Joshua Levy's simple-modern-uv Copier template combines uv, ruff, mypy, and pytest for new Python projects.
-
Dependabot Now Supports uv
GitHub's Dependabot now officially supports uv for automated dependency version updates and security monitoring.
-
Why Doesn't the Authoritative Python Packaging Guide Mention the Best Thing that's Happened to Python Packaging?
Why the Python Packaging User Guide doesn't mention uv, and what that reveals about the PyPA, PEP 609, and the packaging ecosystem.
-
Production Experiences with uv
A summary of real-world production experiences with uv from a Reddit discussion, covering pros, cons, and adoption patterns.
-
Why Use uv Projects Instead of requirements.txt?
Comparing requirements.txt and pyproject.toml approaches to Python dependency management, and why uv projects offer more.
-
bitecode.dev's "A year of uv"
bitecode.dev's retrospective on uv after one year covers Python bootstrapping, speed gains, reliable dependency resolution, and adoption.
-
Flexible Python Version Management with uv and tox
Solve tox Python version mismatch errors by using uvx to run tox with any Python version on demand.
-
One Line Command to Launch a Notebook with Pytorch
Launch a Jupyter notebook with PyTorch using a single uv run command that handles Python, dependencies, and isolation.
-
"uv: Towards a unified vision for Python tooling"
Prashanth Rao explains how uv unifies Python package management, virtual environments, and version control into one fast tool.
-
Effective Python Developer Tooling in December 2024
An opinionated guide to Python developer tooling covering uv, ruff, pytest, mypy, and principles for productive Python development.
-
uv 0.3: One command line to rule them all (almost)
uv 0.3 expands from a pip replacement to a full project manager with uv run, uv tool, uv python, and more.
-
uv got to keep up: a new installer announced!
Astral, Charlie Marsh's company best known for Ruff, announced uv today, 'an extremely fast Python package installer and resolver, written in Rust.'
-
Quick start guide for Python development on a Mac
A quick start guide for setting up Python on macOS using pyenv and Poetry, with a note on the modern uv alternative.