Official build system repository for Setuptools, the Python packaging library used to build and distribute Python projects.
pypa/twine
A command-line utility for uploading Python source and wheel distributions to PyPI, independent of the build system used.
- Stars
- 1,792
- Forks
- 349
- Open issues
- 58
- Last commit
- 25 days ago
What is it?
Twine publishes Python packages to PyPI. It takes the distribution artifacts produced by your build, such as source distributions and wheels, and uploads them to the index, whether you are releasing a new project or adding a new version to an existing one.
Because Twine only handles the upload step, it works the same way regardless of which build backend created the files. You build the package with whatever tool your project uses, then run Twine on the resulting files in the dist directory.
The project is maintained under the PyPA (Python Packaging Authority) organization. Installation instructions, feature details and usage guides are hosted on its documentation site.
Key features
- 01Uploads source distributions and wheels to PyPI.
- 02Works independently of the build system that produced the artifacts.
- 03Supports both new projects and new releases of existing projects.
- 04Provides a command-line interface for publishing packages.
Use cases
- Publishing a new Python library to PyPI for others to install with pip.
- Releasing a new version of an existing package from a CI pipeline.
- Uploading locally built wheels and sdists after running a build tool.
Quick start
- 1
Read the installation and usage docs
In collections
Topics
FAQ
- What is twine?
- A command-line utility for uploading Python source and wheel distributions to PyPI, independent of the build system used. Twine publishes Python packages to PyPI. It takes the distribution artifacts produced by your build, such as source distributions and wheels, and uploads them to the index, whether you are releasing a new project or adding a new version to an existing one.
- Is twine free to use? What license does it have?
- twine is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is twine still maintained?
- Actively maintained. The last commit to twine was on Oct 14, 2026.
- What can I use twine for?
- Publishing a new Python library to PyPI for others to install with pip. Releasing a new version of an existing package from a CI pipeline. Uploading locally built wheels and sdists after running a build tool.
- How do I install twine?
- Read the installation and usage docs
- Where can I get twine?
- The source code and installation instructions are on GitHub: https://github.com/pypa/twine
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Command-line tool for inspecting, unpacking, repacking and retagging Python wheel (.whl) files, and converting eggs to wheels.
The standard package installer for Python, used to install packages from the Python Package Index (PyPI) and other indexes.
A simple tool for building and publishing pure-Python packages and modules to PyPI with minimal configuration.
A Python project generator that bootstraps installable, PyPI-ready packages with tox, pytest, Sphinx docs and Git versioning preconfigured.
A command-line tool that checks whether a Python package's sdist includes all version-controlled files, and can update MANIFEST.in to fix gaps.