{"id":29543874,"url":"https://github.com/onyx-and-iris/gobs-cli","last_synced_at":"2026-04-11T03:40:06.740Z","repository":{"id":289661380,"uuid":"971978203","full_name":"onyx-and-iris/gobs-cli","owner":"onyx-and-iris","description":"A command line interface for OBS WebSocket v5","archived":false,"fork":false,"pushed_at":"2026-04-11T01:13:46.000Z","size":232,"stargazers_count":15,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-11T02:23:52.615Z","etag":null,"topics":["cli","obs","obs-cli","obs-remote","obs-websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onyx-and-iris.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-24T10:54:46.000Z","updated_at":"2026-04-11T01:13:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"5faa1c8e-56b7-484b-8c78-a5a04324ff79","html_url":"https://github.com/onyx-and-iris/gobs-cli","commit_stats":null,"previous_names":["onyx-and-iris/gobs-cli"],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/onyx-and-iris/gobs-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onyx-and-iris%2Fgobs-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onyx-and-iris%2Fgobs-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onyx-and-iris%2Fgobs-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onyx-and-iris%2Fgobs-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onyx-and-iris","download_url":"https://codeload.github.com/onyx-and-iris/gobs-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onyx-and-iris%2Fgobs-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31668050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","obs","obs-cli","obs-remote","obs-websocket"],"created_at":"2025-07-17T14:08:56.425Z","updated_at":"2026-04-11T03:40:06.729Z","avatar_url":"https://github.com/onyx-and-iris.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gobs-cli\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](#commands)\n- [Shell Completion](#shell-completion)\n- [License](#license)\n\n## Installation\n\n```console\ngo install github.com/onyx-and-iris/gobs-cli@latest\n```\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 gobs-cli version\n\nPass `--host`, `--port` and `--password` as flags on the root command, for example:\n\n```console\ngobs-cli --host localhost --port 4455 --password 'websocket password' --help\n```\n\n#### Environment Variables\n\nStore and load environment variables from:\n\n-   A `.env` file in the cwd\n-   $XDG_CONFIG_HOME / gobs-cli / config.env (see [os.UserConfigDir][userconfigdir])\n\n```env\nOBS_HOST=localhost\nOBS_PORT=4455\nOBS_PASSWORD=\u003cwebsocket password\u003e\nOBS_TIMEOUT=5\n```\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\ngobs-cli --style=\"red\" 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\ngobs-cli --style=\"red\" --no-border sceneitem list\n```\n\nOr with environment variables:\n\n```env\nGOBS_STYLE=red\nGOBS_STYLE_NO_BORDER=true\n```\n\n## Commands\n\n### ObsVersionCmd\n\n-   Print OBS client and websocket version.\n\n```console\ngobs-cli obs-version\n```\n\n### SceneCmd\n\n-   list: List all scenes.\n    -   flags:\n\n        *optional*\n        -   --UUID: Display UUIDs of scenes.\n\n```console\ngobs-cli scene list\n```\n\n-   current: Get the current scene.\n    -   flags:\n\n        *optional*\n        -   --preview:  Preview scene.\n\n```console\ngobs-cli scene current\n\ngobs-cli scene current --preview\n```\n\n-   switch: Switch to a scene.\n    -   flags:\n\n        *optional*\n        -   --preview:  Preview scene.\n    -   args: SceneName\n\n```console\ngobs-cli scene switch LIVE\n\ngobs-cli scene switch --preview LIVE\n```\n\n### SceneItemCmd\n\n-   list: List all scene items.\n    -   flags:\n\n        *optional*\n        -   --UUID: Display UUIDs of scene items.\n\n    *optional*\n    -   args: SceneName\n        -   defaults to current scene\n\n```console\ngobs-cli sceneitem list\n\ngobs-cli sceneitem list LIVE\n```\n\n-   show: Show scene item.\n    -   flags:\n\n        *optional*\n        -   --group: Parent group name.\n    -   args: SceneName ItemName\n\n```console\ngobs-cli sceneitem show START \"Colour Source\"\n```\n\n-   hide: Hide scene item.\n    -   flags:\n\n        *optional*\n        -   --group: Parent group name.\n    -   args: SceneName ItemName\n\n```console\ngobs-cli sceneitem hide START \"Colour Source\"\n```\n\n-   toggle: Toggle scene item.\n    -   flags:\n\n        *optional*\n        -   --group: Parent group name.\n    -   args: SceneName ItemName\n\n```console\ngobs-cli sceneitem toggle --group=test_group START \"Colour Source 3\"\n```\n\n-   visible: Get scene item visibility.\n    -   flags:\n\n        *optional*\n        -   --group: Parent group name.\n    -   args: SceneName ItemName\n\n```console\ngobs-cli sceneitem visible --group=test_group START \"Colour Source 4\"\n```\n\n-   transform: Transform scene item.\n    -   flags:\n        \n        *optional*\n        -   --group: Parent group name.\n\n        -   --alignment: Alignment of the scene item.\n        -   --bounds-alignment: Bounds alignment of the scene item.\n        -   --bounds-height: Bounds height of the scene item.\n        -   --bounds-type: Bounds type of the scene item.\n        -   --bounds-width: Bounds width of the scene item.\n        -   --crop-to-bounds: Whether to crop the scene item to bounds.\n        -   --crop-bottom: Crop bottom value of the scene item.\n        -   --crop-left: Crop left value of the scene item.\n        -   --crop-right: Crop right value of the scene item.\n        -   --crop-top: Crop top value of the scene item.\n        -   --position-x: X position of the scene item.\n        -   --position-y: Y position of the scene item.\n        -   --rotation: Rotation of the scene item.\n        -   --scale-x: X scale of the scene item.\n        -   --scale-y: Y scale of the scene item.\n    -   args: SceneName ItemName\n\n```console\ngobs-cli sceneitem transform \\\n    --rotation=5 \\\n    --position-x=250.8 \\\n    Scene \"Colour Source 3\"\n```\n\n### GroupCmd\n\n-   list: List all groups.\n\n    *optional*\n    -   args: SceneName\n        -   defaults to current scene\n\n```console\ngobs-cli group list\n\ngobs-cli group list START\n```\n\n-   show: Show group details.\n    -   args: SceneName GroupName\n\n```console\ngobs-cli group show START \"test_group\"\n```\n\n-   hide: Hide group.\n    -   args: SceneName GroupName\n\n```console\ngobs-cli group hide START \"test_group\"\n```\n\n-   toggle: Toggle group.\n    -   args: SceneName GroupName\n\n```console\ngobs-cli group toggle START \"test_group\"\n```\n\n-   status: Get group status.\n    -   args: SceneName GroupName\n\n```console\ngobs-cli group status START \"test_group\"\n```\n\n### InputCmd\n\n-   create: Create input.\n    -   args: Name Kind\n\n```console\ngobs-cli input create 'stream mix' 'wasapi_input_capture'\n```\n\n-   remove: Remove input.\n    -   args: Name\n\n```console\ngobs-cli input remove 'stream mix'\n```\n\n-   list: List all inputs.\n    -   flags:\n\n        *optional*\n        -   --input: List all inputs.\n        -   --output: List all outputs.\n        -   --colour: List all colour sources.\n        -   --ffmpeg: List all ffmpeg sources.\n        -   --vlc: List all VLC sources.\n        -   --uuid: Display UUIDs of inputs.\n\n```console\ngobs-cli input list\n\ngobs-cli input list --input --colour\n```\n\n-   list-kinds: List input kinds.\n\n```console\ngobs-cli input list-kinds\n```\n\n-   mute: Mute input.\n    -   args: InputName\n\n```console\ngobs-cli input mute \"Mic/Aux\"\n```\n\n-   unmute: Unmute input.\n    -   args: InputName\n\n```console\ngobs-cli input unmute \"Mic/Aux\"\n```\n\n-   toggle: Toggle input.\n    -   args: InputName\n\n```console\ngobs-cli input toggle \"Mic/Aux\"\n```\n\n-   volume: Set input volume.\n    -   args: InputName Volume\n\n```console\ngobs-cli input volume -- 'Mic/Aux' -30.6\n```\n\n-   show: Show input details.\n    -   args: Name\n    -   flags:\n\n        *optional*\n        -   --verbose: List all available input devices.\n\n-   update: Update input settings.\n    -   args: InputName DeviceName\n\n```console\ngobs-cli input update 'Mic/Aux' 'Voicemeeter Out B1 (VB-Audio Voicemeeter VAIO)'\n```\n\n-   kind-defaults: Get default settings for an input kind.\n    -   args: Kind\n\n```console\ngobs-cli input kind-defaults 'wasapi_input_capture'\n```\n\n### TextCmd\n\n-   current: Display current text for a text input.\n    -   args: InputName\n\n```console\ngobs-cli text current \"My Text Input\"\n```\n\n-   update: Update the text of a text input.\n    -   args: InputName NewText\n\n```console\ngobs-cli text update \"My Text Input\" \"hi OBS!\"\n```\n\n### RecordCmd\n\n-   start: Start recording.\n\n```console\ngobs-cli record start\n```\n\n-   stop: Stop recording.\n\n```console\ngobs-cli record stop\n```\n\n-   status: Get recording status.\n\n```console\ngobs-cli record status\n```\n\n-   toggle: Toggle recording.\n\n```console\ngobs-cli record toggle\n```\n\n-   pause: Pause recording.\n\n```console\ngobs-cli record pause\n```\n\n-   resume: Resume recording.\n\n```console\ngobs-cli record resume\n```\n\n-   directory: Get/Set recording directory.\n\n    *optional*\n    -   args: RecordDirectory\n        -   if not passed the current record directory will be printed.\n\n```console\ngobs-cli record directory\n\ngobs-cli record directory \"/home/me/obs-vids/\"\ngobs-cli record directory \"C:/Users/me/Videos\"\n```\n\n-   split: Split recording.\n\n```console\ngobs-cli record split\n```\n\n-   chapter: Create a chapter in the recording.\n\n    *optional*\n    -   arg: ChapterName\n\n```console\ngobs-cli record chapter \"Chapter Name\"\n```\n\n### StreamCmd\n\n-   start: Start streaming.\n\n```console\ngobs-cli stream start\n```\n\n-   stop: Stop streaming.\n\n```console\ngobs-cli stream stop\n```\n\n-   status: Get streaming status.\n\n```console\ngobs-cli stream status\n```\n\n-   toggle: Toggle streaming.\n\n```console\ngobs-cli stream toggle\n```\n\n### SceneCollectionCmd\n\n-   list: List scene collections.\n\n```console\ngobs-cli scenecollection list\n```\n\n-   current: Get current scene collection.\n\n```console\ngobs-cli scenecollection current\n```\n\n-   switch: Switch scene collection.\n    -   args: Name\n\n```console\ngobs-cli scenecollection switch test-collection\n```\n\n-   create: Create scene collection.\n    -   args: Name\n\n```console\ngobs-cli scenecollection create test-collection\n```\n\n### ProfileCmd\n\n-   list: List profiles.\n\n```console\ngobs-cli profile list\n```\n\n-   current: Get current profile.\n\n```console\ngobs-cli profile current\n```\n\n-   switch: Switch profile.\n    -   args: Name\n\n```console\ngobs-cli profile switch test-profile\n```\n\n-   create: Create profile.\n    -   args: Name\n\n```console\ngobs-cli profile create test-profile\n```\n\n-   remove: Remove profile.\n    -   args: Name\n\n```console\ngobs-cli profile remove test-profile\n```\n\n### ReplayBufferCmd\n\n-   start: Start replay buffer.\n\n```console\ngobs-cli replaybuffer start\n```\n\n-   stop: Stop replay buffer.\n\n```console\ngobs-cli replaybuffer stop\n```\n\n-   toggle: Toggle replay buffer.\n\n```console\ngobs-cli replaybuffer toggle\n```\n\n-   status: Get replay buffer status.\n\n```console\ngobs-cli replaybuffer status\n```\n\n-   save: Save replay buffer.\n\n```console\ngobs-cli replaybuffer save\n```\n\n### StudioModeCmd\n\n-   enable: Enable studio mode.\n\n```console\ngobs-cli studiomode enable\n```\n\n-   disable: Disable studio mode.\n\n```console\ngobs-cli studiomode disable\n```\n\n-   toggle: Toggle studio mode.\n\n```console\ngobs-cli studiomode toggle\n```\n\n-   status: Get studio mode status.\n\n```console\ngobs-cli studiomode status\n```\n\n### VirtualCamCmd\n\n-   start: Start virtual camera.\n\n```console\ngobs-cli virtualcam start\n```\n\n-   stop: Stop virtual camera.\n\n```console\ngobs-cli virtualcam stop\n```\n\n-   toggle: Toggle virtual camera.\n\n```console\ngobs-cli virtualcam toggle\n```\n\n-   status: Get virtual camera status.\n\n```console\ngobs-cli virtualcam status\n```\n\n### HotkeyCmd\n\n-   list: List all hotkeys.\n\n```console\ngobs-cli hotkey list\n```\n\n-   trigger: Trigger a hotkey by name.\n\n```console\ngobs-cli hotkey trigger OBSBasic.StartStreaming\n\ngobs-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: keyID\n        -   Check [obs-hotkeys.h][obs-keyids] for a full list of OBS key ids.\n\n```console\ngobs-cli hotkey trigger-sequence OBS_KEY_F1 --ctrl\n\ngobs-cli hotkey trigger-sequence OBS_KEY_F1 --shift --ctrl\n```\n\n### FilterCmd\n\n-   list: List all filters.\n\n    *optional*\n    -   args: SourceName\n        -   defaults to current scene\n\n```console\ngobs-cli filter list\n```\n\n-   enable: Enable filter.\n    -   args: SourceName FilterName\n\n```console\ngobs-cli enable 'Mic/Aux' 'Gain'\n```\n\n-   disable: Disable filter.\n    -   args: SourceName FilterName\n\n```console\ngobs-cli disable 'Mic/Aux' 'Gain'\n```\n\n-   toggle: Toggle filter.\n    -   args: SourceName FilterName\n\n```console\ngobs-cli toggle 'Mic/Aux' 'Gain'\n```\n\n-   status: Get filter status.\n    -   args: SourceName FilterName\n\n```console\ngobs-cli status 'Mic/Aux' 'Gain'\n```\n\n### ProjectorCmd\n\n-   list-monitors: List available monitors.\n\n```console\ngobs-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: SourceName\n        -   defaults to current scene\n\n```console\ngobs-cli projector open\n\ngobs-cli projector open --monitor-index=1 \"test_scene\"\n\ngobs-cli projector open --monitor-index=1 \"test_group\"\n```\n\n### ScreenshotCmd\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: SourceName FilePath\n\n```console\ngobs-cli screenshot save --width=2560 --height=1440 \"Scene\" \"C:\\Users\\me\\Videos\\screenshot.png\"\n```\n\n### SettingsCmd\n\n-   show: Show settings.\n    -   flags:\n\n        *optional*\n        -   --video: Show video settings.\n        -   --record: Show record directory.\n        -   --profile: Show profile parameters.\n\n```console\ngobs-cli settings show --video --record\n```\n\n-   profile: Get/Set profile parameter setting.\n    -   args: Category Name Value\n\n```console\ngobs-cli settings profile SimpleOutput VBitrate\n\ngobs-cli settings profile SimpleOutput VBitrate 6000\n```\n\n-   stream-service: Get/Set stream service setting.\n    -   flags:\n        -   --key: Stream key.\n        -   --server: Stream server URL.\n\n    *optional*\n    -   args: Type\n\n```console\ngobs-cli settings stream-service\n\ngobs-cli settings stream-service --key='live_xyzxyzxyzxyz' rtmp_common\n```\n\n-   video: Get/Set video setting.\n    -   flags:\n\n        *optional*\n        -   --base-width: Base (canvas) width.\n        -   --base-height: Base (canvas) height.\n        -   --output-width: Output (scaled) width.\n        -   --output-height: Output (scaled) height.\n        -   --fps-num: Frames per second numerator.\n        -   --fps-den: Frames per second denominator.\n\n```console\ngobs-cli settings video\n\ngobs-cli settings video --base-width=1920 --base-height=1080\n```\n\n### MediaCmd\n\n-   cursor: Get/set the cursor position of a media input.\n    -   args: InputName\n\n        *optional*\n        -   TimeString\n\n```console\ngobs-cli media cursor \"Media\"\n\ngobs-cli media cursor \"Media\" \"00:08:30\"\n```\n\n-   play: Plays a media input.\n\n```console\ngobs-cli media play \"Media\"\n```\n\n-   pause: Pauses a media input.\n\n```console\ngobs-cli media pause \"Media\"\n```\n\n-   stop: Stops a media input.\n\n```console\ngobs-cli media stop \"Media\"\n```\n\n-   restart: Restarts a media input.\n\n```console\ngobs-cli media restart \"Media\"\n```\n\n\n## Shell Completion\n\n-   completion:\n\n    *optional*\n    -   args: Shell\n        - If no shell is passed completion will attempt to detect the current login shell.\n\n```console\ngobs-cli completion\n\ngobs-cli completion bash\n```\n\nCurrently supported shells: *bash* *zsh* *fish*.\n\n\n## License\n\n`gobs-cli` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.\n\n\n[userconfigdir]: https://pkg.go.dev/os#UserConfigDir\n[obs-keyids]: https://github.com/obsproject/obs-studio/blob/master/libobs/obs-hotkeys.h\n[no-colour]: https://no-color.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonyx-and-iris%2Fgobs-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonyx-and-iris%2Fgobs-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonyx-and-iris%2Fgobs-cli/lists"}