Skip to content

elgatosf/cli

Repository files navigation

Stream Deck SDK banner

Maker CLI (Beta)

Maker CLI npm package Build status SDK documentation Join the Marketplace Makers Discord Elgato homepage

Installation

npm install -g @elgato/cli

Usage

Usage: streamdeck [options] [command]

Options:
  -v                            display CLI version
  -h, --help                    display help for command

Commands:
  create                        Stream Deck plugin creation wizard.
  link [path]                   Links the plugin to Stream Deck.
  restart|r <uuid>              Starts the plugin in Stream Deck; if the plugin is already running, it is stopped first.
  stop|s <uuid>                 Stops the plugin in Stream Deck.
  dev [options]                 Enables developer mode.
  validate [options] [path]     Validates the Stream Deck plugin.
  pack|bundle [options] [path]  Create a .streamDeckPlugin file from the plugin.
  config                        Manage the local configuration.
  help [command]                display help for command

Alias:
  streamdeck
  sd

Commands

  • create
    Creation wizard.
  • link
    Links the plugin to Stream Deck.
  • restart
    Starts the plugin in Stream Deck; if the plugin is already running, it is stopped first.
  • stop
    Stops the plugin in Stream Deck.
  • validate (beta)
    Validates the Stream Deck plugin.
  • pack (beta)
    Create a .streamDeckPlugin file from the plugin.
  • dev
    Enables developer mode.
  • config
    Manage the local configuration.

✏️ create

Creation wizard.

Synopsis

streamdeck create

Description

The creation wizard will guide you through creating Stream Deck plugins with our official Node.js SDK, and provides all scaffolding required to get started quickly. As part of the wizard, developer mode is enabled, and the plugin built and linked to Stream Deck making it ready for use.

To learn more about creating Stream Deck plugins with Node.js, see our Stream Deck SDK.

See Also

πŸ”— link

Links the plugin to Stream Deck.

Synopsis

streamdeck link [path]

Description

Links the specified path (folder) to Stream Deck, effectively installing the plugin, allowing it to be accessed from within Stream Deck. When the path is unspecified, the current working directory is used.

Note: The folder name should reflect the UUID of the plugin, and must be suffixed with .sdPlugin, eg. com.elgato.wave-link.sdPlugin.

♻️ restart

Starts the plugin in Stream Deck; if the plugin is already running, it is stopped first.

Synopsis

streamdeck restart <uuid>

alias: r

Description

Instructs Stream Deck to start the plugin, as determined by the UUID. If the plugin is already running within Stream Deck, it is first stopped and then started. As part of restarting the plugin all resources associated with the plugin, including manifest definitions, are reloaded.

See Also

πŸ›‘ stop

Stops the plugin in Stream Deck.

Synopsis

streamdeck stop <uuid>

alias: s

Description

Instructs Stream Deck to stop the plugin, as determined by the UUID. When stopped, the plugin and all of its resources are unloaded from Stream Deck allowing the plugin to be changed.

See Also

βœ… validate (beta)

Validates the Stream Deck plugin.

Synopsis

streamdeck validate [path]

Arguments:
  path                  Path of the plugin to validate

Options:
  --force-update-check  Forces an update check (default: false)
  --no-update-check     Disables updating schemas

Description

Validates the Stream Deck plugin in the current working directory, or path when specified, and outputs the validation results. By default, the command will automatically check and install validation rule updates; this check occurs daily, unless forced with --force-update-check or prevented with --no-update-check.

Configuration

--force-update-check

  • Default: false
  • Type: Boolean

Forces an update check of new validation rules; by default, an update check will occur once a day. Cannot be used in conjunction with --no-update-check.

--no-update-check

  • Default: false
  • Type: Boolean

Prevents an update check of new validation rules. This configuration option is recommended when using the CLI as part of a build pipeline. Cannot be used in conjunction with --force-update-check.

πŸ“¦ pack (beta)

Creates a .streamDeckPlugin file from the plugin.

Synopsis

streamdeck pack [options] [path]

Arguments:
  path                  Path of the plugin to pack

Options:
  --dry-run             Generates a report without creating a package (default: false)
  -f|--force            Forces saving, overwriting an package if it exists (default: false)
  -o|--output <output>  Specifies the path for the output directory
  --version <version>   Plugin version; value will be written to the manifest"
  --force-update-check  Forces an update check (default: false)
  --no-update-check     Disables updating schemas

alias: bundle

Description

Creates a .streamDeckPlugin installer file allowing the plugin to be distributed. The plugin must pass validation prior to bundling.

By default, all files within the specified path are included except .git, /.env*, *.log, and *.js.map directories and files. To specify directories or files that should be ignored, a .sdignore file can be created in the root of the plugin, i.e. alongside the manifest, using .gitignore specification.

Example

Create a .streamDeckPlugin of the plugin located in com.elgato.test.sdPlugin/, writing the packaged file to a dist/ folder, specifying the new version.

streamdeck pack com.elgato.test.sdPlugin/ --output dist/

Create a .streamDeckPlugin of the current working directory, specifying a new version of the plugin.

streamdeck pack --version 0.8.2

Generate a report for the plugin in the current working directory, without creating a .streamDeckPlugin file.

streamdeck pack --dry-run

Configuration

--dry-run

  • Default: false
  • Type: Boolean

Generates a report without creating a package.

-f|--force

  • Default: false
  • Type: Boolean

Determines whether to overwrite the existing .streamDeckPlugin file if one already exists at the specified output directory.

-o|--output <output>

  • Default: cwd
  • Type: String

Specifies the path for the output directory where the .streamDeckPlugin file will be created.

--version <version>

  • Default: undefined
  • Type: String (semver)

Plugin version; value will be written to the manifest's Version property prior to packaging the plugin.

--force-update-check

  • Default: false
  • Type: Boolean

Forces an update check of new validation rules; by default, an update check will occur once a day. Cannot be used in conjunction with --no-update-check.

--no-update-check

  • Default: false
  • Type: Boolean

Prevents an update check of new validation rules. This configuration option is recommended when using the CLI as part of a build pipeline. Cannot be used in conjunction with --force-update-check.

πŸ—οΈ dev

Enables developer mode.

Synopsis

streamdeck dev [-d|--disable]

Description

Developer mode enables the local development of Stream Deck plugins, and provides the Maker with additional capabilities for building and debugging with Stream Deck. Whilst enabled, Node.js plugins can be executed, and it is also possible to debug the property inspector locally at http://localhost:23654/.

βš™οΈ config

Manage the local configuration.

Synopsis

streamdeck config set <key>=<value> [<key>=<value>...]
streamdeck config unset <key> [<key>...]
streamdeck config list
streamdeck config reset

Description

The CLI gets its configuration settings from the user's local environment. These configuration settings define the output of commands and how they're executed, and enable customization of interaction. The streamdeck config command can be used to update and manage these settings.

Sub-commands

set

streamdeck config set <key>=<value> [<key>=<value>...]

Sets each of the configuration keys to the value provided.

unset

streamdeck config <key> [<key>...]

Sets each of the configuration keys to their default values.

reset

streamdeck config reset

Resets all configuration keys to their default values.

list

streamdeck config list

Lists the defined configuration, eg. values defined using config set.

Configuration

reduceMotion

  • Default: false
  • Type: Boolean

Determines whether feedback provided should prefer reduced motion; when true, the busy indicator will be rendered as a static indicator.

packageManager

  • Default: npm
  • Type: bun | npm | pnpm | yarn

Determines the package manager to use when installing dependencies for every new project.