# CLI

The `szenera` command line: profiles, credentials, 136 commands, JSON output and exit codes, and what applies today when you obtain it.

> **Type:** area
> **For:** Anyone who triggers operations from scripts, from CI, or by hand at the terminal and needs reliable exit codes.

## Set up

| Page | When you need it |
|---|---|
| [Get the CLI](/cli/get-cli) | How to get the CLI today: no npm package, no download. The CLI is built from the platform’s source tree, and without access you are left with the API. |
| [Profiles and credentials](/cli/profiles-and-credentials) | Create a profile with an environment, a credential type, and write protection, either as a file or with environment variables only, and check it with whoami. |

## Commands

| Page | When you need it |
|---|---|
| [Commands for your organization](/cli/commands-organization) | All szenera commands that run with a key or account of your organization: media, scenes, playlists, programs, devices, team, apps, package. |
| [Commands for platform operations](/cli/commands-platform-operations) | The commands of the internal szenera-ops tool that run only with an operator profile: device software, approvals, incidents, queues, organizations, operator accounts. |

## In scripts

| Page | When you need it |
|---|---|
| [JSON output and exit codes](/cli/output-and-exit-codes) | JSON without an envelope on standard output, errors only on standard error, --raw for contract violations, and the 13 exit codes from 0 to 12. |
| [Scripts and CI](/cli/scripts-and-ci) | Work without a profile file by using environment variables, evaluate exit codes, fetch lists completely, limit wait times, and make retries safe. |
| [When the CLI aborts](/cli/troubleshooting) | Unknown command, profile blocked, 401 despite a key, response contradicts the contract, exit 11 or 12: symptom, meaning, solution. |
