python-plugin/skills/uv-advanced-dependencies/SKILL.md
Advanced uv dependencies: Git deps, path deps, editable installs, groups, extras, custom indexes. Use when the user mentions git+https deps, editable installs, or private indexes.
npx skillsauth add laurigates/claude-plugins uv-advanced-dependenciesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Quick reference for advanced dependency scenarios in UV projects.
| Use this skill when... | Use a focused sibling instead when... |
|---|---|
| Pinning a dependency to a git URL, branch, or tag, or installing in editable mode | Adding a normal PyPI dependency — use uv-project-management |
| Configuring [tool.uv.sources], dependency groups, extras, or custom indexes | Sharing source declarations across workspace members — use uv-workspaces |
| Setting up private package indexes or build-time constraints | Running an ephemeral script with --with deps — use uv-run |
# Add from Git repository
uv add git+https://github.com/psf/requests
uv add git+https://github.com/pallets/flask@main
uv add git+ssh://[email protected]/user/[email protected]
# Specific branch, tag, or commit
uv add git+https://github.com/user/repo@feature-branch
uv add git+https://github.com/user/[email protected]
uv add git+https://github.com/user/repo@abc123
# Add from local path
uv add --editable ./local-package
uv add ../another-project
uv add /absolute/path/to/package
# Non-editable path
uv add --no-editable ./local-package
# Add to named group
uv add --group docs sphinx mkdocs
uv add --group test pytest pytest-cov
# Install specific groups
uv sync --group docs
uv sync --group test --group docs
# Install all groups
uv sync --all-groups
# Install package with extras
uv add 'fastapi[all]'
uv add 'sqlalchemy[postgresql,mypy]'
# Define extras in pyproject.toml
[project.optional-dependencies]
dev = ["pytest", "ruff"]
docs = ["mkdocs", "mkdocs-material"]
# Apply version constraints
uv pip compile requirements.in --constraint constraints.txt
# constraints.txt example:
# numpy<2.0
# pandas==2.0.3
[tool.uv]
index-url = "https://pypi.org/simple"
extra-index-url = [
"https://custom.pypi.org/simple",
]
[project]
dependencies = [
"my-package",
]
[tool.uv.sources]
my-package = { git = "https://github.com/user/my-package" }
# With branch
my-package = { git = "https://github.com/user/my-package", branch = "main" }
# With tag
my-package = { git = "https://github.com/user/my-package", tag = "v1.0.0" }
# With commit
my-package = { git = "https://github.com/user/my-package", rev = "abc123" }
[project]
dependencies = [
"my-local-package",
]
[tool.uv.sources]
my-local-package = { path = "../my-local-package" }
# Editable (default for paths)
my-local-package = { path = "../my-local-package", editable = true }
# Non-editable
my-local-package = { path = "../my-local-package", editable = false }
[dependency-groups]
dev = [
"pytest>=7.0",
"pytest-cov>=4.0",
"ruff>=0.1.0",
]
docs = [
"mkdocs-material>=9.0",
"mkdocstrings[python]>=0.24",
]
test = [
"pytest-asyncio>=0.21",
"pytest-mock>=3.12",
]
# Add from direct URL
uv add https://files.pythonhosted.org/packages/.../requests-2.31.0.tar.gz
# In pyproject.toml
[tool.uv.sources]
my-package = { url = "https://example.com/my-package-1.0.tar.gz" }
[tool.uv]
# Primary index
index-url = "https://pypi.org/simple"
# Additional indexes
extra-index-url = [
"https://${PRIVATE_TOKEN}@private.pypi.org/simple",
]
# Find links
find-links = [
"https://download.pytorch.org/whl/cu118",
]
# Set token via environment
export PRIVATE_TOKEN="secret"
uv sync
[build-system]
requires = [
"setuptools>=68",
"wheel",
"Cython>=3.0",
]
build-backend = "setuptools.build_meta"
# Clone dependency
git clone https://github.com/user/lib.git ../lib
# Add as editable
cd my-project
uv add --editable ../lib
[tool.uv.sources]
my-core = { path = "packages/core" }
my-utils = { path = "packages/utils" }
[project]
dependencies = [
"fastapi", # PyPI
"my-lib", # Git
"my-local", # Path
]
[tool.uv.sources]
my-lib = { git = "https://github.com/user/my-lib" }
my-local = { path = "../my-local" }
[tool.uv]
# Highest compatible (default)
resolution = "highest"
# Lowest compatible
resolution = "lowest"
# Lowest direct, highest transitive
resolution = "lowest-direct"
uv-project-management - Basic dependency managementuv-workspaces - Workspace member dependenciespython-packaging - Build system configurationtesting
Verify accumulated bug claims at upstream HEAD and dedup against trackers before filing issues. Use when filing upstream reports from backlogs, audit docs, or git-history findings.
documentation
Gate outward-bound text (upstream issues, docs, PR bodies) through isolated haiku fresh-reader critique before publishing. Use when an artifact must survive a reader with zero project context.
tools
Suggest improvements to SKILL.md content, descriptions, or tool config from eval results. Use when raising pass rates, fixing triggering, or iterating on a skill after evaluation.
tools
deadbranch CLI for stale-branch cleanup — dry-run preview, TUI or non-interactive delete, protects main/develop/WIP. Use when asked to clean up branches, prune branches, or remove stale branches.