---
id: sos
title: Introduction
sidebar_position: 0
---
# sos

SignageOS CLI - The central command-line tool for deploying, managing, and debugging signageOS projects and devices


## Overview

The signageOS CLI is a command-line tool for managing applets, devices, organizations, and other signageOS resources. It provides a comprehensive set of commands for the complete development lifecycle from applet creation to deployment.

### Key Features

- **Applet Development**: Create, build, test, and deploy applets
- **Development Tools**: Connect to devices for testing, upload custom scripts and debug
- **Device Management**: Control device power states and applet timings
- **Organization Management**: Handle multi-tenant environments
- **Authentication**: Secure login and profile management

### Installation

```bash
npm install -g @signageos/cli
```

### Getting Started

1. **Login to your account**: `sos login`
2. **Generate a new applet**: `sos applet generate --name my-applet`
3. **Start development**: `cd my-applet && sos applet start`

### Local Configuration

You can create a `sos.config.local.json` file in your applet directory to provide configuration values during local development:

```json
{
  "myConfigKey": "myConfigValue",
  "anotherSetting": true
}
```

This configuration is automatically loaded when running `sos applet start` and passed to your applet, making it easy to test different configuration scenarios without deploying to a device.

## Usage

```bash
sos [options] <command>
```

## Debugging

To enable debugging for specific modules, use the `DEBUG` environment variable:

```bash
# Debug applet upload module
DEBUG=@signageos/cli:Applet:Upload:appletUploadFacade sos applet upload

# Debug all signageOS modules
DEBUG=@signageos/* sos applet upload

# Set debug environment variable
export DEBUG=@signageos/*
```


## Description

The root command for the signageOS CLI tool that provides comprehensive management
capabilities for applets, devices, organizations, and other signageOS resources.
This command serves as the entry point for all CLI operations and coordinates
access to all available command groups.

## Options

| Option      | Alias | Description                                                                                          |
| ----------- | ----- | ---------------------------------------------------------------------------------------------------- |
| `--command` | `-c`  | (default) Command name (string)                                                                      |
| `--help`    | `-h`  | Display this usage guide. (boolean)                                                                  |
| `--api-url` | `-u`  | API URL to be used for REST requests (string)                                                        |
| `--version` | `-v`  | Display installed version of the CLI. (boolean)                                                      |
| `--profile` |       | signageOS Profile to be used for authentication and other values from ~/.sosrc config file. (string) |

## Commands

### Authentication

#### `sos login`

Authenticate user with signageOS via Auth0

[→ See detailed documentation](/cli/login/)

#### `sos logout`

Log out from signageOS (clear stored tokens)

[→ See detailed documentation](/cli/logout/)

### Development

#### `sos applet`

Applet development and management operations

**Available commands**: `sos applet generate`, `sos applet upload`, `sos applet start`, `sos applet test`, `sos applet build`

[→ See detailed documentation](/cli/applet/)

#### `sos custom-script`

Custom Script management

**Available commands**: `sos custom-script upload`, `sos custom-script generate`

[→ See detailed documentation](/cli/custom-script/)

#### `sos plugin`

Plugin management

**Available commands**: `sos plugin generate`, `sos plugin upload`

[→ See detailed documentation](/cli/plugin/)

#### `sos runner`

Runner management

**Available commands**: `sos runner generate`, `sos runner upload`

[→ See detailed documentation](/cli/runner/)

### Management

#### `sos organization`

Organization management operations

**Available commands**: `sos organization list`, `sos organization get`, `sos organization set-default`

[→ See detailed documentation](/cli/organization/)

#### `sos timing`

Timing management

**Available commands**: `sos timing list`

[→ See detailed documentation](/cli/timing/)

#### `sos device`

Device management

**Available commands**: `sos device set-content`, `sos device power-action`, `sos device connect`

[→ See detailed documentation](/cli/device/)

### Tools

#### `sos autocomplete`

CLI auto-completion management

**Available commands**: `sos autocomplete install`, `sos autocomplete uninstall`

[→ See detailed documentation](/cli/autocomplete/)


## Examples

```bash
# Show help and available commands
sos --help

# Show version information
sos --version

# Use custom API endpoint
sos --api-url https://api.custom.signageos.io applet list
```

## Since

0.1.0

## Related Commands

- [`sos applet`](/cli/applet/) - Applet development and management operations
- [`sos login`](/cli/login/) - Authenticate user with signageOS via Auth0
- [`sos logout`](/cli/logout/) - Log out from signageOS (clear stored tokens)
- [`sos organization`](/cli/organization/) - Organization management operations
- [`sos timing`](/cli/timing/) - Timing management
- [`sos device`](/cli/device/) - Device management
- [`sos custom-script`](/cli/custom-script/) - Custom Script management
- [`sos plugin`](/cli/plugin/) - Plugin management
- [`sos runner`](/cli/runner/) - Runner management
- [`sos autocomplete`](/cli/autocomplete/) - CLI auto-completion management

## See Also

- [CLI Setup](https://developers.signageos.io/docs/cli-setup/)