Choose an output format
-o or --output takes table, json, or csv. Table is the default and is for reading; the other two are for feeding something else.
screenly screen list # table, for a human
screenly screen list -o json # for jq
screenly screen list -o csv # for a spreadsheetCSV is the one to remember when somebody asks for a fleet inventory. It goes straight into a spreadsheet without anyone writing a script.
JSON and jq
screenly screen list -o json | jq -r '.[] | select(.status.is_online == false) | .name'That is the shape of most useful one-liners: list something, filter it, print the field you care about.
Piping in and out
Fetching, transforming, and piping back is the intended style:
screenly playlist get $PLAYLIST_ID -o json \
| jq '...' \
| screenly playlist updateThings worth scripting
Bulk provisioning. A loop over pairing codes and names, from an inventory file.
Content rollouts. Add an asset, append it to a playlist with a duration, done.
screenly asset add throughput.html "Throughput Board"
screenly playlist append $PLAYLIST_ID $ASSET_ID 20Fleet reports. A scheduled screen list -o csv into whatever your organization already reads.
Authenticated pages. basic-auth, bearer-auth and inject-js applied consistently across many assets, rather than clicked one at a time.
Permissions
The CLI carries the permissions of the token, which carries the permissions of the account that made it. A script that only uploads content is safer with a token from an account that can only upload content. See API tokens.