cli-anything-openscreen
A stateful command-line interface for editing screen recordings. Transform raw
captures into polished demo videos with zoom effects, speed adjustments,
trimming, annotations, and beautiful backgrounds.
Installation
bash
pip install cli-anything-openscreen
Prerequisites:
- Python 3.10+
- ffmpeg must be installed on your system
Usage
Basic Commands
bash
cli-anything-openscreen --help
cli-anything-openscreen # REPL mode
cli-anything-openscreen project new -v recording.mp4 -o project.openscreen
cli-anything-openscreen --json project info
REPL Mode
Run
without arguments to enter interactive mode.
Type
for available commands,
to exit.
Command Groups
project
Create, open, save, and configure projects.
| Command | Description |
|---|
project new [-v VIDEO] [-o PATH]
| Create new project with optional video |
| Open existing .openscreen project |
| Save project to file |
| Show project metadata and region counts |
| Set source video file |
project set <key> <value>
| Set editor setting (padding, wallpaper, etc.) |
zoom
Manage zoom regions — smooth zoom effects on specific timeline areas.
| Command | Description |
|---|
| List all zoom regions |
zoom add --start MS --end MS [--depth 1-6] [--focus-x 0-1] [--focus-y 0-1]
| Add zoom |
| Remove zoom region |
Zoom depths: 1=1.25x, 2=1.5x, 3=1.8x, 4=2.2x, 5=3.5x, 6=5.0x
speed
Manage speed regions — speed up idle time, slow down important moments.
| Command | Description |
|---|
| List all speed regions |
speed add --start MS --end MS [--speed 0.25-2.0]
| Add speed change |
| Remove speed region |
Valid speeds: 0.25, 0.5, 0.75, 1.25, 1.5, 1.75, 2.0
trim
Manage trim regions — cut out sections of the recording.
| Command | Description |
|---|
| List all trim regions |
trim add --start MS --end MS
| Cut out a section |
| Remove trim region |
crop
Set the visible area of the recording.
| Command | Description |
|---|
| Show current crop region |
crop set --x 0-1 --y 0-1 --width 0-1 --height 0-1
| Set crop (normalized) |
annotation
Add text overlays to the recording.
| Command | Description |
|---|
| List all annotations |
annotation add-text --start MS --end MS --text "..." [--x 0-1] [--y 0-1]
| Add text |
| Remove annotation |
media
Inspect and validate media files.
| Command | Description |
|---|
| Show video metadata (resolution, duration, codec) |
| Validate a video file |
media thumbnail <input> <output> [-t TIME]
| Extract a frame |
export
Render the final polished video.
| Command | Description |
|---|
| List available export presets |
export render <output_path>
| Render project to video file |
session
Manage session state with undo/redo.
| Command | Description |
|---|
| Show session info |
| Undo last operation |
| Redo last undone operation |
| Save session state to disk |
| List all saved sessions |
State Management
- Undo/Redo: Up to 50 levels of undo history
- Project persistence: JSON files
- Session tracking: auto-tracks modifications
Output Formats
- Human-readable (default): Formatted key-value pairs
- Machine-readable (): Structured JSON output
Editor Settings
| Setting | Type | Default | Description |
|---|
| string | "16:9" | 16:9, 9:16, 1:1, 4:3, 4:5 |
| string | "gradient_dark" | Background preset |
| int | 50 | 0-100, padding around video |
| int | 12 | Corner radius in pixels |
| float | 0 | 0-1, drop shadow strength |
| float | 0 | 0-1, motion blur during zoom |
| string | "good" | medium, good, source |
| string | "mp4" | mp4, gif |
For AI Agents
- Always use for parseable output
- Check return codes — 0 = success, non-zero = error
- Parse stderr for error messages in non-JSON mode
- Use absolute file paths
- After , verify the output exists and probe it
- Times are in milliseconds for all region commands
- Coordinates (focus, crop, position) are normalized 0-1
Version
1.0.0