# The command surface


> Five groups of commands, plus login, logout, and the MCP server.
```text
screenly [OPTIONS] <COMMAND>

  login      Log in with a token and store it
  logout     Remove the stored token
  screen     Screen related commands
  asset      Asset related commands
  playlist   Playlist related commands
  edge-app   Edge App related commands
  mcp        Start the MCP server on stdio

  -o, --output <OUTPUT>   table (default), json, or csv
```

## Screens

`list`, `get`, `add`, `delete`.

`screen add` takes a pairing code and a name, which is how you provision a device without opening a browser.

## Assets

`list`, `get`, `add`, `delete`, plus five that configure web assets: `inject-js`, `set-headers`, `update-headers`, `basic-auth`, and `bearer-auth`.

Those five are the reason to reach for the CLI over the dashboard for authenticated pages: they are scriptable and reviewable. See [Authenticated pages](/docs/content/web-pages/authenticated-pages/).

## Playlists

`create`, `list`, `get`, `delete`, `append`, `prepend`, `update`.

`append` and `prepend` take a duration in seconds as a positional argument, so adding an asset to the front of a rotation is one line.

## Edge apps

`create`, `list`, `rename`, `run`, `validate`, `deploy`, `delete`, plus `setting` (`list`, `set`) and `instance` (`list`, `create`, `update`, `delete`).

This is the full build and release cycle for an app. See [Edge apps](/docs/developers/edge-apps/).

## MCP

`screenly mcp` starts the [MCP server](/docs/developers/mcp/) on stdio.

## The full reference

Every command, flag, and argument is generated from the CLI itself and published in [`docs/CommandLineHelp.md`](https://github.com/Screenly/cli/blob/master/docs/CommandLineHelp.md), and at [developer.screenly.io](https://developer.screenly.io/cli/).