Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
laurigates avatar

Uv Workspaces

  • 82 installs
  • 49 repo stars
  • Updated August 4, 2026
  • laurigates/claude-plugins

Helps with ai & agent building tasks.

About

uv-workspaces is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.

  • uv-workspaces
  • AI & Agent Building
  • AI-coding skill

Uv Workspaces by the numbers

  • 82 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #5,148 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/laurigates/claude-plugins --skill uv-workspaces

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs82
repo stars49
Last updatedAugust 4, 2026
Repositorylaurigates/claude-plugins

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

UV Workspaces

Quick reference for managing monorepo and multi-package projects with UV workspaces.

When to Use This Skill

Use this skill when...Use another skill instead when...
Setting up a Python monorepo with shared depsManaging a single package (uv-project-management)
Configuring workspace members and inter-package depsAdding git/URL dependencies (uv-advanced-dependencies)
Using --package or --all-packages flagsBuilding/publishing to PyPI (python-packaging)
Creating virtual workspaces (root with no project)Managing Python versions (uv-python-versions)
Debugging workspace dependency resolutionRunning standalone scripts (uv-run)

Quick Reference

Workspace Structure

my-workspace/
├── pyproject.toml          # Root workspace config
├── uv.lock                 # Shared lockfile (all members)
├── packages/
│   ├── core/
│   │   ├── pyproject.toml
│   │   └── src/core/
│   ├── api/
│   │   ├── pyproject.toml
│   │   └── src/api/
│   └── cli/
│       ├── pyproject.toml
│       └── src/cli/
└── README.md

Root pyproject.toml

[project]
name = "my-workspace"
version = "0.1.0"
requires-python = ">=3.11"

[tool.uv.workspace]
members = ["packages/*"]

# Optional: exclude specific members
exclude = ["packages/experimental"]

Virtual Workspace (No Root Package)

When the root is purely organizational and not a package itself, omit the [project] table:

# Root pyproject.toml — virtual workspace (no [project] table)
[tool.uv.workspace]
members = ["packages/*"]
  • The root is not a workspace member
  • All members live in subdirectories
  • uv run and uv sync require --package or --all-packages (will error without them)

Member pyproject.toml

[project]
name = "my-api"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
    "my-core",       # Workspace member
    "fastapi",       # External (PyPI)
]

[tool.uv.sources]
my-core = { workspace = true }

Common Commands

OperationCommand
Sync workspace rootuv sync
Sync all membersuv sync --all-packages
Sync specific memberuv sync --package my-api
Run in member contextuv run --package my-api python script.py
Lock entire workspaceuv lock
Upgrade a dependencyuv lock --upgrade-package requests
Build specific packageuv build --package my-core
Add dep to membercd packages/api && uv add requests
Add workspace depcd packages/api && uv add ../core

Key Behaviors

Source Inheritance

Root tool.uv.sources apply to all members unless overridden.

Use case: Define workspace sources in root for all members, override only when a specific member needs a different version:

# Root pyproject.toml — applies to all members
[tool.uv.sources]
my-utils = { workspace = true }

# packages/legacy/pyproject.toml — needs pinned version
[tool.uv.sources]
my-utils = { path = "../utils-v1" }  # Overrides root entirely

Override is per-dependency and total — if a member defines a source for a dependency, the root source for that dependency is ignored completely.

requires-python Resolution

The workspace enforces the intersection of all members' requires-python:

# packages/core: requires-python = ">=3.10"
# packages/api:  requires-python = ">=3.11"
# Effective:     requires-python = ">=3.11"

All members must have compatible Python version requirements.

Editable Installations

Workspace member dependencies are always editable — source changes are immediately available without reinstallation.

Default Scope

CommandDefault scopeOverride
uv lockEntire workspace
uv syncWorkspace root only--package, --all-packages
uv runWorkspace root only--package, --all-packages
uv buildAll members--package

Workspace vs Path Dependencies

Feature{ workspace = true }{ path = "../pkg" }
Shared lockfileYesNo
Always editableYesOptional
Must be workspace memberYesNo
--package flag worksYesNo
Conflicting deps allowedNoYes

Use path dependencies when members need conflicting requirements or separate virtual environments.

Docker Layer Caching

# Install deps first (cached layer)
COPY pyproject.toml uv.lock packages/*/pyproject.toml ./
RUN uv sync --frozen --no-install-workspace

# Then install project (changes frequently)
COPY . .
RUN uv sync --frozen
FlagEffect
--no-install-projectSkip current project, install deps only
--no-install-workspaceSkip all workspace members, install deps only
--no-install-package <name>Skip specific package(s)
--frozenSkip lockfile freshness check

Agentic Optimizations

ContextCommand
Sync all membersuv sync --all-packages
CI sync (frozen)uv sync --all-packages --frozen
Test specific memberuv run --package my-core pytest --dots --bail=1
Test all membersuv run --all-packages pytest --dots --bail=1
Lock with upgradeuv lock --upgrade-package <dep>
Build one packageuv build --package my-core
Docker deps layeruv sync --frozen --no-install-workspace

See Also

  • uv-project-management — Managing individual packages
  • uv-advanced-dependencies — Path and Git dependencies
  • python-packaging — Building and publishing workspace packages

For detailed workspace patterns (virtual workspaces, Docker integration, source inheritance, syncing strategies), CI/CD examples, and troubleshooting, see REFERENCE.md.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.