Get started with uv

I uv it! (to the tune of Icona Pop)
uv
python
workflow
Author

Lindsay Lee

Published

May 23, 2026

Just as soon as I finally got around to getting acquainted with conda, I saw there was a new kid on the block for python environment management: uv. I got the first inkling I needed to get on the uv train when I saw Vicki Boykis–a favorite tech writer and overall thoughtful and interesting person–say in her 2024 year-end review that she “moved to uv…and have never looked back.” The memes on Bluesky have reinforced the message over the months:

Claude code, obey this rite: uv alone should see the light. Ban import star, cast em-dash out, Put pandas, pip, and print to rout. Polars flourish, f-strings burn, Docstrings, hints, at every turn. Clean thy lint, make patterns stand, Hold thy peace and serve my hand!

Arseny Khakhalin (@khakhalin.bsky.social) 2026-04-28T11:45:59.050Z

I’ve only just begun working with uv but so far the hype feels real–it is fast and easy to use, and has made working with packages as seamless as it’s ever been for me. Here is a quick reference guide to getting started with uv and some resources for learning more.

Quick guide

Why uv?

  • Super fast: 10-100x faster than pip
  • Comprehensive: projects, dependencies, virtualenvs, Python versions, and tools in one binary
  • Reproducible: uv.lock pins exact versions for everyone who uses your code
  • Lightweight: no need to install a full heavyweight tools like conda
  • Streamlined: no need to explicitly activate environments or manually create venvs

Install

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# or with Homebrew
brew install uv

Start a project

uv init myproject      # create a new project (pyproject.toml, .venv, etc.)
cd myproject

Note that uv init also automatically creates a git repo by default.

Manage dependencies

uv add requests        # add a dependency
uv add --dev pytest    # add a dev-only dependency
uv remove requests     # remove a dependency
uv sync                # install everything from pyproject.toml / uv.lock

uv automatically creates and manages a .venv for you, and it doesn’t need to be activated manually.

Run code

uv run main.py         # run a script inside the project environment
uv run pytest          # run a tool inside the environment

Manage Python versions

uv python install 3.12   # install a specific Python
uv python pin 3.12       # pin this project to a Python version

Resources

Astral’s blog launching uv

Datacamp’s in-depth tutorial

“Python Packaging is Great Now: uv is all you need” by Juan Luis Cano Rodríguez