obsws-cli


Nameobsws-cli JSON
Version 0.20.2 PyPI version JSON
download
home_pageNone
SummaryA command line interface for the OBS WebSocket API.
upload_time2025-07-14 03:28:54
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords cli command-line obs obs-websocket obs-websocket-api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # obsws-cli

[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch)
[![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 OBS Websocket v5

For an outline of past/future changes refer to: [CHANGELOG](CHANGELOG.md)

-----

## Table of Contents

- [Installation](#installation)
- [Configuration](#configuration)
- [Style](#style)
- [Commands](#root-typer)
- [License](#license)

## Requirements

-   Python 3.10 or greater
-   [OBS Studio 28+][obs-studio]

## Installation

##### *with uv*

```console
uv tool install obsws-cli
```

##### *with pipx*

```console
pipx install obsws-cli
```

The CLI should now be discoverable as `obsws-cli`

## Configuration

#### Flags

-   --host/-H: Websocket host
-   --port/-P Websocket port
-   --password/-p: Websocket password
-   --timeout/-T: Websocket timeout
-   --version/-v: Print the obsws-cli version

Pass `--host`, `--port` and `--password` as flags on the root command, for example:

```console
obsws-cli --host=localhost --port=4455 --password=<websocket password> --help
```

#### Environment Variables

Store and load environment variables from:
-   A `.env` file in the cwd
-   `user home directory / .config / obsws-cli / obsws.env`

```env
OBS_HOST=localhost
OBS_PORT=4455
OBS_PASSWORD=<websocket password>
```

Flags can be used to override environment variables.

## Style

Styling is opt-in, by default you will get a colourless output:

![colourless](./img/colourless.png)

You may enable styling with the --style/-s flag:

```console
obsws-cli --style="cyan" sceneitem list
```

Available styles: _red, magenta, purple, blue, cyan, green, yellow, orange, white, grey, navy, black_

![coloured](./img/coloured-border.png)

Optionally you may disable border colouring with the --no-border flag:

![coloured-no-border](./img/coloured-no-border.png)

```console
obsws-cli --style="cyan" --no-border sceneitem list
```

Or with environment variables:

```env
OBS_STYLE=cyan
OBS_STYLE_NO_BORDER=true
```

## Root Typer

-   obs-version: Get the OBS Client and WebSocket versions.

```console
obsws-cli obs-version
```

## Sub Typers

#### Scene

-   list: List all scenes.
    -   flags:

        *optional*
        -   --uuid: Show UUIDs of scenes

```console
obsws-cli scene list
```

-   current: Get the current program scene.

```console
obsws-cli scene current
```

-   switch: Switch to a scene.
    -   args: <scene_name>

```console
obsws-cli scene switch LIVE
```

#### Scene Item

-   list: List all items in a scene.
    -   flags:

        *optional*
        -   --uuid: Show UUIDs of scene items

    *optional*
    -   args: <scene_name>
        -   defaults to current scene

```console
obsws-cli sceneitem list

obsws-cli sceneitem list LIVE
```

-   show: Show an item in a scene.
    -   flags:

        *optional*
        -   --group: Parent group name
    -   args: <scene_name> <item_name>

```console
obsws-cli sceneitem show START "Colour Source"
```

-   hide: Hide an item in a scene.
    -   flags:

        *optional*
        -   --group: Parent group name
    -   args: <scene_name> <item_name>

```console
obsws-cli sceneitem hide START "Colour Source"
```

-   toggle: Toggle an item in a scene.
    -   flags:

        *optional*
        -   --group: Parent group name
    -   args: <scene_name> <item_name>

```console
obsws-cli sceneitem toggle --group=test_group START "Colour Source 3"
```

-   visible: Check if an item in a scene is visible.
    -   flags:

        *optional*
        -   --group: Parent group name
    -   args: <scene_name> <item_name>

```console
obsws-cli sceneitem visible --group=test_group START "Colour Source 4"
```

-   transform: Set the transform of an item in a scene.
    -   flags:
        
        *optional*
        -   --group: Parent group name.

        -   --alignment: Alignment of the item in the scene
        -   --bounds-alignment: Bounds alignment of the item in the scene
        -   --bounds-height: Height of the item in the scene
        -   --bounds-type: Type of bounds for the item in the scene
        -   --bounds-width: Width of the item in the scene
        -   --crop-to-bounds: Crop the item to the bounds
        -   --crop-bottom: Bottom crop of the item in the scene
        -   --crop-left: Left crop of the item in the scene
        -   --crop-right: Right crop of the item in the scene
        -   --crop-top: Top crop of the item in the scene
        -   --position-x: X position of the item in the scene
        -   --position-y: Y position of the item in the scene
        -   --scale-x: X scale of the item in the scene
        -   --scale-y: Y scale of the item in the scene
    -   args: <scene_name> <item_name>

```console
obsws-cli sceneitem transform \
    --rotation=5 \
    --position-x=250.8 \
    Scene "Colour Source 3"
```

#### Scene Collections

-   list: List all scene collections.

```console
obsws-cli scenecollection list
```

-   current: Get the current scene collection.

```console
obsws-cli scenecollection current
```

-   switch: Switch to a scene collection.
    -   args: <scene_collection_name>

```console
obsws-cli scenecollection switch test-collection
```

-   create: Create a new scene collection.
    -   args: <scene_collection_name>

```console
obsws-cli scenecollection create test-collection
```

#### Group

-   list: List groups in a scene.

    *optional*
    -   args: <scene_name>
        -   defaults to current scene

```console
obsws-cli group list

obsws-cli group list START
```

-   show: Show a group in a scene.
    -   args: <scene_name> <group_name>

```console
obsws-cli group show START "test_group"
```

-   hide: Hide a group in a scene.
    -   args: <scene_name> <group_name>

```console
obsws-cli group hide START "test_group"
```

-   toggle: Toggle a group in a scene.
    -   args: <scene_name> <group_name>

```console
obsws-cli group toggle START "test_group"
```

-   status: Get the status of a group in a scene.
    -   args: <scene_name> <group_name>

```console
obsws-cli group status START "test_group"
```

#### Input

-   list: List all inputs.
    -   flags:

        *optional*
        -   --input: Filter by input type.
        -   --output: Filter by output type.
        -   --colour: Filter by colour source type.
        -   --ffmpeg: Filter by ffmpeg source type.
        -   --vlc: Filter by VLC source type.
        -   --uuid: Show UUIDs of inputs.

```console
obsws-cli input list

obsws-cli input list --input --colour
```

-   mute: Mute an input.
    -   args: <input_name>

```console
obsws-cli input mute "Mic/Aux"
```

-   unmute: Unmute an input.
    -   args: <input_name>

```console
obsws-cli input unmute "Mic/Aux"
```

-   toggle: Toggle an input.

```console
obsws-cli input toggle "Mic/Aux"
```

#### Text

-   current: Get the current text for a text input.
    -   args: <input_name>

```console
obsws-cli text current "My Text Input"
```

-   update: Update the text of a text input.
    -   args: <input_name> <new_text>

```console
obsws-cli text update "My Text Input" "hi OBS!"
```

#### Record

-   start: Start recording.

```console
obsws-cli record start
```

-   stop: Stop recording.

```console
obsws-cli record stop
```

-   status: Get recording status.

```console
obsws-cli record status
```

-   toggle: Toggle recording.

```console
obsws-cli record toggle
```

-   resume: Resume recording.

```console
obsws-cli record resume
```

-   pause: Pause recording.

```console
obsws-cli record pause
```

-   directory: Get or set the recording directory.

    *optional*
    -   args: <record_directory>
        -   if not passed the current record directory will be printed.

```console
obsws-cli record directory

obsws-cli record directory "/home/me/obs-vids/"
obsws-cli record directory "C:/Users/me/Videos"
```

-   split: Split the current recording.

```console
obsws-cli record split
```

-   chapter: Create a chapter in the current recording.

    *optional*
    -   args: <chapter_name>

```console
obsws-cli record chapter "Chapter Name"
```

#### Stream

-   start: Start streaming.

```console
obsws-cli stream start
```

-   stop: Stop streaming.

```console
obsws-cli stream stop
```

-   status: Get streaming status.

```console
obsws-cli stream status
```

-   toggle: Toggle streaming.

```console
obsws-cli stream toggle
```

#### Profile

-   list: List profiles.

```console
obsws-cli profile list
```

-   current: Get the current profile.

```console
obsws-cli profile current
```

-   switch: Switch to a profile.
    -   args: <profile_name>

```console
obsws-cli profile switch test-profile
```

-   create: Create a new profile.
    -   args: <profile_name>

```console
obsws-cli profile create test-profile
```

-   remove: Remove a profile.
    -   args: <profile_name>

```console
obsws-cli profile remove test-profile
```

#### Replay Buffer

-   start: Start the replay buffer.

```console
obsws-cli replaybuffer start
```

-   stop: Stop the replay buffer.

```console
obsws-cli replaybuffer stop
```

-   status: Get the status of the replay buffer.

```console
obsws-cli replaybuffer status
```

-   save: Save the replay buffer.

```console
obsws-cli replaybuffer save
```

#### Studio Mode

-   enable: Enable studio mode.

```console
obsws-cli studiomode enable
```

-   disable: Disable studio mode.

```console
obsws-cli studiomode disable
```

-   toggle: Toggle studio mode.

```console
obsws-cli studiomode toggle
```

-   status: Get the status of studio mode.

```console
obsws-cli studiomode status
```

#### Virtual Cam

-   start: Start virtual camera.

```console
obsws-cli virtualcam start
```

-   stop: Stop virtual camera.

```console
obsws-cli virtualcam stop
```

-   toggle: Toggle virtual camera.

```console
obsws-cli virtualcam toggle
```

-   status: Get the status of the virtual camera.

```console
obsws-cli virtualcam status
```

#### Hotkey

-   list: List all hotkeys.

```console
obsws-cli hotkey list
```

-   trigger: Trigger a hotkey by name.

```console
obsws-cli hotkey trigger OBSBasic.StartStreaming

obsws-cli hotkey trigger OBSBasic.StopStreaming
```

-   trigger-sequence: Trigger a hotkey by sequence.
    -   flags:

        *optional*
        -   --shift: Press shift.
        -   --ctrl: Press control.
        -   --alt: Press alt.
        -   --cmd: Press command (mac).

    -   args: <key_id>
        -   Check [obs-hotkeys.h][obs-keyids] for a full list of OBS key ids.

```console
obsws-cli hotkey trigger-sequence OBS_KEY_F1 --ctrl

obsws-cli hotkey trigger-sequence OBS_KEY_F1 --shift --ctrl
```

#### Filter

-   list: List filters for a source.

    *optional*
    -   args: <source_name>
        -   defaults to current scene

```console
obsws-cli filter list "Mic/Aux"
```

-   enable: Enable a filter for a source.
    -   args: <source_name> <filter_name>

```console
obsws-cli filter enable "Mic/Aux" "Gain"
```

-   disable: Disable a filter for a source.
    -   args: <source_name> <filter_name>

```console
obsws-cli filter disable "Mic/Aux" "Gain"
```

-   toggle: Toggle a filter for a source.
    -   args: <source_name> <filter_name>

```console
obsws-cli filter toggle "Mic/Aux" "Gain"
```

-   status: Get the status of a filter for a source.
    -   args: <source_name> <filter_name>

```console
obsws-cli filter status "Mic/Aux" "Gain"
```

#### Projector

-   list-monitors: List available monitors.

```console
obsws-cli projector list-monitors
```

-   open: Open a fullscreen projector for a source on a specific monitor.
    -   flags:

        *optional*
        -   --monitor-index: Index of the monitor to open the projector on.
            -   defaults to 0

    *optional*
    -   args: <source_name>
        -   defaults to current scene

```console
obsws-cli projector open

obsws-cli projector open --monitor-index=1 "test_scene"

obsws-cli projector open --monitor-index=1 "test_group"
```

#### Screenshot

-   save: Take a screenshot and save it to a file.
    -   flags:

        *optional*
        -   --width:
            -   defaults to 1920
        -   --height:
            -   defaults to 1080
        -   --quality:
            -   defaults to -1

    -   args: <source_name> <output_path>

```console
obsws-cli screenshot save --width=2560 --height=1440 "Scene" "C:\Users\me\Videos\screenshot.png"
```

## License

`obsws-cli` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.


[obs-studio]: https://obsproject.com/
[obs-keyids]: https://github.com/obsproject/obs-studio/blob/master/libobs/obs-hotkeys.h
[no-colour]: https://no-color.org/

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "obsws-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "cli, command-line, obs, obs-websocket, obs-websocket-api",
    "author": null,
    "author_email": "onyx-and-iris <code@onyxandiris.online>",
    "download_url": "https://files.pythonhosted.org/packages/e7/e8/d29822123e4de7a0d8cef2e7d9b6bd2e7b5b55c5b569cecad0f27f48bdd2/obsws_cli-0.20.2.tar.gz",
    "platform": null,
    "description": "# obsws-cli\n\n[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch)\n[![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)\n\n\nA command line interface for OBS Websocket v5\n\nFor an outline of past/future changes refer to: [CHANGELOG](CHANGELOG.md)\n\n-----\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Style](#style)\n- [Commands](#root-typer)\n- [License](#license)\n\n## Requirements\n\n-   Python 3.10 or greater\n-   [OBS Studio 28+][obs-studio]\n\n## Installation\n\n##### *with uv*\n\n```console\nuv tool install obsws-cli\n```\n\n##### *with pipx*\n\n```console\npipx install obsws-cli\n```\n\nThe CLI should now be discoverable as `obsws-cli`\n\n## Configuration\n\n#### Flags\n\n-   --host/-H: Websocket host\n-   --port/-P Websocket port\n-   --password/-p: Websocket password\n-   --timeout/-T: Websocket timeout\n-   --version/-v: Print the obsws-cli version\n\nPass `--host`, `--port` and `--password` as flags on the root command, for example:\n\n```console\nobsws-cli --host=localhost --port=4455 --password=<websocket password> --help\n```\n\n#### Environment Variables\n\nStore and load environment variables from:\n-   A `.env` file in the cwd\n-   `user home directory / .config / obsws-cli / obsws.env`\n\n```env\nOBS_HOST=localhost\nOBS_PORT=4455\nOBS_PASSWORD=<websocket password>\n```\n\nFlags can be used to override environment variables.\n\n## Style\n\nStyling is opt-in, by default you will get a colourless output:\n\n![colourless](./img/colourless.png)\n\nYou may enable styling with the --style/-s flag:\n\n```console\nobsws-cli --style=\"cyan\" sceneitem list\n```\n\nAvailable styles: _red, magenta, purple, blue, cyan, green, yellow, orange, white, grey, navy, black_\n\n![coloured](./img/coloured-border.png)\n\nOptionally you may disable border colouring with the --no-border flag:\n\n![coloured-no-border](./img/coloured-no-border.png)\n\n```console\nobsws-cli --style=\"cyan\" --no-border sceneitem list\n```\n\nOr with environment variables:\n\n```env\nOBS_STYLE=cyan\nOBS_STYLE_NO_BORDER=true\n```\n\n## Root Typer\n\n-   obs-version: Get the OBS Client and WebSocket versions.\n\n```console\nobsws-cli obs-version\n```\n\n## Sub Typers\n\n#### Scene\n\n-   list: List all scenes.\n    -   flags:\n\n        *optional*\n        -   --uuid: Show UUIDs of scenes\n\n```console\nobsws-cli scene list\n```\n\n-   current: Get the current program scene.\n\n```console\nobsws-cli scene current\n```\n\n-   switch: Switch to a scene.\n    -   args: <scene_name>\n\n```console\nobsws-cli scene switch LIVE\n```\n\n#### Scene Item\n\n-   list: List all items in a scene.\n    -   flags:\n\n        *optional*\n        -   --uuid: Show UUIDs of scene items\n\n    *optional*\n    -   args: <scene_name>\n        -   defaults to current scene\n\n```console\nobsws-cli sceneitem list\n\nobsws-cli sceneitem list LIVE\n```\n\n-   show: Show an item in a scene.\n    -   flags:\n\n        *optional*\n        -   --group: Parent group name\n    -   args: <scene_name> <item_name>\n\n```console\nobsws-cli sceneitem show START \"Colour Source\"\n```\n\n-   hide: Hide an item in a scene.\n    -   flags:\n\n        *optional*\n        -   --group: Parent group name\n    -   args: <scene_name> <item_name>\n\n```console\nobsws-cli sceneitem hide START \"Colour Source\"\n```\n\n-   toggle: Toggle an item in a scene.\n    -   flags:\n\n        *optional*\n        -   --group: Parent group name\n    -   args: <scene_name> <item_name>\n\n```console\nobsws-cli sceneitem toggle --group=test_group START \"Colour Source 3\"\n```\n\n-   visible: Check if an item in a scene is visible.\n    -   flags:\n\n        *optional*\n        -   --group: Parent group name\n    -   args: <scene_name> <item_name>\n\n```console\nobsws-cli sceneitem visible --group=test_group START \"Colour Source 4\"\n```\n\n-   transform: Set the transform of an item in a scene.\n    -   flags:\n        \n        *optional*\n        -   --group: Parent group name.\n\n        -   --alignment: Alignment of the item in the scene\n        -   --bounds-alignment: Bounds alignment of the item in the scene\n        -   --bounds-height: Height of the item in the scene\n        -   --bounds-type: Type of bounds for the item in the scene\n        -   --bounds-width: Width of the item in the scene\n        -   --crop-to-bounds: Crop the item to the bounds\n        -   --crop-bottom: Bottom crop of the item in the scene\n        -   --crop-left: Left crop of the item in the scene\n        -   --crop-right: Right crop of the item in the scene\n        -   --crop-top: Top crop of the item in the scene\n        -   --position-x: X position of the item in the scene\n        -   --position-y: Y position of the item in the scene\n        -   --scale-x: X scale of the item in the scene\n        -   --scale-y: Y scale of the item in the scene\n    -   args: <scene_name> <item_name>\n\n```console\nobsws-cli sceneitem transform \\\n    --rotation=5 \\\n    --position-x=250.8 \\\n    Scene \"Colour Source 3\"\n```\n\n#### Scene Collections\n\n-   list: List all scene collections.\n\n```console\nobsws-cli scenecollection list\n```\n\n-   current: Get the current scene collection.\n\n```console\nobsws-cli scenecollection current\n```\n\n-   switch: Switch to a scene collection.\n    -   args: <scene_collection_name>\n\n```console\nobsws-cli scenecollection switch test-collection\n```\n\n-   create: Create a new scene collection.\n    -   args: <scene_collection_name>\n\n```console\nobsws-cli scenecollection create test-collection\n```\n\n#### Group\n\n-   list: List groups in a scene.\n\n    *optional*\n    -   args: <scene_name>\n        -   defaults to current scene\n\n```console\nobsws-cli group list\n\nobsws-cli group list START\n```\n\n-   show: Show a group in a scene.\n    -   args: <scene_name> <group_name>\n\n```console\nobsws-cli group show START \"test_group\"\n```\n\n-   hide: Hide a group in a scene.\n    -   args: <scene_name> <group_name>\n\n```console\nobsws-cli group hide START \"test_group\"\n```\n\n-   toggle: Toggle a group in a scene.\n    -   args: <scene_name> <group_name>\n\n```console\nobsws-cli group toggle START \"test_group\"\n```\n\n-   status: Get the status of a group in a scene.\n    -   args: <scene_name> <group_name>\n\n```console\nobsws-cli group status START \"test_group\"\n```\n\n#### Input\n\n-   list: List all inputs.\n    -   flags:\n\n        *optional*\n        -   --input: Filter by input type.\n        -   --output: Filter by output type.\n        -   --colour: Filter by colour source type.\n        -   --ffmpeg: Filter by ffmpeg source type.\n        -   --vlc: Filter by VLC source type.\n        -   --uuid: Show UUIDs of inputs.\n\n```console\nobsws-cli input list\n\nobsws-cli input list --input --colour\n```\n\n-   mute: Mute an input.\n    -   args: <input_name>\n\n```console\nobsws-cli input mute \"Mic/Aux\"\n```\n\n-   unmute: Unmute an input.\n    -   args: <input_name>\n\n```console\nobsws-cli input unmute \"Mic/Aux\"\n```\n\n-   toggle: Toggle an input.\n\n```console\nobsws-cli input toggle \"Mic/Aux\"\n```\n\n#### Text\n\n-   current: Get the current text for a text input.\n    -   args: <input_name>\n\n```console\nobsws-cli text current \"My Text Input\"\n```\n\n-   update: Update the text of a text input.\n    -   args: <input_name> <new_text>\n\n```console\nobsws-cli text update \"My Text Input\" \"hi OBS!\"\n```\n\n#### Record\n\n-   start: Start recording.\n\n```console\nobsws-cli record start\n```\n\n-   stop: Stop recording.\n\n```console\nobsws-cli record stop\n```\n\n-   status: Get recording status.\n\n```console\nobsws-cli record status\n```\n\n-   toggle: Toggle recording.\n\n```console\nobsws-cli record toggle\n```\n\n-   resume: Resume recording.\n\n```console\nobsws-cli record resume\n```\n\n-   pause: Pause recording.\n\n```console\nobsws-cli record pause\n```\n\n-   directory: Get or set the recording directory.\n\n    *optional*\n    -   args: <record_directory>\n        -   if not passed the current record directory will be printed.\n\n```console\nobsws-cli record directory\n\nobsws-cli record directory \"/home/me/obs-vids/\"\nobsws-cli record directory \"C:/Users/me/Videos\"\n```\n\n-   split: Split the current recording.\n\n```console\nobsws-cli record split\n```\n\n-   chapter: Create a chapter in the current recording.\n\n    *optional*\n    -   args: <chapter_name>\n\n```console\nobsws-cli record chapter \"Chapter Name\"\n```\n\n#### Stream\n\n-   start: Start streaming.\n\n```console\nobsws-cli stream start\n```\n\n-   stop: Stop streaming.\n\n```console\nobsws-cli stream stop\n```\n\n-   status: Get streaming status.\n\n```console\nobsws-cli stream status\n```\n\n-   toggle: Toggle streaming.\n\n```console\nobsws-cli stream toggle\n```\n\n#### Profile\n\n-   list: List profiles.\n\n```console\nobsws-cli profile list\n```\n\n-   current: Get the current profile.\n\n```console\nobsws-cli profile current\n```\n\n-   switch: Switch to a profile.\n    -   args: <profile_name>\n\n```console\nobsws-cli profile switch test-profile\n```\n\n-   create: Create a new profile.\n    -   args: <profile_name>\n\n```console\nobsws-cli profile create test-profile\n```\n\n-   remove: Remove a profile.\n    -   args: <profile_name>\n\n```console\nobsws-cli profile remove test-profile\n```\n\n#### Replay Buffer\n\n-   start: Start the replay buffer.\n\n```console\nobsws-cli replaybuffer start\n```\n\n-   stop: Stop the replay buffer.\n\n```console\nobsws-cli replaybuffer stop\n```\n\n-   status: Get the status of the replay buffer.\n\n```console\nobsws-cli replaybuffer status\n```\n\n-   save: Save the replay buffer.\n\n```console\nobsws-cli replaybuffer save\n```\n\n#### Studio Mode\n\n-   enable: Enable studio mode.\n\n```console\nobsws-cli studiomode enable\n```\n\n-   disable: Disable studio mode.\n\n```console\nobsws-cli studiomode disable\n```\n\n-   toggle: Toggle studio mode.\n\n```console\nobsws-cli studiomode toggle\n```\n\n-   status: Get the status of studio mode.\n\n```console\nobsws-cli studiomode status\n```\n\n#### Virtual Cam\n\n-   start: Start virtual camera.\n\n```console\nobsws-cli virtualcam start\n```\n\n-   stop: Stop virtual camera.\n\n```console\nobsws-cli virtualcam stop\n```\n\n-   toggle: Toggle virtual camera.\n\n```console\nobsws-cli virtualcam toggle\n```\n\n-   status: Get the status of the virtual camera.\n\n```console\nobsws-cli virtualcam status\n```\n\n#### Hotkey\n\n-   list: List all hotkeys.\n\n```console\nobsws-cli hotkey list\n```\n\n-   trigger: Trigger a hotkey by name.\n\n```console\nobsws-cli hotkey trigger OBSBasic.StartStreaming\n\nobsws-cli hotkey trigger OBSBasic.StopStreaming\n```\n\n-   trigger-sequence: Trigger a hotkey by sequence.\n    -   flags:\n\n        *optional*\n        -   --shift: Press shift.\n        -   --ctrl: Press control.\n        -   --alt: Press alt.\n        -   --cmd: Press command (mac).\n\n    -   args: <key_id>\n        -   Check [obs-hotkeys.h][obs-keyids] for a full list of OBS key ids.\n\n```console\nobsws-cli hotkey trigger-sequence OBS_KEY_F1 --ctrl\n\nobsws-cli hotkey trigger-sequence OBS_KEY_F1 --shift --ctrl\n```\n\n#### Filter\n\n-   list: List filters for a source.\n\n    *optional*\n    -   args: <source_name>\n        -   defaults to current scene\n\n```console\nobsws-cli filter list \"Mic/Aux\"\n```\n\n-   enable: Enable a filter for a source.\n    -   args: <source_name> <filter_name>\n\n```console\nobsws-cli filter enable \"Mic/Aux\" \"Gain\"\n```\n\n-   disable: Disable a filter for a source.\n    -   args: <source_name> <filter_name>\n\n```console\nobsws-cli filter disable \"Mic/Aux\" \"Gain\"\n```\n\n-   toggle: Toggle a filter for a source.\n    -   args: <source_name> <filter_name>\n\n```console\nobsws-cli filter toggle \"Mic/Aux\" \"Gain\"\n```\n\n-   status: Get the status of a filter for a source.\n    -   args: <source_name> <filter_name>\n\n```console\nobsws-cli filter status \"Mic/Aux\" \"Gain\"\n```\n\n#### Projector\n\n-   list-monitors: List available monitors.\n\n```console\nobsws-cli projector list-monitors\n```\n\n-   open: Open a fullscreen projector for a source on a specific monitor.\n    -   flags:\n\n        *optional*\n        -   --monitor-index: Index of the monitor to open the projector on.\n            -   defaults to 0\n\n    *optional*\n    -   args: <source_name>\n        -   defaults to current scene\n\n```console\nobsws-cli projector open\n\nobsws-cli projector open --monitor-index=1 \"test_scene\"\n\nobsws-cli projector open --monitor-index=1 \"test_group\"\n```\n\n#### Screenshot\n\n-   save: Take a screenshot and save it to a file.\n    -   flags:\n\n        *optional*\n        -   --width:\n            -   defaults to 1920\n        -   --height:\n            -   defaults to 1080\n        -   --quality:\n            -   defaults to -1\n\n    -   args: <source_name> <output_path>\n\n```console\nobsws-cli screenshot save --width=2560 --height=1440 \"Scene\" \"C:\\Users\\me\\Videos\\screenshot.png\"\n```\n\n## License\n\n`obsws-cli` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.\n\n\n[obs-studio]: https://obsproject.com/\n[obs-keyids]: https://github.com/obsproject/obs-studio/blob/master/libobs/obs-hotkeys.h\n[no-colour]: https://no-color.org/\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A command line interface for the OBS WebSocket API.",
    "version": "0.20.2",
    "project_urls": {
        "Documentation": "https://github.com/onyx-and-iris/obsws-cli#readme",
        "Issues": "https://github.com/onyx-and-iris/obsws-cli/issues",
        "Source": "https://github.com/onyx-and-iris/obsws-cli"
    },
    "split_keywords": [
        "cli",
        " command-line",
        " obs",
        " obs-websocket",
        " obs-websocket-api"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "94d57d2f99d152c6764bcbc9d42805cb36596f3d6a99a2084af76e6d3dfa110b",
                "md5": "f8e8bd2d430406747d465395187fa05f",
                "sha256": "02bd18777507b43aca7f37414b03f0a97d147b546bcbf5dee9ef53a35487b033"
            },
            "downloads": -1,
            "filename": "obsws_cli-0.20.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f8e8bd2d430406747d465395187fa05f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 29944,
            "upload_time": "2025-07-14T03:28:52",
            "upload_time_iso_8601": "2025-07-14T03:28:52.756578Z",
            "url": "https://files.pythonhosted.org/packages/94/d5/7d2f99d152c6764bcbc9d42805cb36596f3d6a99a2084af76e6d3dfa110b/obsws_cli-0.20.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e7e8d29822123e4de7a0d8cef2e7d9b6bd2e7b5b55c5b569cecad0f27f48bdd2",
                "md5": "bea570097b3f9dac8b32b6cdedbb87f3",
                "sha256": "555958921848df7aab18977d7025c77e343936135241d4ec2135a51c842a49da"
            },
            "downloads": -1,
            "filename": "obsws_cli-0.20.2.tar.gz",
            "has_sig": false,
            "md5_digest": "bea570097b3f9dac8b32b6cdedbb87f3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 52704,
            "upload_time": "2025-07-14T03:28:54",
            "upload_time_iso_8601": "2025-07-14T03:28:54.211543Z",
            "url": "https://files.pythonhosted.org/packages/e7/e8/d29822123e4de7a0d8cef2e7d9b6bd2e7b5b55c5b569cecad0f27f48bdd2/obsws_cli-0.20.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-14 03:28:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "onyx-and-iris",
    "github_project": "obsws-cli#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "obsws-cli"
}
        
Elapsed time: 1.54435s