Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

zclick

Python command-line interfaces backed by Rust and zclap. Import the public API as import zclick as click, including the matching zclick.core, zclick.types, zclick.testing and zclick.shell_completion submodules.

The fixed compatibility target is Click 8.5.1, source commit cf19179. The versioned documentation, API inventory and original tests are pinned in compatibility/target.json. The implementation uses registry zclap 0.1.4, PyO3 0.30.1 and Rust 1.99.1 / Edition 2024.

This is a preview release; the complete compatibility target is not yet met. CPython subinterpreters are currently unsupported and are explicitly rejected at native module initialization. The locked PyO3 binding has Python object caches that are not partitioned by interpreter. See the open compatibility record. Stable publication is blocked while an open compatibility gap remains.

Compatibility evidence · Performance measurements · Architecture · Build and release

Installation and a first command

After PyPI publication, install the preview with:

pip install --pre zclick

Published wheels and source archives are also available through GitHub Releases. Ordinary CPython wheels support Python 3.10 and newer; PyPy and free-threaded CPython require their corresponding wheels or an interpreter-specific source build. The intended stable installation is pip install zclick once the outstanding compatibility gate is satisfied.

import zclick as click

@click.command()
@click.option("--count", default=1, type=int, help="Number of greetings.")
@click.option("--name", prompt="Your name", help="The person to greet.")
def hello(count, name):
    for _ in range(count):
        click.echo(f"Hello, {name}!")

if __name__ == "__main__":
    hello()

Migration

Replace import click with import zclick as click. Replace submodule imports, for example from click.testing import CliRunner, with from zclick.testing import CliRunner.

The wheel installs the zclick namespace. It has no third-party Python runtime requirements, does not install a top-level click package, and does not redirect another package's imports. Original Click is only a development and comparison dependency.

A third-party extension that imports Click internally continues to use Click. Its classes and context stack require separate migration. The extension compatibility report reproduces this boundary with locked releases of click-didyoumean, click-plugins and click-repl, including their original-Click control runs. Changing an application's import alias does not automatically migrate those extensions.

Compatibility and performance

The release gate requires the complete 33,459-case official test collection, including 31,000 stress cases, with the same test IDs and original platform skip/expected-failure conditions. It additionally checks 196 public objects and their members, the 12 upstream typing examples, native property and differential tests, and real Bash, Zsh, Fish and PowerShell completion. Results are tied to an immutable implementation commit; configured platforms are not reported as passing until their jobs succeed. See COMPATIBILITY.md and the CI runs.

Rust removes interpreter work from parsing, scheduling, dispatch and text formatting. Python object creation and virtual method calls still have a cost. The benchmark report includes construction, repeated parser calls, full Command.main calls, nested commands, help, wrapping, imports and memory measurements. Some workloads are faster and some are slower; the report includes both. No universal speedup or zero-allocation claim is made.

Examples

Example Behavior
hello.py Decorators, options, prompting and output
pipeline.py Chained commands, context state and result callbacks
workspace.py A custom type, arbitrary-size integers, context resources, environment defaults and completion
python examples/hello.py --count 2 --name Ada
python examples/pipeline.py --text 'hello world' uppercase replace WORLD Rust
python examples/workspace.py --prefix demo convert 0x10000000000000000

Shell completion setup covers the source/complete protocols and the scope of actual shell-engine validation.

Development

Use Python 3.10 or newer and the pinned Rust toolchain. Create a virtual environment, install Maturin and the test dependencies, then build the extension:

python -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-dev.txt
maturin develop --release --locked
python -m pytest tests
python scripts/run_compatibility.py

Use the development guide for complete stress verification, cross-platform builds, dependency audits, reproducible benchmarks and version bumps. The release workflow builds and installs the actual wheels before publishing them.

Architecture

Python objects preserve decorators, custom subclasses, callbacks and ordinary Python values. The native extension builds a fresh parsing plan for each call. The Rust core performs token recognition through zclap, applies Click argument consumption rules, schedules parameters and formats text. Rust also drives command groups and parser actions through Python's current methods. The core uses no_std with alloc; its only direct third-party dependency is zclap. The extension uses PyO3 and the Rust standard library.

The Python interface accepts mutations between invocations. Plans are not cached, and user callbacks run without a native lock or borrowed mutable parser state. Python integer conversion uses Python integers rather than fixed-width Rust integers. Input strings preserve surrogate code points at the binding boundary.

CliRunner changes interpreter streams, environment variables and sometimes the working directory. Use separate processes for concurrent runner tests.

The project implementation is MIT licensed. Distribution notices for the generated Click API declarations, Rust dependencies and standard library are listed in THIRD_PARTY_LICENSES.md.

Metadata

Release files for zclick 0.1.1a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zclick 0.1.1a1
File Size Uploaded Provenance Actions
zclick-0.1.1a1.tar.gz 219.5 kB With provenance Details for zclick-0.1.1a1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for zclick 0.1.1a1
File Actions
zclick-0.1.1a1-pp312-pypy312_pp80-manylinux_2_34_x86_64.whl PyPy 3.12 PyPy 3.12 8.0 Linux glibc 2.34+ x86-64 Details for zclick-0.1.1a1-pp312-pypy312_pp80-manylinux_2_34_x86_64.whl
zclick-0.1.1a1-pp311-pypy311_pp80-manylinux_2_34_x86_64.whl PyPy 3.11 PyPy 3.11 8.0 Linux glibc 2.34+ x86-64 Details for zclick-0.1.1a1-pp311-pypy311_pp80-manylinux_2_34_x86_64.whl
zclick-0.1.1a1-cp315-cp315t-manylinux_2_34_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.34+ x86-64 Details for zclick-0.1.1a1-cp315-cp315t-manylinux_2_34_x86_64.whl
zclick-0.1.1a1-cp314-cp314t-manylinux_2_34_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ x86-64 Details for zclick-0.1.1a1-cp314-cp314t-manylinux_2_34_x86_64.whl
zclick-0.1.1a1-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details for zclick-0.1.1a1-cp310-abi3-win_arm64.whl
zclick-0.1.1a1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for zclick-0.1.1a1-cp310-abi3-win_amd64.whl
zclick-0.1.1a1-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details for zclick-0.1.1a1-cp310-abi3-musllinux_1_2_x86_64.whl
zclick-0.1.1a1-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details for zclick-0.1.1a1-cp310-abi3-musllinux_1_2_aarch64.whl
zclick-0.1.1a1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for zclick-0.1.1a1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
zclick-0.1.1a1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for zclick-0.1.1a1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
zclick-0.1.1a1-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for zclick-0.1.1a1-cp310-abi3-macosx_11_0_arm64.whl
zclick-0.1.1a1-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details for zclick-0.1.1a1-cp310-abi3-macosx_10_12_x86_64.whl

Total release size: 7.8 MB

Release files / zclick-0.1.1a1.tar.gz

Download URL zclick-0.1.1a1.tar.gz
Size 219.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9d86ba424eb8f0ecef8740639461e0e2f7ee9c76fcac13dcb2fe2c4dcf3a795c
BLAKE2b-256 checksum
How to use checksums
aea4215cb248843af9835358ac5dc22c2c8cb59b23a6afa17e52a551af3b6798
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-pp312-pypy312_pp80-manylinux_2_34_x86_64.whl

Download URL zclick-0.1.1a1-pp312-pypy312_pp80-manylinux_2_34_x86_64.whl
Size 626.6 kB
Tags Linux glibc 2.34+ x86-64 PyPy 3.12 PyPy 3.12 8.0
SHA-256 checksum
How to use checksums
3e6dc314b9b414a224598be9a90e3d7acb9c2a2344a5764d0407191d5acdd51b
BLAKE2b-256 checksum
How to use checksums
821b2e59ae498e14db21261d9bd95c39046417d192111c782709e14d71019075
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-pp311-pypy311_pp80-manylinux_2_34_x86_64.whl

Download URL zclick-0.1.1a1-pp311-pypy311_pp80-manylinux_2_34_x86_64.whl
Size 628.3 kB
Tags Linux glibc 2.34+ x86-64 PyPy 3.11 PyPy 3.11 8.0
SHA-256 checksum
How to use checksums
3fe5afe1e54e22ed9d5f568ecac29fde35a1e69f121eb0f368df2d46cdb68256
BLAKE2b-256 checksum
How to use checksums
48836db28a26557ab6fd8982d02bb24a3750f2c5b0695304f96dfef8195721a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp315-cp315t-manylinux_2_34_x86_64.whl

Download URL zclick-0.1.1a1-cp315-cp315t-manylinux_2_34_x86_64.whl
Size 624.6 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
b641b61129ec25a70d8272cd58e07c22479d4c1183742e6e712cee7e9909f015
BLAKE2b-256 checksum
How to use checksums
496ec0f60602866ed9768c00142a7b66d6c74c7823d39c19a2eebc77f48bb2af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp314-cp314t-manylinux_2_34_x86_64.whl

Download URL zclick-0.1.1a1-cp314-cp314t-manylinux_2_34_x86_64.whl
Size 624.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
27e64507f1b46d37d50e636026cbcc1d0379f4ca25f8a85e14683efc7937891e
BLAKE2b-256 checksum
How to use checksums
ba8e07b4bca56fc71ba5740bd5ace7b57a8d75eb0e57c4bb5730b37bcf10833c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp310-abi3-win_arm64.whl

Download URL zclick-0.1.1a1-cp310-abi3-win_arm64.whl
Size 503.1 kB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
b5ec2cd570ac97744459f373fffad48f43413c00525378ad682f85f5a3dcebce
BLAKE2b-256 checksum
How to use checksums
6e144e0fc0677d1b6ddce1b91571d35946c0bcfd07b1fbc891fe42e09943d410
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp310-abi3-win_amd64.whl

Download URL zclick-0.1.1a1-cp310-abi3-win_amd64.whl
Size 511.4 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
355779cc84e7fb4890f8e8579fc580a98a939bd210c13cf2477ab3806df63d62
BLAKE2b-256 checksum
How to use checksums
31424a538e162148cdae3c62796858b969d4062c4230824d661c3a83ea0ea000
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL zclick-0.1.1a1-cp310-abi3-musllinux_1_2_x86_64.whl
Size 844.9 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
c308f9b241c0b8cc66940e202b86446039457b5e98d181d3d4ad089ab9229dfd
BLAKE2b-256 checksum
How to use checksums
47ccd23a1175152db1e4066360b5c3b2719143b1f9a970499b16f3b18886ae7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL zclick-0.1.1a1-cp310-abi3-musllinux_1_2_aarch64.whl
Size 802.5 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
daa463ecee2adc2b74e579f8c81a25773f437972c9dabdb93bea90d677532ccb
BLAKE2b-256 checksum
How to use checksums
554068c0d4f07e8439be6d67d3a461af5275e2a3b9ef9e0534ba306c02c41518
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL zclick-0.1.1a1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 632.2 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
457e6d01343ccc39cc925ac86ab0e43b6c85e45a165af14e06f37c827ee13a98
BLAKE2b-256 checksum
How to use checksums
19b9c77487db0608d8b1813d1cb34398f38322bc56df958175560f02a3d28f77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL zclick-0.1.1a1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 623.8 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
e86b07022018c15df6baa9e59a803b8ae5367651e37936d2c14f948e1ec83536
BLAKE2b-256 checksum
How to use checksums
bc4fcadc5f357816771b52977cf51d607a0f0db47655a2fd7c260bb06de5c81a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp310-abi3-macosx_11_0_arm64.whl

Download URL zclick-0.1.1a1-cp310-abi3-macosx_11_0_arm64.whl
Size 598.4 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5eb368ea6fe01b407ed255e692361384db31d20ee3c371454839dc80f3b53515
BLAKE2b-256 checksum
How to use checksums
2bd83c9b8ae21a6c219101a553d5e8d07994567708d60495152bc1c345044bc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / zclick-0.1.1a1-cp310-abi3-macosx_10_12_x86_64.whl

Download URL zclick-0.1.1a1-cp310-abi3-macosx_10_12_x86_64.whl
Size 604.8 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
34ec4c16a8d2670937e4c878776fe9f1fc7dbe9d862432fac956b72b8c144dab
BLAKE2b-256 checksum
How to use checksums
ae34ec267712a45540b99da41fb9334be6abcb5c6afcb9a99007f82481cd5168
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Security for zclick 0.1.1a1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 13 files in this release have been uploaded with provenance metadata.

Select from 13 files

Attestation for zclick-0.1.1a1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page