Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Get started
Connect with Matter
Alexa Connect Kit
Add-ons
Certify
Resources
Skip to main content
The Alexa Connect Kit (ACK) Module Utility Command Line Interface (CLI) provides commands and options for managing ACK products. For installation instructions and general information about the tool, see the Module Utility CLI Quick Start.

Command reference

You can run the Module Utility CLI from the command line or use the CLI within scripts. To run the Module Utility CLI, use the following syntax:
CommandDescription
barcodeGenerates the product and package QR files for your product.
The customer uses the barcode when they connect your device with Wi-Fi Simple Setup. For details, see general guidance on barcode printing.
deviceinfoGets the device serial number (DSN), public key, and firmware version of the module.
listportsDisplays the available serial ports on your computer, and their connection statuses.
lockmoduleLocks your module as a specific virtual product, such as a microwave.
provisionChanges the module state to product provisioned, and generates device certificates used for authorization and registration with Alexa.
reverttomoduleprovisionedReverts a module from a product provisioned state to a module provisioned state.
updatemoduleUpdates a module over-the-wire with a new firmware package from Amazon.
versionDisplays the current version of the ACK Module Utility.

barcode

The barcode command generates the product and package QR files for your product. The command creates two files for the package and product barcodes:
  • A .png image.
  • A file that contains a string associated with the QR code.
The command generates four files in total. The DVC_XXXXXXXXXXXXXXXX.png is the QR code that the customer scans in the Alexa app to register their product. Syntax
Options
ParameterDescriptionRequired
--port, -p <port>The serial port that your device SoC or ACK module connects toYes
--upc <upc>The universal product code (UPC) is a 12 digit numeric value assigned for the product by the manufacturer. The UPC is used on the product’s outer packaging.Yes
--includedsndeviceThis adds a device serial number (DSN) value to the barcode.No
--out, -o <output directory>The output directory for the barcode image files. If not specified, the current directory is used.No
--loglevelSet the type of messages to log. Logs are stored to your system’s TEMP directory. Valid values are off, info, warning, and error. The default is error.No
--dpiSet an explicit DPI value for the barcode. Use any value supported by the Barcode4J library. If not specified, a value of 300 is used.No
--productsizeSet an explicit size in millimeters for the Product barcode. Use any value supported by the Barcode4J library. If not explicitly set, the command calculates the size automatically.No
--packagesizeSet an explicit size in millimeters for the Package barcode. Use any value supported by the Barcode4J library.No
--help, -hDisplay help for the command.No
Example In a terminal window, at the command prompt, enter the following command:
The following output appears: Barcode files successfully created in ./ directory.

deviceinfo

The deviceinfo command returns the device serial number (DSN), public key, and firmware version of the module. Information can be retrieved in any order, or in any combination. If you don’t include any parameters, all three are returned. Syntax deviceinfo --port <port> [--dsn] [--firmwareversion] [--puk] Options
ParameterDescriptionRequired
--port, -p <port>The serial port that your device SoC or ACK module connects toYes
--dsnPrints the module’s device serial number (DSN).No
--firmwareversionPrints the module’s firmware version.No
--pukPrints the public key for the module.No
--loglevelSet the type of messages to log. Logs are stored to your system’s TEMP directory. Valid values are off, info, warning, and error. The default is error.No
--help, -hDisplay help for the command.No
Example In a terminal window, at the command prompt, enter the following command:
The following output appears:

listports

The listports command shows the available serial ports on your computer, and their connection statuses. Use this command before other commands that require a --port parameter. Syntax listports Options
ParameterDescriptionRequired
--loglevelSet the type of messages to log. Logs are stored to your system’s TEMP directory. Valid values are off, info, warning, and error. The default is error.No
--help, -hDisplay help for the command.No
Example Select the tab that corresponds to your operating system.
In a terminal window, at the command prompt, enter the following command:
The following output appears:

lockmodule

The lockmodule command locks your module as a specific virtual product, such as a microwave. For details, see Module Life Cycle. Syntax lockmodule --port <port> [--noprompt] Options
ParameterDescriptionRequired
--port, -p <port>The serial port that your device SoC or ACK module connects toYes
--nopromptLocks the module without user confirmation.No
--loglevelSet the type of messages to log. Logs are stored to your system’s TEMP directory. Valid values are off, info, warning, and error. The default is error.No
--help, -hDisplay help for the command.No
Example In a terminal window, at the command prompt, enter the following command:

provision

The provision command changes the module state to product provisioned, and generates device certificates used for authorization and registration with Alexa. For details, see Module Life Cycle.

provision (ACK managed services)

When you provision by using ACK managed services, the provision command generates device certificates flashes them to the module’s memory. For step-by-step instructions, see Provision Your Module. This method is the default method for the provision command. Unless you’re ready to start manufacturing your product, use this method. Syntax
Options
ParameterDescriptionRequired
--port, -p <port>The serial port that your device SoC or ACK module connects toYes
--provisionconfigfile <path>/ProvisioningInfo_[devicetypeid].confThe path to the provisioning configuration file. You download the provisioning file from the ACK developer console.You must specify either --provisionconfigfile, or all of --devicetype, --simplesetupid, and --simplesetupztskey.
--devicetype, -d <device type ID>A randomly generated string that corresponds to a unique device type.You must specify either --provisionconfigfile, or all of --devicetype, --simplesetupid, and --simplesetupztskey.
--simplesetupid, -i <simple setup ZTS key>A string that’s used for Wi-Fi Simple Setup.You must specify either --provisionconfigfile, or all of --devicetype, --simplesetupid, and --simplesetupztskey.
--simplesetupztskey <simple setup ZTS key>A string that’s used for Zero-Touch Setup.You must specify either --provisionconfigfile, or all of --devicetype, --simplesetupid, and --simplesetupztskey.
--loglevelSet the type of messages to log. Logs are stored to your system’s TEMP directory. Valid values are off, info, warning, and error. The default is error.No
--help, -hDisplay help for the command.No
Example To provision a module by using ACK managed services, in a terminal window, at the command prompt, enter the following command:
If the module is already provisioned as a product, a message like The module is already provisioned as product AZCQX0BWIKW8F. Reprovision? Y/N appears. In this case, choose Y to provision the module again. You can omit the configuration file and manually specify the --devicetype, --simplesetupid, and --simplesetupztskey. For example:
The following output appears:

provision (Yubikey)

Provision by using a YubiKey when you’re ready to start manufacturing your product. This method relies on relies on device certificates stored on a YubiKey hardware security module, provided by Amazon. Contact your Amazon business representative to use this method. For step-by-step instructions, see Provision Your Module with a YubiKey. Syntax
Options
ParameterDescriptionRequired
--port, -p <port>The serial port that your device SoC or ACK module connects toYes
--provisionconfigfile <path>/ProvisioningInfo_[devicetypeid].confThe path to the provisioning configuration file. You download the provisioning file from the ACK developer console.You must specify either --provisionconfigfile, or all of --devicetype, --simplesetupid, and --simplesetupztskey.
--devicetype, -d <device type ID>A randomly generated string that corresponds to a unique device type.You must specify either --provisionconfigfile, or all of --devicetype, --simplesetupid, and --simplesetupztskey.
--simplesetupid, -i <simple setup ID>A string that’s used for Wi-Fi Simple Setup.You must specify either --provisionconfigfile, or all of --devicetype, --simplesetupid, and --simplesetupztskey.
--simplesetupztskey <simple setup ZTS key>A string that is used for Zero-Touch Setup.You must specify either --provisionconfigfile, or all of --devicetype, --simplesetupid, and --simplesetupztskey.
--yubikeypinfile <path>/YubiKeyPin.txtThe path to the file that contains the YubiKey pin. The file is named YubiKeyPin.txt.Yes
--yubikeyslot <slot number>The YubiKey smart card slot number, as an integer. For Windows, specify the slot number if your YubiKey slot is different than 0. For Ubuntu 16.04 or earlier, specify the slot number if your YubiKey slot is different than 1. For Ubuntu 18.04 and later, always specify the slot number. To locate the slot number, see Identify the YubiKey slot number.No
--loglevelSet the type of messages to log. Logs are stored to your system’s TEMP directory. Valid values are off, info, warning, and error. The default is error.No
--help, -hDisplay help for the command.No
Example In a terminal window, at the command prompt, enter the following command:
The following output appears:

reverttomoduleprovisioned

The reverttomoduleprovisioned command reverts a module from a product provisioned state to a module provisioned state. For details, see Module Life Cycle. Syntax reverttomoduleprovisioned --port <port> Options
ParameterDescriptionRequired
--port, -p <port>The serial port that your device SoC or ACK module connects toYes
--loglevelSet the type of messages to log. Logs are stored to your system’s TEMP directory. Valid values are off, info, warning, and error. The default is error.No
--help, -hDisplay help for the command.No
Example To revert the ACK Module from a product provisioned state to a module provisioned state, In a terminal window, at the command prompt, enter the following command:
The following output appears:

updatemodule

The updatemodule command updates a module over the wire with a new firmware package from Amazon. Download firmware packages from the Resources page of the ACK developer console. Syntax updatemodule --port <port> --updatefile <file path> [--fallback] Options
ParameterDescriptionRequired
-p,--port <port>The serial port that your device SoC or ACK module connects toYes
--updatefile <file path>The path to the firmware update file.Yes
--fallbackFor firmware versions earlier than v211091120. This is a deprecated process for updating the module; use only if directed by Amazon.No
--loglevelSet the type of messages to log. Logs are stored to your system’s TEMP directory. Valid values are off, info, warning, and error. The default is error.No
--help, -hDisplay help for the command.No
Example In a terminal window, at the command prompt, enter the following command:

version

The version command displays the current version of the ACK Module Utility. Syntax version Options
ParameterDescriptionRequired
--loglevelSet the type of messages to log. Logs are stored to your system’s TEMP directory. Valid values are off, info, warning, and error. The default is error.No
--help, -hDisplay help for the command.No
Example In a terminal window, at the command prompt, enter the following command:
Output similar to the following appears: Version: 4.0.2.0
Last modified on October 5, 2026