uv Field Manual

SkillCloud & infra

uv workflows for Python — dependencies, virtualenvs, PEP 723 scripts, Python version management, CI, and Docker. Use when working on Python packaging/deps/tooling, writing GitHub Actions for Python projects, or building Docker images for Python apps.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the uv Field Manual skill

What this skill tells your AI

The instructions your AI receives, as published by harperreed/dotfiles in .claude/skills/uv/SKILL.md and read by ahel’s review.

Assumption: uv is installed and on PATH (uv --version to confirm; if missing, halt and report). Version pins below were current 2026-07-05 — verify before relying on them.

Daily workflows

Project ("cargo-style") flow

uv init myproj                     # create pyproject.toml + .venv
cd myproj
uv add ruff pytest httpx           # fast resolver + lock update
uv run pytest -q                   # run tests in project venv
uv lock                            # refresh uv.lock (if needed)
uv sync --locked                   # reproducible install (CI-safe)

Script flow (PEP 723)

uv run hello.py                    # zero-dep script, auto-env
uv add --script hello.py rich      # embeds dep metadata in the script
uv run --with rich hello.py        # transient deps, no state

CLI tools (pipx replacement)

uvx ruff check .                   # ephemeral run
uv tool install ruff               # user-wide persistent install
uv tool list                       # audit installed CLIs
uv tool update --all               # keep them fresh

Python version management

uv python install 3.12 3.13
uv python pin 3.13                 # writes .python-version
uv run --python 3.12 script.py

Legacy pip interface

uv venv .venv
source .venv/bin/activate
uv pip install -r requirements.txt
uv pip sync   -r requirements.txt   # deterministic install

Performance knobs

Env VarPurposeTypical value
UV_CONCURRENT_DOWNLOADSsaturate fat pipes16 or 32
UV_CONCURRENT_INSTALLSparallel wheel installsCPU cores
UV_OFFLINEcache-only mode1
UV_INDEX_URLinternal mirrorhttps://…
UV_PYTHONpin interpreter in CI3.13
uv cache dir && uv cache size      # show path + size
uv cache clean                     # wipe wheels & sources

CI: GitHub Actions

name: tests
on: [push]
jobs:
  pytest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: astral-sh/setup-uv@v8.2.0   # immutable releases since v8.0.0 — moving tags like @v8 do NOT exist; pin the full version
      - run: uv python install            # obeys .python-version
      - run: uv sync --locked
      - run: uv run pytest -q

Docker (multistage — the one true recipe)

# Build stage
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS builder
WORKDIR /app
# Deps first for layer caching; code after
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-cache --no-dev

# Runtime stage
FROM debian:bookworm-slim
COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
RUN useradd --create-home --shell /bin/bash app
WORKDIR /app
COPY --from=builder /app/.venv /app/.venv
COPY --chown=app:app . .
USER app
ENV PATH="/app/.venv/bin:$PATH"
CMD ["uv", "run", "python", "-m", "myapp"]

Tips: copy pyproject.toml + uv.lock before app code (layer caching); --frozen honors the lockfile exactly; --no-cache keeps the image lean; --no-dev skips dev deps; set PATH so the venv is active.

Migration matrix

LegacyReplacement
python -m venvuv venv
pip installuv pip install
pip-tools compileuv lock
pipx runuvx
poetry adduv add
pyenv installuv python install

Troubleshooting

SymptomResolution
Python X.Y not founduv python install X.Y or set UV_PYTHON
C-extension build errorsunset UV_NO_BUILD_ISOLATION
Need a fresh envuv cache clean && rm -rf .venv && uv sync
Still stuckRUST_LOG=debug uv ...

Signals

GitHub stars
332
Forks
46
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
uv-harperreed
Source
github.com/harperreed/dotfiles