Command-line interface for Obs Studio - A stateful command-line interface for OBS Studio scene collection editing, following the same patter...
A stateful command-line interface for OBS Studio scene collection editing, following the same patterns as the Blender CLI harness. Uses a JSON scene collection format. No OBS installation required for editing.
This CLI is installed as part of the cli-anything-obs_studio package:
pip install cli-anything-obs_studio
Prerequisites:
# Show help
cli-anything-obs_studio --help
# Start interactive REPL mode
cli-anything-obs_studio
# Create a new project
cli-anything-obs_studio project new -o project.json
# Run with JSON output (for agent consumption)
cli-anything-obs_studio --json project info -p project.json
When invoked without a subcommand, the CLI enters an interactive REPL session:
cli-anything-obs_studio
# Enter commands interactively with tab-completion and history
Project management commands.
| Command | Description |
|---|---|
new | Create a new OBS scene collection |
open | Open an existing project |
save | Save the current project |
info | Show project information |
json | Print raw project JSON |
Scene management commands.
| Command | Description |
|---|---|
add | Add a new scene |
remove | Remove a scene by index |
duplicate | Duplicate a scene |
set-active | Set the active scene |
list | List all scenes |
Source management commands.
| Command | Description |
|---|---|
add | Add a source to a scene |
remove | Remove a source by index |
duplicate | Duplicate a source |
set | Set a source property (name, visible, locked, opacity, rotation) |
transform | Transform a source (position, size, crop, rotation) |
list | List all sources in a scene |
Filter management commands.
| Command | Description |
|---|---|
add | Add a filter to a source |
remove | Remove a filter from a source |
set | Set a filter parameter |
list | List all filters on a source |
list-available | List all available filter types |
Audio management commands.
| Command | Description |
|---|---|
add | Add a global audio source |
remove | Remove a global audio source |
volume | Set volume for an audio source (0.0-3.0) |
mute | Mute an audio source |
unmute | Unmute an audio source |
monitor | Set audio monitoring type |
list | List all audio sources |
Transition management commands.
| Command | Description |
|---|---|
add | Add a transition |
remove | Remove a transition |
set-active | Set the active transition |
duration | Set transition duration in milliseconds |
list | List all transitions |
Output/streaming/recording configuration.
| Command | Description |
|---|---|
streaming | Configure streaming settings |
recording | Configure recording settings |
settings | Configure output settings |
info | Show current output configuration |
presets | List available encoding presets |
Session management commands.
| Command | Description |
|---|---|
status | Show session status |
undo | Undo the last operation |
redo | Redo the last undone operation |
history | Show undo history |
Create a new obs_studio project file.
cli-anything-obs_studio project new -o myproject.json
# Or with JSON output for programmatic use
cli-anything-obs_studio --json project new -o myproject.json
Start an interactive session with undo/redo support.
cli-anything-obs_studio
# Enter commands interactively
# Use 'help' to see available commands
# Use 'undo' and 'redo' for history navigation
The CLI maintains session state with:
All commands support dual output modes:
--json flag): Structured JSON for agent consumption# Human output
cli-anything-obs_studio project info -p project.json
# JSON output for agents
cli-anything-obs_studio --json project info -p project.json
When using this CLI programmatically:
--json flag for parseable output1.0.037:["$","$L3f",null,{"content":"$40","frontMatter":{"name":"cli-anything-obs-studio","description":"Command-line interface for Obs Studio - A stateful command-line interface for OBS Studio scene collection editing, following the same patter..."}}]