An extremely fast Python package and project manager, written in Rust.
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
An 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