Agent skill

Python Packaging

by wshobson in wshobson/agents

Package and publish Python libraries and CLI tools: project layout, pyproject.toml, build backends, wheels and source distributions, versioning and PyPI releases.

MITAuto-check passedDevelopment

Install Python Packaging

skills CLI
$ npx skills add wshobson/agents --skill python-packaging -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install wshobson/agents python-packaging --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/wshobson/agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/python-development/skills/python-packaging .claude/skills/python-packaging && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
python-packaging
GitHub stars
40k
Used in
11 other repos
Token cost
~911 tokens
SKILL.md length
230 words
Files
3 (incl. references)
Skills in repo
142
Repo updated
First seen
Licence
MIT

At a glance

Package and publish Python libraries and CLI tools: project layout, pyproject.toml, build backends, wheels and source distributions, versioning and PyPI releases.

  • Works in 4 steps: Package Structure → Modern Packaging Standards → Build Backends → …
  • Turning a Python library into a pip-installable package
  • SKILL.md covers When to Use This Skill, Core Concepts, Quick Start and Package Structure Patterns, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

The skill covers turning Python code into an installable, distributable package. It contrasts the recommended src layout with a flat layout and a multi-package project, explains pyproject.toml as the single source of configuration under PEP 517, 518, 621 and 660, and compares the build backends setuptools, hatchling, flit and poetry.

It also covers distribution targets (PyPI, TestPyPI for a trial before production, and private repositories such as JFrog or AWS CodeArtifact), building wheels and source distributions, entry points for command-line tools, namespace packages, package metadata with classifiers, and versioning. Minimal pyproject.toml and project tree examples are included, with deeper patterns in two reference files.

When your agent uses it

  • Turning a Python library into a pip-installable package
  • Publishing a release to PyPI or TestPyPI
  • Building a command-line tool with entry points
  • Migrating from setup.py to pyproject.toml

Example prompts

  • “Package this utilities folder as a library with a src layout and a pyproject.toml.”
  • “Set up the release so I can try it on TestPyPI before the real PyPI.”
  • “Add a console script entry point named mytool to my package.”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Package Structure
  2. Modern Packaging Standards
  3. Build Backends
  4. Distribution

What it can do on your machine

Read from SKILL.md and the folder at commit 46891e7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are toml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Python Packaging loads about 911 tokens when it runs, and up to ~4.5k if it reads all its reference files. Until then it costs about 55 tokens; SKILL.md has 230 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~911
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from wshobson/agents at commit 46891e7, republished under its MIT licence (© wshobson). 230 words, ~911 tokens.

Download SKILL.mdSave it as .claude/skills/python-packaging/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
python-packaging
description
Create distributable Python packages with proper project structure, setup.py/pyproject.toml, and publishing to PyPI. Use when packaging Python libraries, creating CLI tools, or distributing Python code.

Python Packaging

Comprehensive guide to creating, structuring, and distributing Python packages using modern packaging tools, pyproject.toml, and publishing to PyPI.

When to Use This Skill

  • Creating Python libraries for distribution
  • Building command-line tools with entry points
  • Publishing packages to PyPI or private repositories
  • Setting up Python project structure
  • Creating installable packages with dependencies
  • Building wheels and source distributions
  • Versioning and releasing Python packages
  • Creating namespace packages
  • Implementing package metadata and classifiers

Core Concepts

1. Package Structure
  • Source layout: src/package_name/ (recommended)
  • Flat layout: package_name/ (simpler but less flexible)
  • Package metadata: pyproject.toml, setup.py, or setup.cfg
  • Distribution formats: wheel (.whl) and source distribution (.tar.gz)
2. Modern Packaging Standards
  • PEP 517/518: Build system requirements
  • PEP 621: Metadata in pyproject.toml
  • PEP 660: Editable installs
  • pyproject.toml: Single source of configuration
3. Build Backends
  • setuptools: Traditional, widely used
  • hatchling: Modern, opinionated
  • flit: Lightweight, for pure Python
  • poetry: Dependency management + packaging
4. Distribution
  • PyPI: Python Package Index (public)
  • TestPyPI: Testing before production
  • Private repositories: JFrog, AWS CodeArtifact, etc.

Quick Start

Minimal Package Structure
my-package/
├── pyproject.toml
├── README.md
├── LICENSE
├── src/
│   └── my_package/
│       ├── __init__.py
│       └── module.py
└── tests/
    └── test_module.py
Minimal pyproject.toml
toml
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "my-package"
version = "0.1.0"
description = "A short description"
authors = [{name = "Your Name", email = "you@example.com"}]
readme = "README.md"
requires-python = ">=3.8"
dependencies = [
    "requests>=2.28.0",
]

[project.optional-dependencies]
dev = [
    "pytest>=7.0",
    "black>=22.0",
]

Package Structure Patterns

my-package/
├── pyproject.toml
├── README.md
├── LICENSE
├── .gitignore
├── src/
│   └── my_package/
│       ├── __init__.py
│       ├── core.py
│       ├── utils.py
│       └── py.typed          # For type hints
├── tests/
│   ├── __init__.py
│   ├── test_core.py
│   └── test_utils.py
└── docs/
    └── index.md

Advantages:

  • Prevents accidentally importing from source
  • Cleaner test imports
  • Better isolation

pyproject.toml for source layout:

toml
[tool.setuptools.packages.find]
where = ["src"]
Pattern 2: Flat Layout
my-package/
├── pyproject.toml
├── README.md
├── my_package/
│   ├── __init__.py
│   └── module.py
└── tests/
    └── test_module.py

Simpler but:

  • Can import package without installing
  • Less professional for libraries
Pattern 3: Multi-Package Project
project/
├── pyproject.toml
├── packages/
│   ├── package-a/
│   │   └── src/
│   │       └── package_a/
│   └── package-b/
│       └── src/
│           └── package_b/
└── tests/

Detailed patterns and worked examples

Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

© wshobson, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in plugins/python-development/skills/python-packaging of wshobson/agents.

  • SKILL.md
  • references/advanced-patterns.md
  • references/details.md

Open the folder on GitHubat commit 46891e7

Used in 11 other repositories

We found 23 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 11 other GitHub owners. This page covers the copy in wshobson/agents, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Python Packaging next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Python Packaging compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Python Packaging this skillwshobson/agents40k11 repos~911Automated safety check: PassMIT
AzureML Project ScaffoldingKilo-Org/kilo-marketplace189—~3.1kAutomated safety check: NotesMIT
Modern Python ToolchainXiaomiMiMo/MiMo-Code14k—~1.5kAutomated safety check: NotesMIT
Modern Python Toolingtrailofbits/skills7.4k—~2.5kAutomated safety check: PassCC-BY-SA-4.0
Research Initbrycewang-stanford/Auto-Empirical-Research-Skills4.5k—~839Automated safety check: PassCustom licence
Merge Dependabot PRsonyx-dot-app/onyx32k1 repos~2.2kAutomated safety check: PassMIT

Similar skills

  • AzureML Project Scaffolding

    Kilo-Org/kilo-marketplace

    Sets up and maintains AzureML-ready Python projects as uv workspaces with devcontainers, a Makefile and job YAML, so local runs match cloud jobs and experiments stay reproducible.

    189 GitHub stars~3.1k tokensUpdated 8 days ago
    DevelopmentAuto-check: notes
  • Modern Python Toolchain

    XiaomiMiMo/MiMo-Code

    Sets up Python projects with uv for packages and environments, ruff for linting and formatting, and pyright for type checking, with rules for running everything through uv.

    14k GitHub stars~1.5k tokensUpdated 4 days ago
    DevelopmentAuto-check: notes
  • Modern Python Tooling

    trailofbits/skills

    Official

    Sets up Python projects and standalone scripts with uv, ruff, ty, pytest and prek, and helps move existing projects off pip, Poetry, mypy and black.

    7.4k GitHub stars~2.5k tokensUpdated 5 days ago
    DevelopmentAuto-check passed
  • Research Init

    brycewang-stanford/Auto-Empirical-Research-Skills

    Scaffold a new research project with full reproducibility infrastructure in R and/or Python.

    4.5k GitHub stars~839 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Merge Dependabot PRs

    onyx-dot-app/onyx

    Triages and lands a batch of open Dependabot PRs in the Onyx repo, where main is gated exclusively by GitHub's merge queue: approves and enqueues green PRs, closes superseded duplicates, fixes…

    32k GitHub starsUsed in 1 repo~2.2k tokens
    DevelopmentAuto-check passed
  • Senior Architect Toolkit

    maslennikov-ig/claude-code-orchestrator-kit

    Comprehensive software architecture skill for designing scalable, maintainable systems using ReactJS, NextJS, NodeJS, Express, React Native, Swift, Kotlin…

    259 GitHub starsUsed in 7 repos~1.2k tokens
    DevelopmentAuto-check: notes

More from wshobson/agents

All 142 skills in this repo
  • Cuts cloud spend across AWS, Azure, GCP and OCI with cost tagging, rightsizing, commitment and spot pricing models, and architecture changes.

    40k GitHub starsUsed in 13 repos~1.7k tokens
    Auto-check passed
  • Billing Automation

    wshobson/agents

    Covers building subscription billing: billing cycles, subscription states, invoice generation, proration, tax handling and dunning for failed payments.

    40k GitHub starsUsed in 12 repos~473 tokens
    Auto-check passed
  • Profiles slow Python code with cProfile and memory profilers, then applies targeted fixes for CPU, memory, I/O and query bottlenecks.

    40k GitHub starsUsed in 12 repos~814 tokens
    Auto-check passed
  • Portfolio Risk Metrics

    wshobson/agents

    Covers portfolio risk measurement with VaR, CVaR, Sharpe, Sortino and drawdown, plus guidance on limits, stress tests and tail risk.

    40k GitHub starsUsed in 12 repos~502 tokens
    Auto-check passed
  • Plans memory headroom, works through out-of-memory failures and watches temperature and power during long ML training jobs on NVIDIA DGX Spark.

    40k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Writes unit tests for shell scripts with Bats: error-condition tests, fixtures and mocks, cross-shell checks, parallel runs, helper files and CI integration.

    40k GitHub starsUsed in 11 repos~1.3k tokens
    Auto-check passed

Works with

Categories

Questions about Python Packaging

What does Python Packaging do?

Package and publish Python libraries and CLI tools: project layout, pyproject.toml, build backends, wheels and source distributions, versioning and PyPI releases. The skill covers turning Python code into an installable, distributable package.toml as the single source of configuration under PEP 517, 518, 621 and 660, and compares the build backends setuptools, hatchling, flit and poetry.

When should I use Python Packaging?

Python Packaging fits situations like: turning a Python library into a pip-installable package; publishing a release to PyPI or TestPyPI; building a command-line tool with entry points; migrating from setup.py to pyproject.toml.

How do I install Python Packaging in Claude Code?

Run `npx skills add wshobson/agents --skill python-packaging -a claude-code`. Or copy the skill folder (plugins/python-development/skills/python-packaging in wshobson/agents) into .claude/skills/python-packaging in your project. Claude Code loads it when a task matches its description.

How do I install Python Packaging in Codex?

Run `npx skills add wshobson/agents --skill python-packaging -a codex`. Or copy the skill folder (plugins/python-development/skills/python-packaging in wshobson/agents) into .agents/skills/python-packaging in your project. Codex loads it when a task matches its description.

Can I use Python Packaging in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wshobson/agents --skill python-packaging -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/python-packaging, .gemini/skills/python-packaging, .github/skills/python-packaging and .opencode/skills/python-packaging in your project.

What does Python Packaging need to run?

SKILL.md names no scripts, command-line tools or credentials: Python Packaging is instructions for the agent only.

Does Python Packaging access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Python Packaging safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Python Packaging use?

Python Packaging is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Python Packaging use?

About 911 tokens (SKILL.md is roughly 3.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.6k tokens, read only when the agent opens those files.

What are the alternatives to Python Packaging?

Skills that share tags, products or a category with Python Packaging: AzureML Project Scaffolding (Kilo-Org/kilo-marketplace, 189 stars), Modern Python Toolchain (XiaomiMiMo/MiMo-Code, 14k stars), Modern Python Tooling (trailofbits/skills, 7.4k stars) and Research Init (brycewang-stanford/Auto-Empirical-Research-Skills, 4.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Python Packaging?

wshobson (a GitHub user) maintains it in wshobson/agents, which has 40,254 GitHub stars. The repository holds 142 skills in this directory. The repository was last updated on October 5, 2026.

Source: wshobson/agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.