---
title: "Author a Skill for your PyPI package · skilld"
description: "Draft a Skill for your Python API, include its files with your build backend, and inspect the wheel and source distribution."
canonical_url: "https://skilld.dev/learn/author-pypi-package-skills"
last_updated: "2026-09-08T05:45:32.739Z"
meta:
  "og:description": "Draft a Skill for your Python API, include its files with your build backend, and inspect the wheel and source distribution."
  "og:image": "https://skilld.dev/_og/d/a_~c2tpbGxkLCBhZ2VudCBza2lsbHMgd3JpdHRlbiBieSByZWFsIG1haW50YWluZXJz%2Cc_Page.takumi%2Cdescription_~Q3VyYXRlZCBhZ2VudCBza2lsbHMgYnkgaHVtYW5zLCB3cml0dGVuIGJ5IHJlYWwgbWFpbnRhaW5lcnMgaW4gdGhlaXIgb3duIEdpdEh1YiByZXBvcw%2Cp_Ii9sZWFybi9hdXRob3ItcHlwaS1wYWNrYWdlLXNraWxscyI%2Cs_pNyupFLQOZxB4E6_.png"
  "og:image:alt": "skilld, agent skills written by real maintainers"
  "og:image:height": "600"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Author a Skill for your PyPI package"
  "twitter:image": "https://skilld.dev/_og/d/a_~c2tpbGxkLCBhZ2VudCBza2lsbHMgd3JpdHRlbiBieSByZWFsIG1haW50YWluZXJz%2Cc_Page.takumi%2Cdescription_~Q3VyYXRlZCBhZ2VudCBza2lsbHMgYnkgaHVtYW5zLCB3cml0dGVuIGJ5IHJlYWwgbWFpbnRhaW5lcnMgaW4gdGhlaXIgb3duIEdpdEh1YiByZXBvcw%2Cp_Ii9sZWFybi9hdXRob3ItcHlwaS1wYWNrYWdlLXNraWxscyI%2Cs_pNyupFLQOZxB4E6_.png"
  "twitter:image:alt": "skilld, agent skills written by real maintainers"
---

> Index of every page on this site: [llms.txt](https://skilld.dev/llms.txt)

# **Author a Skill for your PyPI package**

Draft a Skill for your Python API, include its files with your build backend, and inspect the wheel and source distribution.

Authoring guide

## 1. Draft your Skill

PyPI

[Choose your package](https://skilld.dev/make-skill?ecosystem=pypi)

Open your agent in the package repository. Give it these instructions to draft your Skill.

[Read the authoring Skill](https://raw.githubusercontent.com/skilld-dev/skilld/main/skills/generate-package-skill/SKILL.md)

Read https://raw.githubusercontent.com/skilld-dev/skilld/main/skills/generate-package-skill/SKILL.md. Draft a Skill for the package I maintain, published through PyPI, using this repository. Read pyproject.toml, the public API, and the current official documentation. Show the draft for review before replacing existing Skills.

Point your agent at the package repository and its `**pyproject.toml**`. Use the PyPI distribution name when identifying the package. The Python import name can differ, so check the source before writing examples. See Python's [**distribution and import package guide**](https://packaging.python.org/en/latest/discussions/distribution-package-vs-import-package/).

Ask for a draft in `**skills/your-skill/SKILL.md**`. Describe public imports, supported Python versions, optional dependencies, and common failure cases.

## 2. Review the draft

Run the examples in an environment with your package's declared dependencies. Use [**the cross-Agent selection and task checks**](https://skilld.dev/learn/create-agent-skills#check-selection-and-task-completion-separately) before publishing the Skill. Check that imports use the public API and work on supported Python versions. Remove generic advice and link version limits to your documentation. Review the files before committing them.

## 3. Include the Skill in your distributions

Read `**[build-system]**` in `**pyproject.toml**` to identify your build backend. Use that backend's file inclusion rules for both the wheel and source distribution.

With setuptools, files inside an import package can ship as package data. A root `**skills/**` directory or `**MANIFEST.in**` entry alone does not guarantee wheel inclusion. Choose a location inside your import package and configure package data when you need the Skill in the wheel. See the [**setuptools data files guide**](https://setuptools.pypa.io/en/latest/userguide/datafiles.html).

Build using your project's normal environment:

```bash
python -m build
```

The [**Python packaging tutorial**](https://packaging.python.org/en/latest/tutorials/packaging-projects/#generating-distribution-archives) explains the build prerequisite and generated archives. Inspect both files in `**dist/**`:

```bash
python -m zipfile -l dist/your_package-1.0.0-py3-none-any.whl
python -m tarfile -l dist/your_package-1.0.0.tar.gz
```

Replace the example filenames with your build output. Confirm both archives contain `**SKILL.md**` and every linked local file.

## 4. Publish and share

Commit the reviewed Skill and publish through your normal PyPI release process. Link to the Skill's repository directory from your documentation. Installing the Python package does not automatically install the Skill into an agent. Review the Skill when your public API or supported Python versions change.

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://skilld.dev/#website","@type":"WebSite","description":"Curated agent skills by humans, written by real maintainers in their own GitHub repos","name":"skilld","url":"https://skilld.dev/"},{"@id":"https://skilld.dev/learn/author-pypi-package-skills#webpage","@type":"WebPage","description":"Draft a Skill for your Python API, include its files with your build backend, and inspect the wheel and source distribution.","name":"Author a Skill for your PyPI package","url":"https://skilld.dev/learn/author-pypi-package-skills","isPartOf":{"@id":"https://skilld.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://skilld.dev/learn/author-pypi-package-skills"]}]}]}
```