Skip to main content

CLI util to create the scaffolding of a Stream Deck plugin, validate it, and pack it to be ready for install.

Project description

Python StreamDeck Plugin SDK CLI

A command-line interface (CLI) tool for packaging Elgato Stream Deck plugins. This tool helps automate the process of creating plugin packages using the Python plugin SDK library.

Features

  • Create a fresh Python plugin project with scaffolding provided by a template.
  • Validate a plugin's structure.
  • Pack Stream Deck plugins into distributable .streamDeckPlugin files
  • Support for .packignore file to exclude unwanted files/directories
  • Automatic plugin UUID directory structure creation

Installation

To install the required dependencies, run:

pip install streamdeck-plugin-sdk-cli

Usage

Create a New Plugin

To create a new Stream Deck plugin project, run:

streamdeck-cli create

This will create a new project at the current directory from the template at https://github.com/strohganoff/python-streamdeck-plugin-template.git.

Validate a Plugin

To validate the plugin manifest and directory structure, run:

streamdeck-cli validate /path/to/plugin

Note that the manifest.json file must be updated and saved as a proper json file (no comments) to pass validation.

Pack a Plugin

To pack the plugin into a .streamDeckPlugin file, run:

streamdeck-cli pack /path/to/plugin --output /path/to/output

If you don't pass in a version argument, the script will automatically look up the plugin version in the manifest.json file to place the release package into a directory named for that version under the specified output directory.

If there is already a release directory with that version, the script will handle giving a subversion (or incrementing the subversion) to apply to the directory name. So if a version '0.0.1' has already been packed, a new release directory will be saved to named '0.0.1-1', but the version in the manifest.json file will be unchanged. If a release was already saved to directory '0.0.1-1', then a new release directory will be saved to named '0.0.1-2'.

Next Step

Simply double-click the .streamDeckPlugin file, which will load up the plugin in the Stream Deck application.

Pack for debug mode

To pack the plugin in debug mode, which enables remote debugging capabilities, use the --debug flag:

streamdeck-cli pack /path/to/plugin --debug --debug-port 5679

This will create a flag file named .debug in the packed plugin containing the specified port.

When this file is included, the plugin will wait for a debugger to attach at that port before starting. You can use tools like VS Code's Python debugger or PyCharm's remote debugger to connect to it.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamdeck_plugin_sdk_cli-0.1.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

streamdeck_plugin_sdk_cli-0.1.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file streamdeck_plugin_sdk_cli-0.1.0.tar.gz.

File metadata

File hashes

Hashes for streamdeck_plugin_sdk_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7dd99a3f2009e4d5e8aef4f7261798ed08d5d4eab8af524c95f5749ca7593193
MD5 eea56890839f8bb7009e9f823769904a
BLAKE2b-256 765f5b1675456f53ec73ead0b51e6beb0ed1546111330c5857a6549125ae9916

See more details on using hashes here.

Provenance

The following attestation bundles were made for streamdeck_plugin_sdk_cli-0.1.0.tar.gz:

Publisher: publish.yml on strohganoff/python-streamdeck-plugin-sdk-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file streamdeck_plugin_sdk_cli-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for streamdeck_plugin_sdk_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4c63db51b799d1ddcd36a825ae2c38ed395ac2d1f66ae023bc795e5d164cda2c
MD5 7fcf772e70203c884f975aabf65b8f0a
BLAKE2b-256 ad658a755c6a0dada6b601bbead5963da2d97d57b12d6e6ff4cd0a4fed8788bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for streamdeck_plugin_sdk_cli-0.1.0-py3-none-any.whl:

Publisher: publish.yml on strohganoff/python-streamdeck-plugin-sdk-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page