== CanoKey Manager CLI
image:https://github.com/canokeys/canokey-manager/actions/workflows/source-package.yml/badge.svg["Source package build", link="https://github.com/canokeys/canokey-manager/actions/workflows/source-package.yml"]
image:https://github.com/canokeys/canokey-manager/actions/workflows/windows.yml/badge.svg["Windows build", link="https://github.com/canokeys/canokey-manager/actions/workflows/windows.yml"]
image:https://github.com/canokeys/canokey-manager/actions/workflows/macOS.yml/badge.svg["MacOS build", link="https://github.com/canokeys/canokey-manager/actions/workflows/macOS.yml"]
image:https://github.com/canokeys/canokey-manager/actions/workflows/ubuntu.yml/badge.svg["Ubuntu build", link="https://github.com/canokeys/canokey-manager/actions/workflows/ubuntu.yml"]
Python 3.10 (or later) library and command line tool for configuring a CanoKey.
This project is a fork of https://github.com/Yubico/yubikey-manager[YubiKey Manager].
Install the `canokey-manager` package and use the `ckman` command.
The Python import namespaces remain `ykman` and `yubikit`.
=== Usage
For upstream usage information and examples, see the https://docs.yubico.com/software/yubikey/tools/ykman/Using_the_ykman_CLI.html[YubiKey Manager CLI User Manual].
Use `ckman` in place of `ykman`; command availability depends on CanoKey firmware.
See the link:doc/CanoKey-Firmware-Versions.md[firmware protocol changelog].
The following lists commands applicable to CanoKey. The inherited `config`
command cannot configure CanoKey applications. Yubico OTP (`otp`), YubiHSM
Auth (`hsmauth`), and Security Domain (`securitydomain`) are not supported on
CanoKey, even if their command entries appear in the CLI help.
....
Usage: ckman [OPTIONS] COMMAND [ARGS]...
Configure your CanoKey via the command line.
Examples:
List connected CanoKeys, only output serial number:
$ ckman list --serials
Show information about CanoKey with serial number 0123456:
$ ckman --device 0123456 info
Options:
-d, --device SERIAL specify which CanoKey to interact with by serial number
-r, --reader NAME specify a CanoKey by smart card reader name (can't be used with --device or list)
-l, --log-level [ERROR|WARNING|INFO|DEBUG|TRAFFIC]
enable logging at given verbosity level
--log-file FILE write log to FILE instead of printing to stderr (requires --log-level)
--diagnose show diagnostics information useful for troubleshooting
-v, --version show version information about the app
--full-help show --help output, including hidden commands
-h, --help show this message and exit
Commands for CanoKey:
info show general information
list list connected CanoKeys
fido manage the FIDO applications
oath manage the OATH application
openpgp manage the OpenPGP application
piv manage the PIV application
....
The `--help` argument can also be used to get detailed information about specific
subcommands:
ckman oath --help
=== Versioning/Compatibility
This project follows https://semver.org/[Semantic Versioning]. Any project
depending on canokey-manager should take care when specifying version ranges to
not include any untested major version, as it is likely to have backwards
incompatible changes. For example, you should NOT depend on ">=5", as it has no
upper bound. Instead, depend on ">=5, <6", as any release before 6 will be
compatible.
Note that any private variables (names starting with '_') are not part of the
public API, and may be changed between versions at any time.
=== Installation
CanoKey Manager can be installed independently of platform by using pip (or
equivalent):
pip install --user canokey-manager
On Linux platforms you will need `pcscd` installed and running to be able to
communicate with a CanoKey over the SmartCard interface. Additionally, you may
need to set permissions for your user to access CanoKey via the FIDO HID interface.
See the Smart Card Access and FIDO Access sections in
link:doc/Device_Permissions.adoc[Device Permissions].
Some of the libraries used by canokey-manager have C-extensions, and may require
additional dependencies to build, such as http://www.swig.org/[swig] and
potentially https://pcsclite.apdu.fr/[PCSC lite].
=== Pre-built packages
Use the `canokey-manager` Python package for this fork. Packages named
`yubikey-manager` from Yubico or third parties install the upstream project.
==== Windows
The CanoKey fork does not publish a standalone Windows installer. Install the
`canokey-manager` Python package instead; Windows remains covered by CI tests.
==== MacOS
Install the Python package above. The
https://github.com/canokeys/canokey-manager/actions/workflows/macOS.yml[macOS workflow]
also builds a `ckman.pkg` installer in the `ckman-builds-macos` artifact.
===== Uninstallation of the MacOS .pkg
To uninstall CanoKey Manager when installed via the .pkg installer, run:
$ sudo rm -rf /usr/local/bin/ckman /usr/local/ckman
==== Linux
Python-specific tools such as pip, pipx, or uv can be used directly to install and
manage canokey-manager, and are the recommended approach.
==== FreeBSD
CanoKey Manager is not covered by this project's CI on FreeBSD. The
`pyXY-yubikey-manager` port installs upstream YubiKey Manager, not this fork.
==== From source (for development)
To install and run this fork from source:
$ git clone https://github.com/canokeys/canokey-manager.git
$ cd canokey-manager
$ uv sync --locked
$ uv run ckman --help
See the link:doc/Development.adoc[development] instructions for dependencies
and tooling; use the repository above and `ckman` in place of `ykman`.
=== Shell completion
Experimental shell completion for the command line tool is available, provided
by the underlying CLI library (`click`) but it is not enabled by default. To
enable it, run this command once (for Bash):
$ source <(_CKMAN_COMPLETE=bash_source ckman | sudo tee /etc/bash_completion.d/ckman)
More information on shell completion (including instructions for other shells) is
available at:
https://click.palletsprojects.com/en/stable/shell-completion/
Metadata
Release files for canokey-manager 5.9.2.post1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| canokey_manager-5.9.2.post1.tar.gz | 268.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| canokey_manager-5.9.2.post1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 513.0 kB
Release files / canokey_manager-5.9.2.post1.tar.gz
| Download URL | canokey_manager-5.9.2.post1.tar.gz |
|---|---|
| Size | 268.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c83e1e04c76144237db5fc52e8ada1d9bb8d764214d6daab5489950df1ad8ad7
|
|
BLAKE2b-256 checksum How to use checksums |
cbe81cd3f50bf9a1c969b73be8e27be79dc6fa63725a2931231a62775feca556
|
| 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 Sep 8, 2026.
Transparency logRelease files / canokey_manager-5.9.2.post1-py3-none-any.whl
| Download URL | canokey_manager-5.9.2.post1-py3-none-any.whl |
|---|---|
| Size | 244.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6017a50c254098662d782dc62d34072a042337441e53f7d4e08b8de26c889d5
|
|
BLAKE2b-256 checksum How to use checksums |
fdaf967e36e447c4858b21d3a632bdaeb70bf0744ea06d8bab68697c5f2cf298
|
| 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 Sep 8, 2026.
Transparency log