
python-packaging
Build and publish Python packages with uv. Use when the user mentions building packages, publishing to PyPI, wheel/sdist creation, or entry points.
- Installs
- 301
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/laurigates/claude-plugins --skill python-packaging- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads python-packaging automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Python Packaging
Quick reference for building and publishing Python packages with UV and modern build tools.
When to Use This Skill
| Use this skill when... | Use uv-project-management instead when... |
|---|---|
Building a wheel/sdist with uv build for PyPI distribution | Setting up a new project's pyproject.toml or adding runtime dependencies |
Publishing a release to PyPI or a private index with uv publish | Managing the lockfile or syncing the local virtual environment |
| Configuring entry points, console scripts, or package metadata for distribution | Resolving dependency conflicts or pinning versions for development |
When This Skill Applies
- Building Python packages (wheels, sdists)
- Publishing to PyPI or private indexes
- Package versioning
- Build system configuration
- Editable installations
Quick Reference
Building Packages
# Build package
uv build
# Build specific formats
uv build --wheel
uv build --sdist
# Output location: dist/
Publishing
# Publish to PyPI
uv publish
# With token
uv publish --token $PYPI_TOKEN
# To Test PyPI
uv publish --publish-url https://test.pypi.org/legacy/
Package Structure
my-package/
├── pyproject.toml
├── README.md
├── LICENSE
├── src/
│ └── my_package/
│ ├── __init__.py
│ ├── __version__.py
│ └── main.py
└── tests/
pyproject.toml Configuration
[project]
name = "my-package"
version = "0.1.0"
description = "A great package"
readme = "README.md"
requires-python = ">=3.11"
license = {text = "MIT"}
authors = [
{name = "Your Name", email = "you@example.com"}
]
keywords = ["python", "package"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
]
dependencies = [
"requests>=2.31.0",
]
[project.optional-dependencies]
dev = ["pytest", "ruff", "ty"]
[project.urls]
Homepage = "https://github.com/user/my-package"
Documentation = "https://my-package.readthedocs.io"
Repository = "https://github.com/user/my-package.git"
Issues = "https://github.com/user/my-package/issues"
[project.scripts]
my-cli = "my_package.cli:main"
[build-system]
requires = ["uv_build>=0.9.2,<0.10.0"]
build-backend = "uv_build"
Versioning
[project]
version = "0.1.0" # Manual versioning
# Dynamic versioning (from git tags)
dynamic = ["version"]
[tool.uv]
version-provider = "git"
Entry Points
[project.scripts]
my-cli = "my_package.cli:main"
[project.gui-scripts]
my-gui = "my_package.gui:main"
[project.entry-points."my_plugin"]
plugin1 = "my_package.plugins:plugin1"
Build Backends
UV Build (default)
[build-system]
requires = ["uv_build>=0.9.2,<0.10.0"]
build-backend = "uv_build"
Setuptools
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
Hatchling
[build-system]
requires = ["hatchling>=1.18"]
build-backend = "hatchling.build"
Common Workflows
Publish to PyPI
# 1. Build
uv build
# 2. Check built packages
ls dist/
# 3. Publish
uv publish --token $PYPI_TOKEN
Test PyPI First
# Publish to Test PyPI
uv publish --publish-url https://test.pypi.org/legacy/ \
--token $TEST_PYPI_TOKEN
# Test installation
pip install --index-url https://test.pypi.org/simple/ my-package
Package Classifiers
Common classifiers:
classifiers = [
# Development Status
"Development Status :: 3 - Alpha",
"Development Status :: 4 - Beta",
"Development Status :: 5 - Production/Stable",
# Audience
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
# License
"License :: OSI Approved :: MIT License",
# Python Versions
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
# Framework
"Framework :: Django",
"Framework :: FastAPI",
# Topic
"Topic :: Software Development :: Libraries",
"Topic :: Scientific/Engineering",
]
Full list: https://pypi.org/classifiers/
See Also
uv-project-management- Project setup and dependenciespython-development- Core Python patternsuv-workspaces- Building workspace packages
References
- UV build: https://docs.astral.sh/uv/guides/publish/
- PyPI: https://pypi.org/
- Detailed guide: See REFERENCE.md
FAQ
What does the python-packaging skill do?
Build and publish Python packages with uv. Use when the user mentions building packages, publishing to PyPI, wheel/sdist creation, or entry points.
How do I install python-packaging?
Run npx skills add https://github.com/laurigates/claude-plugins --skill python-packaging in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/python-packaging/ (personal) or .claude/skills/python-packaging/ (project).
Which AI agents can use python-packaging?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is python-packaging safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains python-packaging?
It is published by laurigates in laurigates/claude-plugins. It has 301 recorded installs.
More from laurigates/claude-plugins
python-code-quality
laurigates/claude-plugins
Python code quality with ruff and ty. Use when the user mentions ruff, ty, linting, formatting, type checking, or Python code style.
python-testing
laurigates/claude-plugins
Python testing with pytest, coverage, fixtures, and mocking. Use when the user mentions pytest, unit tests, coverage, fixtures, mocking, or writing Python tests.
pytest-advanced
laurigates/claude-plugins
Advanced pytest: fixtures, markers, parametrization, parallel execution. Use when implementing test infrastructure, writing fixtures, or running with coverage.
basedpyright-type-checking
laurigates/claude-plugins
Open the skill to read its SKILL.md instructions.
Popular other skills
hyperframes-cli
heygen-com/hyperframes
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
triage
mattpocock/skills
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
ask-matt
mattpocock/skills
Ask which skill or flow fits your situation. A router over the skills in this repo.
to-questionnaire
mattpocock/skills
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
loop-me
mattpocock/skills
Grill me about specs for the workflows I want to build, within this workspace.