home / skills / knoopx / pi / uv

uv skill

/agent/skills/uv

npx playbooks add skill knoopx/pi --skill uv

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.0 KB
---
name: uv
description: Initialize Python projects, manage dependencies, pin Python versions, and run scripts with uv. Use when adding/removing packages, syncing environments, running tools with uvx, or building distributions.
---

# UV Cheatsheet

Fast Python package and project manager with built-in virtual environment management.

## Project Setup

```bash
uv init my-app             # App project
uv init my-lib --lib      # Library project
uv init --script script.py # Standalone script
uv python pin 3.11        # Pin Python version
```

## Dependencies

```bash
uv add requests           # Add dependency
uv add --dev pytest       # Add dev dependency
uv add --optional ml scikit-learn  # Add optional
uv remove requests        # Remove dependency
uv tree                   # Show dependency tree
uv lock                   # Update lockfile only
uv export > requirements.txt  # Export to requirements.txt
```

## Virtual Environment

```bash
uv sync                   # Sync dependencies
uv sync --no-dev         # Skip dev deps
uv sync --all-extras     # Include all optional
uv sync --refresh        # Recreate venv
```

## Running Code

```bash
uv run python script.py   # Run script
uv run -m pytest         # Run module
uv run --with requests script.py  # Temp dependency
uv run --extra ml train.py  # Use optional deps
uv run --env-file .env script.py  # Load .env
```

## Python Management

```bash
uv python list           # List versions
uv python install 3.12   # Install version
uv python pin 3.11       # Set project version
uv python upgrade --all  # Upgrade all
```

## Tools

```bash
uvx ruff check .         # Run tool once
uv tool install ruff     # Install globally
uv tool list             # List tools
uv tool upgrade ruff     # Upgrade tool
```

## Building & Publishing

```bash
uv build                 # Build distributions
uv publish               # Publish to PyPI
```

## Project Versioning

```bash
uv version               # Show current version
uv version 1.2.3         # Set version
uv version --bump major  # Bump major version
uv version --bump minor  # Bump minor version
uv version --bump patch  # Bump patch version
```

## Code Formatting

```bash
uv format                # Format Python code
uv format --check        # Check formatting without changes
```

## Authentication

```bash
uv auth login            # Login to package index
uv auth logout           # Logout from package index
uv auth status           # Show authentication status
```

## pyproject.toml

```toml
[project]
name = "my-project"
version = "0.1.0"
requires-python = ">=3.9"
dependencies = ["requests>=2.31.0"]

[project.optional-dependencies]
ml = ["scikit-learn>=1.0.0"]

[dependency-groups]
dev = ["pytest>=7.0.0", "ruff>=0.1.0"]
```

## Tips

- `uv run` handles venv automatically
- Commit `uv.lock` for reproducibility
- Use `--with` for one-off dependencies
- `uvx` for running tools without install
- `uv sync --locked` in CI
- Tools are isolated from project deps
- Fast: 10-100x faster than pip