OBS-cli is a command-line remote control for OBS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Stéphane "Twidi" Angel 7308a34d63 Add the "scene get" command 3 days ago
.github/workflows Test against macOS & Windows 7 months ago
.gitignore Initial import 1 year ago
.golangci.yml Add linter workflow 7 months ago
.goreleaser.yml Update goreleaser config and add workflow 7 months ago
LICENSE Initial commit 1 year ago
README.md Add the "scene get" command 3 days ago
countdown.go Add countdown subcommand 7 months ago
go.mod Bump goobs dep 1 month ago
go.sum Bump goobs dep 1 month ago
label.go Clean up CLI interface by grouping commands 7 months ago
main.go Set client name and version 1 month ago
profile.go Add profile management 1 month ago
recording.go Add pause controls 1 month ago
replaybuffer.go Add replay buffer commands 1 month ago
scene.go Add the "scene get" command 3 days ago
scenecollection.go Add scene collection management 1 month ago
sceneitems.go Bump goobs dep 1 month ago
sources.go Clean up CLI interface by grouping commands 7 months ago
stream.go Bump goobs dep 1 month ago
studiomode.go Bump goobs dep 1 month ago
virtualcam.go Add support for virtual camera 1 month ago



Latest Release Build Status Go ReportCard GoDoc

OBS-cli is a command-line remote control for OBS. It requires the obs-websocket plugin to be installed on your system.


Packages & Binaries

On Arch Linux you can simply install the package from the AUR:

yay -S obs-cli

Or download a binary from the releases page. Linux (including ARM) binaries are available, as well as Debian and RPM packages.

Build From Source

Alternatively you can also build obs-cli from source. Make sure you have a working Go environment (Go 1.11 or higher is required). See the install instructions.

To install obs-cli, simply run:

go install github.com/muesli/obs-cli@latest


All commands support the following flags:

  • --host: which OBS instance to connect to
  • --port: port to connect to
  • --password: password used for authentication


Change the streaming state:

obs-cli stream start
obs-cli stream stop
obs-cli stream toggle

Display streaming status:

obs-cli stream status


Change the recording state:

obs-cli recording start
obs-cli recording stop
obs-cli recording toggle

Pause or resume a recording:

obs-cli recording pause enable
obs-cli recording pause resume
obs-cli recording pause toggle

Display recording status:

obs-cli recording status


List all scene names:

obs-cli scene list

Show the current scene name:

obs-cli scene get

Switch program to a scene:

obs-cli scene current <scene>

Switch preview to a scene (studio mode must be enabled):

obs-cli scene preview <scene>

Switch program (studio mode disabled) or preview (studio mode enabled) to a scene:

obs-cli scene switch <scene>

Scene Collections

List all scene collections:

obs-cli scenecollection list

Show the current scene collection:

obs-cli scenecollection get

Switch to a scene collection:

obs-cli scenecollection set <scenecollection>

Scene Items

List all items of a scene:

obs-cli sceneitem list <scene>

Change the visibility of a scene-item:

obs-cli sceneitem show <scene> <item>
obs-cli sceneitem hide <scene> <item>
obs-cli sceneitem toggle <scene> <item>

Center a scene-item horizontally:

obs-cli sceneitem center <scene> <item>


Change a FreeType text label:

obs-cli label text <label> <text>

Trigger a countdown and continuously update a label with the remaining time:

obs-cli label countdown <label> <duration>


List special sources:

obs-cli source list

Toggle mute status of a source:

obs-cli source toggle-mute <source>

Studio Mode

Enable or disable Studio Mode:

obs-cli studiomode enable
obs-cli studiomode disable
obs-cli studiomode toggle

Display studio mode status:

obs-cli studiomode status

Transition to program (when the studio mode is enabled):

obs-cli studiomode transition


List all profiles:

obs-cli profile list

Show the current profile:

obs-cli profile get

Switch to a profile:

obs-cli profile set <profile>

Replay Buffer

Change the replay buffer state:

obs-cli replaybuffer start
obs-cli replaybuffer stop

Save the replay buffer:

obs-cli replaybuffer save

Display replay buffer status:

obs-cli replaybuffer status

Virtual Camera

Change the virtual camera state:

obs-cli virtualcam start
obs-cli virtualcam stop
obs-cli virtualcam toggle

Display virtual camera status:

obs-cli virtualcam status