Skip to content
SPECIFICTION
Get listed

Twine

twine.readthedocs.io

Free plan WindowsmacOSLinux

What it is

Twine publishes already-built Python package distributions to PyPI, TestPyPI, and other configured repositories, including private registries. It uploads source and binary files independently of the build system, so uploading does not require it to run setup.py. Twine accepts packaging formats including wheels, and its check command checks whether a distribution’s long description will render correctly on PyPI. It authenticates to PyPI over HTTPS using a verified connection, can sign files with GPG, and can upload files signed in advance. Repository settings can be supplied in a.pypirc file, command-line options, or environment variables, which can be useful on CI and build servers. Twine can store repository usernames and passwords with keyring, though headless Linux systems may need extra setup to store secrets securely. The package requires Python 3.10 or later, is licensed under Apache-2.0, and supports Linux, macOS, and Windows. Its plan is free. Twine is classified for developers and handles package publishing, but does not provide lockfile support, environment management, or dependency groups.

Spec sheet

Purpose
Twine is a utility for publishing Python packages to PyPI and other repositories.Read 8 Oct 2026 · twine.readthedocs.io
Intended users
PyPI classifies Twine’s intended audience as developers.Read 8 Oct 2026 · pypi.org
Security
The documentation says Twine authenticates to PyPI over HTTPS using a verified connection.Read 7 Oct 2026 · twine.readthedocs.io
License
The package is licensed under Apache-2.0.Read 8 Oct 2026 · pypi.org
Automation
The documentation notes that environment-variable configuration can be useful on CI or build servers.Read 7 Oct 2026 · twine.readthedocs.io
Build independence
Twine uploads already-built distribution files without requiring it to run setup.py.Read 7 Oct 2026 · twine.readthedocs.io
Build workflow
Twine uploads files that have already been created, so distributions can be tested before release without executing setup.py during upload.Read 8 Oct 2026 · twine.readthedocs.io
Configuration
Repository settings can be supplied through a .pypirc file, command-line options, or environment variables.Read 8 Oct 2026 · twine.readthedocs.io
Credential storage
Twine supports storing repository usernames and passwords securely using keyring.Read 8 Oct 2026 · twine.readthedocs.io
Distribution checks
The twine check command checks whether a distribution’s long description will render correctly on PyPI.Read 7 Oct 2026 · twine.readthedocs.io
File signing
Twine supports signing uploads with GPG and can upload pre-signed .asc files.Read 8 Oct 2026 · twine.readthedocs.io
Keyring limitation
The documentation says keyring may require additional setup on some systems, especially Linux headless environments.Read 8 Oct 2026 · twine.readthedocs.io
Package checks
The twine check command checks whether a distribution’s long description will render correctly on PyPI.Read 8 Oct 2026 · twine.readthedocs.io
Package formats
Twine supports any packaging format, including wheels.Read 7 Oct 2026 · twine.readthedocs.io
Package uploads
It uploads source and binary distribution files independently of the build system.Read 8 Oct 2026 · twine.readthedocs.io
Repositories
Twine documentation shows uploading to PyPI, Test PyPI, and other package indexes configured by repository name or URL.Read 8 Oct 2026 · twine.readthedocs.io
Runtime requirement
The package requires Python 3.10 or later.Read 8 Oct 2026 · pypi.org
Secure connection
Twine authenticates to PyPI over HTTPS using a verified connection.Read 8 Oct 2026 · twine.readthedocs.io
Signing
Twine supports signing files with GPG and uploading files that were signed in advance.Read 7 Oct 2026 · twine.readthedocs.io
Supported formats
Twine supports uploading any packaging format, including wheels.Read 8 Oct 2026 · twine.readthedocs.io
Supported operating systems
The PyPI project page lists macOS, Windows, and POSIX/Linux among its operating-system classifiers.Read 7 Oct 2026 · pypi.org

Plans and prices

Twine Free Apache-2.0 · Python >=3.10 Read 8 Oct 2026 · pypi.org

Every Twine plan and price →

Strong points and limits

Strong points

  • Uploads source and binary distributions without running setup.py.
  • Supports PyPI, TestPyPI, and configured private repositories.
  • Accepts packaging formats including wheels.
  • Offers HTTPS authentication and GPG signing.

Limits

  • Requires Python 3.10 or later.
  • Headless Linux may need extra keyring setup.
  • Does not provide lockfile support or environment management.

Who it suits

Twine suits developers who need to upload built Python distributions to public or private repositories. It is useful when package checks, signing, or CI-oriented configuration are part of the publishing workflow.

Verdict

Twine focuses on checking and publishing Python package files rather than managing environments or dependencies. Its repository configuration and signing options support varied publishing workflows, with extra keyring setup potentially needed on headless Linux.

Where Specifiction places it

Alternatives to TwineAll alternatives →