{"id":22253528,"url":"https://github.com/nitrokey/nitrokey-sdk-py","last_synced_at":"2026-03-03T11:14:27.825Z","repository":{"id":249638216,"uuid":"832076049","full_name":"Nitrokey/nitrokey-sdk-py","owner":"Nitrokey","description":"Python SDK for Nitrokey devices","archived":false,"fork":false,"pushed_at":"2025-07-08T11:08:05.000Z","size":1470,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-18T07:42:23.648Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nitrokey.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSES/Apache-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-22T09:56:44.000Z","updated_at":"2025-07-08T11:07:39.000Z","dependencies_parsed_at":"2024-09-11T14:02:59.015Z","dependency_job_id":"c3aafc7b-041b-480c-a72a-e9b1f32dc009","html_url":"https://github.com/Nitrokey/nitrokey-sdk-py","commit_stats":null,"previous_names":["nitrokey/nitrokey-sdk-py"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/Nitrokey/nitrokey-sdk-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-sdk-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-sdk-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-sdk-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-sdk-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nitrokey","download_url":"https://codeload.github.com/Nitrokey/nitrokey-sdk-py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-sdk-py/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265737973,"owners_count":23820148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-03T07:18:47.761Z","updated_at":"2026-03-03T11:14:27.818Z","avatar_url":"https://github.com/Nitrokey.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nitrokey Python SDK\n\nThe Nitrokey Python SDK can be used to use and configure Nitrokey devices.\n\n**[Documentation](https://docs.nitrokey.com/software/nitrokey-sdk-py/)**\n\n## Features\n\nThe SDK supports these devices and features:\n\n- Nitrokey 3\n  - device and bootloader management (`nitrokey.nk3`)\n  - admin app (`nitrokey.trussed.admin_app`)\n  - provisioner app (`nitrokey.trussed.provisioner_app`)\n  - secrets app (`nitrokey.nk3.secrets_app`)\n- Nitrokey Passkey\n  - device and bootloader management (`nitrokey.nkpk`)\n  - admin app (`nitrokey.trussed.admin_app`)\n  - provisioner app (`nitrokey.trussed.provisioner_app`)\n\n## Installation\n\nThe Nitrokey Python SDK is released to the [Python Package Index][pypi] (PyPI) and can be installed with `pip`:\n\n[pypi]: https://pypi.org/project/nitrokey/\n\n```\n$ pip install nitrokey\n```\n\nThe releases are also available as [signed tags][releases] in the GitHub repository [Nitrokey/nitrokey-sdk-py][github].\n\n[releases]: https://github.com/Nitrokey/nitrokey-sdk-py/releases\n[github]: https://github.com/Nitrokey/nitrokey-sdk-py\n\n## Getting Started\n\n```python\nimport nitrokey.trussed\n\nprint(\"Connected Nitrokey devices:\")\nfor device in nitrokey.trussed.list():\n    print(f\"- {device.name} at {device.path}\")\n```\n\n## Compatibility\n\nThe Nitrokey Python SDK currently requires Python 3.10 or later.\nSupport for old Python versions may be dropped in minor releases.\n\n## Related Projects\n\n- [pynitrokey](https://github.com/Nitrokey/pynitrokey):\n  A command line interface for the Nitrokey FIDO2, Nitrokey Start, Nitrokey 3 and NetHSM\n- [nitrokey-app2](https://github.com/nitrokey/nitrokey-app2):\n  A graphical application to manage and use Nitrokey 3 devices\n- [nethsm-sdk-py](https://github.com/Nitrokey/nethsm-sdk-py):\n  A client-side Python SDK for NetHSM\n\n## Development\n\nThe following software is required for the development of the SDK:\n\n- Python 3.10 or newer\n- [poetry](https://python-poetry.org/)\n- GNU Make\n- git\n\nAfter 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`:\n\n```\n$ git clone https://github.com/Nitrokey/nitrokey-sdk-py.git\n$ cd nitrokey-sdk-py\n$ make install\n```\n\nWe use multiple checks and linters for this project.\nUse `make check` to run all required checks.\nSome problems can automatically be fixed by running `make fix`.\n\nThe SDK also includes minimal tests to ensure that it is installed and loaded correctly.\nUse `make test` to run these tests.\n\n### Dependency Management\n\nWe use [poetry](https://python-poetry.org) for dependency management.\npoetry maintains a lockfile with pinned dependency versions that is used for development environments and in CI.\nThis lockfile includes the hash of the `pyproject.toml` file, so it needs to be updated if `pyproject.toml` is changed.\nThese make targets can be used to invoke poetry for the most common tasks:\n\n- `make install` installs the SDK and its dependencies as specified in the lockfile (must be up-to-date)\n- `make lock` updates the lockfile without changing pinned dependency versions\n- `make update` bumps all dependencies, installs them and updates the lockfile\n\nFor more information, see poetry’s documentation on [Managing depencies](https://python-poetry.org/docs/managing-dependencies/) and [Commands](https://python-poetry.org/docs/cli/).\n\n### Publishing Releases\n\nReleases are published using Github Actions.\nTo create a new release:\n1. Update the `version` field in `pyproject.toml` manually or using `poetry version`.\n2. Update the [changelog](./CHANGELOG.md) for the release.\n3. Run `make update-version` to update the RPM package version.\n4. Commit these changes, create a PR and merge into `main`.\n5. [Trigger the `full.yaml` workflow](https://github.com/Nitrokey/nitrokey-sdk-py/actions/workflows/full.yaml) for the release branch to run the full compatibility tests.\n6. Create a signed tag with the version number and a `v` prefix, for example `v0.2.4`, and push it to this repository.\n7. [Create a new release](https://github.com/Nitrokey/nitrokey-sdk-py/releases/new) for this tag and copy the relevant parts from the [changelog](./CHANGELOG.md) to the release description.\n8. Wait for the deployment action to run and approve the deployment to [PyPI](https://pypi.org/p/nitrokey).\n9. Update the `NITROKEY_SDK_PY_VERSION` and `NITROKEY_SDK_PY_CHECKSUM` variables in the `Makefile` of the [nitrokey-documentation](https://github.com/nitrokey/nitrokey-documentation) repository to update the documentation on docs.nitrokey.com.\n\nAll commits to `main` are automatically deployed to [TestPyPI](https://test.pypi.org/p/nitrokey).\nIt is also possible to publish release candidates (pre-releases) with a suffix like `-rc.1`.\n\n## License\n\nThis software is fully open source.\n\nAll software, unless otherwise noted, is dual licensed under [Apache 2.0](./LICENSES/Apache-2.0.txt) and [MIT](./LICENSES/MIT.txt).\nYou may use the software under the terms of either the Apache 2.0 license or MIT license.\n\nUnless 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrokey%2Fnitrokey-sdk-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitrokey%2Fnitrokey-sdk-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrokey%2Fnitrokey-sdk-py/lists"}