{"id":18774114,"url":"https://github.com/leafac/obs-cli","last_synced_at":"2025-06-12T08:05:33.744Z","repository":{"id":41281521,"uuid":"316618653","full_name":"leafac/obs-cli","owner":"leafac","description":"Remote control OBS from the command line","archived":false,"fork":false,"pushed_at":"2023-01-02T10:17:44.000Z","size":177,"stargazers_count":66,"open_issues_count":4,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-13T09:44:12.447Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/leafac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"patreon":"leafac","custom":["https://paypal.me/LeandroFacchinettiEU","https://btc.com/34KJBgtaFYMtDqpSgMayw9qiKWg2GQXA9M"],"github":"leafac"}},"created_at":"2020-11-27T23:19:48.000Z","updated_at":"2025-04-02T00:05:17.000Z","dependencies_parsed_at":"2023-02-01T02:30:24.873Z","dependency_job_id":null,"html_url":"https://github.com/leafac/obs-cli","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/leafac/obs-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leafac%2Fobs-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leafac%2Fobs-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leafac%2Fobs-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leafac%2Fobs-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leafac","download_url":"https://codeload.github.com/leafac/obs-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leafac%2Fobs-cli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259426913,"owners_count":22855549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-07T19:37:23.519Z","updated_at":"2025-06-12T08:05:33.717Z","avatar_url":"https://github.com/leafac.png","language":"JavaScript","funding_links":["https://patreon.com/leafac","https://paypal.me/LeandroFacchinettiEU","https://btc.com/34KJBgtaFYMtDqpSgMayw9qiKWg2GQXA9M","https://github.com/sponsors/leafac"],"categories":[],"sub_categories":[],"readme":"\n- [ ] Binary releases:\n    - [ ] Have both a tarball and a plain executable\n    - [ ] The tarball is good because it keeps the mode of the file (executable, +x)\n    - [ ] The plain executables are good because of my REAPER actions (ReaPack can’t uncompress)\n- [ ] Use deno?\n- [ ] Use obs-websocket-js again?\n- Marco Scalet\n\n\u003ch1 align=\"center\"\u003eobs-cli\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eRemote control OBS from the command line\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/leafac/obs-cli\"\u003e\u003cimg alt=\"Source\" src=\"https://img.shields.io/badge/Source---\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/package/obs-cli\"\u003e\u003cimg alt=\"Package\" src=\"https://badge.fury.io/js/obs-cli.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/leafac/obs-cli/actions\"\u003e\u003cimg alt=\"Continuous Integration\" src=\"https://github.com/leafac/obs-cli/workflows/.github/workflows/main.yml/badge.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n### Requirements\n\n- [OBS](https://obsproject.com)\n- [obs-websocket](https://obsproject.com/forum/resources/obs-websocket-remote-control-obs-studio-from-websockets.466/)\n\nIn macOS you may install the requirements with [Homebrew](https://brew.sh):\n\n```console\n$ brew install obs obs-websocket\n```\n\n### Installation\n\n#### Option 1: Download the Executable\n\n\u003chttps://github.com/leafac/obs-cli/releases/latest\u003e\n\n#### Option 2: Use [`npm`](https://www.npmjs.com)\n\nFor this option you must have [Node.js](https://nodejs.org/) installed. In macOS you may install it with [Homebrew](https://brew.sh):\n\n```console\n$ brew install node\n```\n\nYou may install obs-cli implicitly on first use by relying on `npx`, which comes with Node.js, for example:\n\n```console\n$ npx obs-cli StartRecording\n```\n\nOr you may wish to avoid the `npx` prefix with an explicit global installation of obs-cli through `npm`, which also comes with Node.js:\n\n```console\n$ npm install --global obs-cli\n```\n\nNow you may simply run, for example:\n\n```console\n$ obs-cli StartRecording\n```\n\nFinally, you may wish to install obs-cli on a project managed by `npm`:\n\n```console\n$ npm install obs-cli\n```\n\n### Usage\n\n```\nUsage: obs-cli [options] \u003crequest[=arguments]...\u003e\n\nRemote control OBS from the command line.\n\nArguments:\n  request[=arguments]        a request name (for example, ‘GetRecordingFolder’), optionally followed by arguments (for example, ‘SetRecordingFolder='{ \"rec-folder\":\n                             \"/tmp/\" }'’) (see https://github.com/Palakis/obs-websocket/blob/4.x-current/docs/generated/protocol.md for the complete list of requests\n                             and their arguments)\n\nOptions:\n  -a, --address \u003caddress\u003e    the address to the machine in which OBS is running and the port configured in OBS under Tools \u003e WebSockets Server Settings (default:\n                             \"localhost:4444\")\n  -p, --password \u003cpassword\u003e  the password configured in OBS under Tools \u003e WebSockets Server Settings\n  -f, --field \u003cfield\u003e        project a field out of the OBS response, for example, given an OBS response of ‘[{ ..., \"streaming\": false, ...}]’ and a \u003cfield\u003e of\n                             ‘0.streaming’, obs-cli outputs just ‘false’; this is a convenience for applications that need only one part of the response\n  -V, --version              output the version number\n  -h, --help                 display help for command\n```\n\nFor example:\n\n```console\n$ npx obs-cli GetRecordingFolder\n[\n  {\n    \"message-id\": \"1\",\n    \"rec-folder\": \"/Users/leafac/Videos\",\n    \"status\": \"ok\",\n    \"messageId\": \"1\",\n    \"recFolder\": \"/Users/leafac/Videos\"\n  }\n]\n\n$ npx obs-cli --field 0.rec-folder GetRecordingFolder\n/Users/leafac/Videos\n\n$ npx obs-cli SetRecordingFolder='{ \"rec-folder\": \"/tmp/\" }'\n[\n  {\n    \"message-id\": \"1\",\n    \"status\": \"ok\",\n    \"messageId\": \"1\"\n  }\n]\n\n$ npx obs-cli GetRecordingFolder SetRecordingFolder='{ \"rec-folder\": \"/Users/leafac/Videos\" }' GetRecordingFolder\n[\n  {\n    \"message-id\": \"1\",\n    \"rec-folder\": \"/tmp/\",\n    \"status\": \"ok\",\n    \"messageId\": \"1\",\n    \"recFolder\": \"/tmp/\"\n  },\n  {\n    \"message-id\": \"2\",\n    \"status\": \"ok\",\n    \"messageId\": \"2\"\n  },\n  {\n    \"message-id\": \"3\",\n    \"rec-folder\": \"/Users/leafac/Videos\",\n    \"status\": \"ok\",\n    \"messageId\": \"3\",\n    \"recFolder\": \"/Users/leafac/Videos\"\n  }\n]\n```\n\nobs-cli is a thin wrapper around [obs-websocket-js](https://github.com/haganbmj/obs-websocket-js), which in turn is a wrapper around [obs-websocket](https://obsproject.com/forum/resources/obs-websocket-remote-control-obs-studio-from-websockets.466/). Read the documentations for those projects to learn more about what you can do with obs-cli. In particular, [here’s the list of possible requests](https://github.com/Palakis/obs-websocket/blob/4.x-current/docs/generated/protocol.md).\n\nobs-cli is similar in spirit (and equal in name) to [this other project](https://github.com/muesli/obs-cli). The main differences are: 1. It’s written in Node.js instead of Go; and 2. It [supports authentication](https://github.com/muesli/obs-cli/issues/2) and everything else that obs-websocket provides, while that other project, judging by its documentation, seems to support only a few kinds of requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleafac%2Fobs-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleafac%2Fobs-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleafac%2Fobs-cli/lists"}