Skip to main content
Pre-release

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

Nitrokey Python SDK

The Nitrokey Python SDK can be used to use and configure Nitrokey devices.

Documentation

Features

The SDK supports these devices and features:

  • Nitrokey 3
    • device and bootloader management (nitrokey.nk3)
    • admin app (nitrokey.trussed.admin_app)
    • provisioner app (nitrokey.trussed.provisioner_app)
    • secrets app (nitrokey.nk3.secrets_app)
  • Nitrokey Passkey
    • device and bootloader management (nitrokey.nkpk)
    • admin app (nitrokey.trussed.admin_app)
    • provisioner app (nitrokey.trussed.provisioner_app)

Installation

The Nitrokey Python SDK is released to the Python Package Index (PyPI) and can be installed with pip:

$ pip install nitrokey

The releases are also available as signed tags in the GitHub repository Nitrokey/nitrokey-sdk-py.

Getting Started

import nitrokey.trussed

print("Connected Nitrokey devices:")
for device in nitrokey.trussed.list():
    print(f"- {device.name} at {device.path}")

Compatibility

The Nitrokey Python SDK currently requires Python 3.11 or later. Support for old Python versions may be dropped in minor releases.

  • pynitrokey: A command line interface for the Nitrokey FIDO2, Nitrokey Start, Nitrokey 3 and NetHSM
  • nitrokey-app2: A graphical application to manage and use Nitrokey 3 devices
  • nethsm-sdk-py: A client-side Python SDK for NetHSM

Development

The following software is required for the development of the SDK:

  • Python 3.11 or newer
  • poetry
  • GNU Make
  • git

After checking out the source code from GitHub, you can install the SDK and its dev dependencies into a new virtual environment managed by poetry using make install:

$ git clone https://github.com/Nitrokey/nitrokey-sdk-py.git
$ cd nitrokey-sdk-py
$ make install

We use multiple checks and linters for this project. Use make check to run all required checks. Some problems can automatically be fixed by running make fix.

The SDK also includes minimal tests to ensure that it is installed and loaded correctly. Use make test to run these tests.

Dependency Management

We use poetry for dependency management. poetry maintains a lockfile with pinned dependency versions that is used for development environments and in CI. This lockfile includes the hash of the pyproject.toml file, so it needs to be updated if pyproject.toml is changed. These make targets can be used to invoke poetry for the most common tasks:

  • make install installs the SDK and its dependencies as specified in the lockfile (must be up-to-date)
  • make lock updates the lockfile without changing pinned dependency versions
  • make update bumps all dependencies, installs them and updates the lockfile

For more information, see poetry’s documentation on Managing depencies and Commands.

Publishing Releases

Releases are published using Github Actions. To create a new release:

  1. Update the version field in pyproject.toml manually or using poetry version.
  2. Update the changelog for the release.
  3. Commit these changes, create a PR and merge into main.
  4. Trigger the full.yaml workflow for the release branch to run the full compatibility tests.
  5. Create a signed tag with the version number and a v prefix, for example v0.2.4, and push it to this repository.
  6. Create a new release for this tag and copy the relevant parts from the changelog to the release description.
  7. Wait for the deployment action to run and approve the deployment to PyPI.
  8. Update the NITROKEY_SDK_PY_VERSION and NITROKEY_SDK_PY_CHECKSUM variables in the Makefile of the nitrokey-documentation repository to update the documentation on docs.nitrokey.com.

All commits to main are automatically deployed to TestPyPI. It is also possible to publish release candidates (pre-releases) with a suffix like -rc.1.

License

This software is fully open source.

All software, unless otherwise noted, is dual licensed under Apache 2.0 and MIT. You may use the software under the terms of either the Apache 2.0 license or MIT license.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Release files for nitrokey 0.5.0rc4

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

Source distribution (sdist)

Source distribution for nitrokey 0.5.0rc4
File Size Uploaded
nitrokey-0.5.0rc4.tar.gz 138.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nitrokey 0.5.0rc4
File Interpreter ABI Platform
nitrokey-0.5.0rc4-py3-none-any.whl Python 3 none any Details

Total release size: 336.1 kB

Release files / nitrokey-0.5.0rc4.tar.gz

Download URL nitrokey-0.5.0rc4.tar.gz
Size 138.9 kB
Tags Source
SHA-256 checksum
How to use checksums
bf5bb1e11fd405f1a6177b37a6da4587763061e29e8ddea862ccfab9c6545a0a
BLAKE2b-256 checksum
How to use checksums
87b0692c033d88ae49b6c24a3f8a38f4e17441fd29375c3b4e4ace96533a576f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 17, 2026.

Transparency log

Release files / nitrokey-0.5.0rc4-py3-none-any.whl

Download URL nitrokey-0.5.0rc4-py3-none-any.whl
Size 197.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c9bc7134397cf1cfdbf98349c8bd472940a5e5fb399014f84a174e9ee96df07b
BLAKE2b-256 checksum
How to use checksums
2b13e3f5deffc7fcc6558c053757b4e9e2f32ff017d934302b4ecb2667d2d1c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 17, 2026.

Transparency log
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