NAV

Screenly CLI

The Screenly CLI simplifies interactions with Screenly through your terminal, designed for both manual use and task automation.

Installation

From Releases

Download the latest release here.

Homebrew (macOS only)

$ brew tap screenly/screenly-cli
$ brew install screenly-cli

Nix

$ nix-shell -p screenly-cli

Docker

For other operating systems or Docker usage:

$ docker run --rm \
    -e API_TOKEN=YOUR_API_TOKEN \
    screenly/cli:latest help

Building from Source

To build the Screenly CLI from source, ensure you have Rust installed:

$ cargo build --release

The screenly binary will be located in target/release.

To configure a non-production API server, set the API_SERVER_NAME environment variable:

$ API_SERVER_NAME=local cargo build --release

GitHub Action

Integrate Screenly CLI into your GitHub workflows:

Inputs

screenly_api_token

Required Screenly API token for your team.

cli_commands

Required Command to execute (e.g., screen list).

cli_version

Optional CLI version override.

Example usage

uses: screenly/cli@master
with:
  screenly_api_token: ${{ secrets.SCREENLY_API_TOKEN }}
  cli_commands: screen list

Commands

Command line interface is intended for quick interaction with Screenly through terminal. Moreover, this CLI is built such that it can be used for automating tasks.

Usage: screenly [OPTIONS] <COMMAND>

screenly [OPTIONS] <COMMAND>
Subcommands:
Options:

Login

Logins with the token and stores it for further use if it's valid. You can set API_TOKEN environment variable to override used API token

Usage: screenly login

screenly login

Logout

Logouts and removes stored token

Usage: screenly logout

screenly logout

Screen

Screen related commands

Usage: screenly screen <COMMAND>

screenly screen <COMMAND>
Subcommands:

List

Lists your screens

Usage: screenly screen list [OPTIONS]

screenly screen list [OPTIONS]
Options:

Get

Gets a single screen by id

Usage: screenly screen get [OPTIONS] <UUID>

screenly screen get [OPTIONS] <UUID>
Arguments:
Options:

Add

Adds a new screen

Usage: screenly screen add [OPTIONS] <PIN> [NAME]

screenly screen add [OPTIONS] <PIN> [NAME]
Arguments:
Options:

Delete

Deletes a screen. This cannot be undone

Usage: screenly screen delete <UUID>

screenly screen delete <UUID>
Arguments:

Asset

Asset related commands

Usage: screenly asset <COMMAND>

screenly asset <COMMAND>
Subcommands:

List

Lists your assets

Usage: screenly asset list [OPTIONS]

screenly asset list [OPTIONS]
Options:

Get

Gets a single asset by id

Usage: screenly asset get [OPTIONS] <UUID>

screenly asset get [OPTIONS] <UUID>
Arguments:
Options:

Add

Adds a new asset

Usage: screenly asset add [OPTIONS] <PATH> <TITLE>

screenly asset add [OPTIONS] <PATH> <TITLE>
Arguments:
Options:

Delete

Deletes an asset. This cannot be undone

Usage: screenly asset delete <UUID>

screenly asset delete <UUID>
Arguments:

Inject js

Injects JavaScript code inside of the web asset. It will be executed once the asset loads during playback

Usage: screenly asset inject-js <UUID> <PATH>

screenly asset inject-js <UUID> <PATH>
Arguments:

Set headers

Sets HTTP headers for web asset

Usage: screenly asset set-headers <UUID> <HEADERS>

screenly asset set-headers <UUID> <HEADERS>
Arguments:

Update headers

Updates HTTP headers for web asset

Usage: screenly asset update-headers <UUID> <HEADERS>

screenly asset update-headers <UUID> <HEADERS>
Arguments:

Basic auth

Shortcut for setting up basic authentication headers

Usage: screenly asset basic-auth <UUID> <CREDENTIALS>

screenly asset basic-auth <UUID> <CREDENTIALS>
Arguments:

Bearer auth

Shortcut for setting up bearer authentication headers

Usage: screenly asset bearer-auth <UUID> <TOKEN>

screenly asset bearer-auth <UUID> <TOKEN>
Arguments:

Playlist

Playlist related commands

Usage: screenly playlist <COMMAND>

screenly playlist <COMMAND>
Subcommands:

Create

Creates a new playlist

Usage: screenly playlist create [OPTIONS] <TITLE> [PREDICATE]

screenly playlist create [OPTIONS] <TITLE> [PREDICATE]
Arguments:
Options:

List

Lists your playlists

Usage: screenly playlist list [OPTIONS]

screenly playlist list [OPTIONS]
Options:

Get

Gets a single playlist by id

Usage: screenly playlist get <UUID>

screenly playlist get <UUID>
Arguments:

Delete

Deletes a playlist. This cannot be undone

Usage: screenly playlist delete <UUID>

screenly playlist delete <UUID>
Arguments:

Append

Adds an asset to the end of the playlist

Usage: screenly playlist append [OPTIONS] <UUID> <ASSET_UUID> [DURATION]

screenly playlist append [OPTIONS] <UUID> <ASSET_UUID> [DURATION]
Arguments:
Options:

Prepend

Adds an asset to the beginning of the playlist

Usage: screenly playlist prepend [OPTIONS] <UUID> <ASSET_UUID> [DURATION]

screenly playlist prepend [OPTIONS] <UUID> <ASSET_UUID> [DURATION]
Arguments:
Options:

Update

Patches a given playlist

Usage: screenly playlist update

screenly playlist update

Edge app

Edge App related commands

Usage: screenly edge-app <COMMAND>

screenly edge-app <COMMAND>
Subcommands:

Create

Creates Edge App in the store

Usage: screenly edge-app create [OPTIONS] --name <NAME>

screenly edge-app create [OPTIONS] --name <NAME>
Options:

List

Lists your Edge Apps

Usage: screenly edge-app list [OPTIONS]

screenly edge-app list [OPTIONS]
Options:

Rename

Renames Edge App

Usage: screenly edge-app rename [OPTIONS] --name <NAME>

screenly edge-app rename [OPTIONS] --name <NAME>
Options:

Run

Runs Edge App emulator

Usage: screenly edge-app run [OPTIONS]

screenly edge-app run [OPTIONS]
Options:

Version

Version commands

Usage: screenly edge-app version <COMMAND>

screenly edge-app version <COMMAND>
Subcommands:

List

Lists Edge App versions

Usage: screenly edge-app version list [OPTIONS]

screenly edge-app version list [OPTIONS]
Options:

Promote

Promotes Edge App revision to channel

Usage: screenly edge-app version promote [OPTIONS]

screenly edge-app version promote [OPTIONS]
Options:

Default value: stable * -i, --installation-id <INSTALLATION_ID> — Edge App Installation id. If not specified, CLI will use the installation_id from the manifest * --latest — Use the latest revision of the Edge App

Default value: false * -p, --path <PATH> — Path to the directory with the manifest. If not specified CLI will use the current working directory

Setting

Settings commands

Usage: screenly edge-app setting <COMMAND>

screenly edge-app setting <COMMAND>
Subcommands:

List

Lists Edge App settings

Usage: screenly edge-app setting list [OPTIONS]

screenly edge-app setting list [OPTIONS]
Options:

Set

Sets Edge App setting

Usage: screenly edge-app setting set [OPTIONS] <SETTING_PAIR>

screenly edge-app setting set [OPTIONS] <SETTING_PAIR>
Arguments:
Options:

Secret

Secrets commands

Usage: screenly edge-app secret <COMMAND>

screenly edge-app secret <COMMAND>
Subcommands:

List

Lists Edge App secrets

Usage: screenly edge-app secret list [OPTIONS]

screenly edge-app secret list [OPTIONS]
Options:

Set

Sets Edge App secret

Usage: screenly edge-app secret set [OPTIONS] <SECRET_PAIR>

screenly edge-app secret set [OPTIONS] <SECRET_PAIR>
Arguments:
Options:

Upload

Uploads assets and settings of the Edge App

Usage: screenly edge-app upload [OPTIONS]

screenly edge-app upload [OPTIONS]
Options:

Possible values: true, false

Delete

Deletes an Edge App. This cannot be undone

Usage: screenly edge-app delete [OPTIONS]

screenly edge-app delete [OPTIONS]
Options:

Validate

Validates Edge App manifest file

Usage: screenly edge-app validate [OPTIONS]

screenly edge-app validate [OPTIONS]
Options: