An extremely fast Python package and project manager, written in Rust.
npx @tessl/cli install tessl/pypi-uv@0.8.0An extremely fast Python package and project manager, written in Rust. UV serves as a comprehensive, drop-in replacement for multiple Python development tools including pip, poetry, pipx, virtualenv, pyenv, and twine, offering 10-100x faster performance while providing a unified interface for the complete Python development lifecycle.
pip install uv or curl -LsSf https://astral.sh/uv/install.sh | shUV is primarily used as a command-line tool:
# Install uv
pip install uv
# Or via standalone installer
curl -LsSf https://astral.sh/uv/install.sh | shBasic project workflow:
# Create a new project
uv init my-project
cd my-project
# Add dependencies
uv add requests numpy
# Install dependencies
uv sync
# Run a script
uv run python main.py
# Run a tool
uv tool run black .UV provides a unified interface through multiple command namespaces:
This unified approach eliminates tool fragmentation while maintaining compatibility with existing Python ecosystems through pip-compatible interfaces and universal lockfile support.
Complete project lifecycle management with pyproject.toml-based configuration, universal lockfiles, and workspace support similar to Cargo.
uv init [PATH] # Create new project
uv add PACKAGE... # Add dependencies
uv remove PACKAGE... # Remove dependencies
uv sync # Update environment to match lockfile
uv run COMMAND # Run command in project environment
uv lock # Update project lockfile
uv export [--format FORMAT] # Export lockfile to alternate formatsAutomatic Python discovery, installation, and management with support for multiple implementations and versions.
uv python list # List available Python installations
uv python install VERSION # Install Python version
uv python find [REQUEST] # Find Python installation
uv python pin VERSION # Pin project to Python versionHigh-performance pip-compatible interface providing drop-in replacement for common pip workflows with universal resolution.
uv pip install PACKAGE... # Install packages
uv pip uninstall PACKAGE... # Uninstall packages
uv pip compile INPUT_FILE # Compile requirements file
uv pip sync REQUIREMENTS_FILE # Sync environment with requirements
uv pip list # List installed packages
uv pip freeze # Output installed packages in requirements formatIsolated execution and installation of Python tools with automatic dependency resolution and global availability.
uv tool run TOOL [ARGS...] # Run tool in isolated environment
uv tool install TOOL # Install tool globally
uv tool list # List installed tools
uv tool uninstall TOOL # Uninstall toolFast virtual environment creation and management with automatic discovery and Python version selection.
uv venv [PATH] # Create virtual environmentPackage building into source distributions and wheels, plus publishing to PyPI and private indexes.
uv build [PATH] # Build packages
uv publish [DIST...] # Publish to indexAuthentication handling for PyPI and private package indexes with secure credential storage.
uv auth login [SERVICE] # Login to service
uv auth logout [SERVICE] # Logout from service
uv auth token [SERVICE] # Show authentication tokenGlobal cache management for packages and metadata with deduplication and cleanup utilities.
uv cache clean # Clear cache
uv cache prune # Prune unreachable cache objects
uv cache dir # Show cache directoryUV self-update and version management functionality.
uv self update # Update uv
uv self version # Show version informationHelp system and completion utilities for enhanced user experience.
uv help [COMMAND] # Display help for commands
uv generate-shell-completion # Generate shell completion scripts
uv clean # Legacy alias for cache cleanAll uv commands support these global options:
--help, -h # Show help
--version, -V # Show version
--quiet, -q # Quiet output (repeatable)
--verbose, -v # Verbose output (repeatable)
--color CHOICE # Color output (auto/always/never)
--no-color # Disable colors
--python VERSION # Python version to use
--config-file PATH # Configuration file path
--no-config # Skip configuration discovery
--offline # Disable network access
--native-tls # Use system certificate store
--allow-insecure-host HOST # Allow insecure connections
--directory PATH # Change directory before running
--project PATH # Project directory
# Exit codes:
# 0: Success
# 1: General error (command failed)
# 2: Usage error (invalid arguments)UV uses these configuration files:
When installed via pip, uv provides a Python module interface:
# Available after: pip install uv
import uv
# Find uv binary location (returns pathlib.Path)
binary_path = uv.find_uv_bin()
# Module execution (delegates to native binary)
# python -m uv [commands...]
# Exit codes: 0 (success), 1 (error), 2 (usage error)
# Example usage:
import subprocess
result = subprocess.run(["python", "-m", "uv", "pip", "list"],
capture_output=True, text=True)UV provides multiple entry points:
uv tool run - quickly run toolsExample uvx usage:
uvx black . # Equivalent to: uv tool run black .
uvx ruff check # Equivalent to: uv tool run ruff check