# slobs-cli [![pdm-managed](https://img.shields.io/endpoint?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Fpdm-project%2F.github%2Fbadge.json)](https://pdm-project.org) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) A command line interface for Streamlabs Desktop For an outline of past/future changes refer to: [CHANGELOG](CHANGELOG.md) ----- ## Table of Contents - [Installation](#installation) - [Configuration](#configuration) - [Commands](#root-typer) - [License](#license) ## Requirements - Python 3.12 or greater - [Streamlabs Desktop][sl-desktop] ## Installation ##### *with uv* ```console uv tool install slobs-cli ``` ##### *with pipx* ```console pipx install slobs-cli ``` The CLI should now be discoverable as `slobs-cli` ## Configuration #### Flags - --domain/-d: Streamlabs client domain - --port/-p Streamlabs client port - --token/-t: Remote Control API Token Pass `--domain`, `--port` and `--token` as flags on the root command, for example: ```console slobs-cli --domain localhost --port 59650 --token --help ``` #### Environment Variables Load the following values from your environment: ```env SLOBS_DOMAIN=localhost SLOBS_PORT=59650 SLOBS_TOKEN= ``` Flags can be used to override environment variables. [sl-desktop]: https://streamlabs.com/streamlabs-live-streaming-software?srsltid=AfmBOopnswGBgEyvVSi2DIc_vsGovKn2HQZyLw1Cg6LEo51OJhONXnAX ## Commands #### Scene - list: List all available scenes. ```console slobs-cli scene list ``` - current: Show the currently active scene. ```console slobs-cli scene current ``` - switch: Switch to a scene by its name. - flags: *optional* - --preview: Switch the preview scene only. - args: ```console slobs-cli scene switch "slobs-test-scene-1" ``` #### Stream - start: Start the stream. ```console slobs-cli stream start ``` - status: Get the current stream status. ```console slobs-cli stream start ``` - stop: Stop the stream. ```console slobs-cli stream stop ``` - toggle: Toggle the stream status. ```console slobs-cli stream toggle ``` #### Record - start Start recording. ```console slobs-cli record start ``` - status Get recording status. ```console slobs-cli record status ``` - stop Stop recording. ```console slobs-cli record stop ``` - toggle Toggle recording status. ```console slobs-cli record status ``` #### Audio - list: List all audio sources. ```console slobs-cli audio list ``` - mute: Mute an audio source by name. - args: ```console slobs-cli audio list ``` - unmute: Unmute an audio source by name. - args: ```console slobs-cli audio list ``` - toggle: Toggle mute state of an audio source by name. - args: ```console slobs-cli audio list ``` #### Replay Buffer - start Start the replay buffer. ```console slobs-cli replaybuffer start ``` - stop: Stop the replay buffer. ```console slobs-cli replaybuffer stop ``` - status: Get the current status of the replay buffer. ```console slobs-cli replaybuffer status ``` - save: Save the current replay buffer. ```console slobs-cli replaybuffer save ``` #### Studio Mode - enable: Enable studio mode. ```console slobs-cli studiomode enable ``` - disable: Disable studio mode. ```console slobs-cli studiomode disable ``` - toggle: Toggle studio mode. ```console slobs-cli studiomode toggle ``` - status: Check the status of studio mode. ```console slobs-cli studiomode status ``` - force-transition: Force a transition in studio mode. ```console slobs-cli studiomode force-transition ```