cli-anything-shotcut

Original:🇺🇸 English
Translated

Command-line interface for Shotcut - A stateful command-line interface for video editing, built on the MLT XML format. Designed for AI ag...

14installs
Added on

NPX Install

npx skill4agent add hkuds/cli-anything cli-anything-shotcut

Tags

Translated version includes tags in frontmatter

cli-anything-shotcut

A stateful command-line interface for video editing, built on the MLT XML format. Designed for AI agents and power users who need to create and edit Shotcut projects without a GUI.

Installation

This CLI is installed as part of the cli-anything-shotcut package:
bash
pip install cli-anything-shotcut
Prerequisites:
  • Python 3.10+
  • shotcut must be installed on your system

Usage

Basic Commands

bash
# Show help
cli-anything-shotcut --help

# Start interactive REPL mode
cli-anything-shotcut

# Create a new project
cli-anything-shotcut project new -o project.json

# Run with JSON output (for agent consumption)
cli-anything-shotcut --json project info -p project.json

REPL Mode

When invoked without a subcommand, the CLI enters an interactive REPL session:
bash
cli-anything-shotcut
# Enter commands interactively with tab-completion and history
The REPL exposes the same practical helpers as command mode, including
add-clip ... --at
,
volume-envelope
, and
duck
.

Command Groups

Project

Project management: new, open, save, info.
CommandDescription
new
Create a new blank project
open
Open an existing .mlt project file
save
Save the current project
info
Show detailed project information
profiles
List available video profiles
xml
Print the raw MLT XML of the current project

Timeline

Timeline operations: tracks, clips, trimming.
CommandDescription
show
Show the timeline overview
tracks
List all tracks
add-track
Add a new track to the timeline
remove-track
Remove a track by index
add-clip
Add a media clip to a track; supports
--at
for absolute timeline placement
remove-clip
Remove a clip from a track
move-clip
Move a clip between tracks or positions
trim
Trim a clip's in/out points
split
Split a clip into two at the given timecode
clips
List all clips on a track
add-blank
Add a blank gap to a track
set-name
Set a track's display name
mute
Mute or unmute a track
hide
Hide or unhide a video track

Filter Group

Filter operations: add, remove, configure effects.
CommandDescription
list-available
List all available filters
info
Show detailed info about a filter and its parameters
add
Add a filter to a clip, track, or globally
remove
Remove a filter by index
set
Set a parameter on a filter
volume-envelope
Create or replace a keyframed volume envelope on a track or clip
duck
Build a practical ducking envelope over one or more time windows
list
List active filters on a target

Media

Media operations: probe, list, check files.
CommandDescription
probe
Analyze a media file's properties
list
List all media clips in the current project
check
Check all media files for existence
thumbnail
Generate a thumbnail from a video file

Export

Export/render operations.
CommandDescription
presets
List available export presets
preset-info
Show details of an export preset
render
Render the project to a video file

Transition Group

Transition operations: dissolve, wipe, and other transitions.
CommandDescription
list-available
List all available transition types
info
Show detailed info about a transition type
add
Add a transition between two tracks
remove
Remove a transition by index
set
Set a parameter on a transition
list
List all transitions on the timeline

Composite Group

Compositing: blend modes, PIP, opacity.
CommandDescription
blend-modes
List all available blend modes
set-blend
Set the blend mode for a track
get-blend
Get the current blend mode for a track
set-opacity
Set the opacity of a track (0.0-1.0)
pip
Set picture-in-picture position for a clip

Session

Session management: status, undo, redo.
CommandDescription
status
Show current session status
undo
Undo the last operation
redo
Redo the last undone operation
save
Save session state to disk
list
List all saved sessions

Examples

Create a New Project

Create a new shotcut project file.
bash
cli-anything-shotcut project new -o myproject.json
# Or with JSON output for programmatic use
cli-anything-shotcut --json project new -o myproject.json

Interactive REPL Session

Start an interactive session with undo/redo support.
bash
cli-anything-shotcut
# Enter commands interactively
# Use 'help' to see available commands
# Use 'undo' and 'redo' for history navigation

Export Project

Export the project to a final output format.
bash
cli-anything-shotcut --project myproject.json export render output.mp4 --overwrite

Deterministic Timeline Reconstruction

For rebuilds, prefer absolute placement over append-only clip insertion:
bash
cli-anything-shotcut --project myproject.json -s timeline add-clip intro.mp4 \
  --track 1 --in 00:00:00.000 --out 00:00:04.000 --at 00:00:00.000

cli-anything-shotcut --project myproject.json -s timeline add-clip broll.mp4 \
  --track 1 --in 00:00:10.000 --out 00:00:16.000 --at 00:00:08.000
Notes:
  • --at
    inserts blanks automatically when the target time lands in empty space.
  • The CLI rejects overlap with an existing clip instead of silently changing the timeline.
  • For agent-built timelines, prefer explicit
    --in
    and
    --out
    values so later absolute placement remains unambiguous.

Audio Automation

The released CLI now includes higher-level audio automation helpers:
bash
cli-anything-shotcut --project myproject.json -s filter volume-envelope \
  --track 2 \
  --point 00:00:00.000=1.0 \
  --point 00:00:03.000=0.35 \
  --point 00:00:05.000=1.0

cli-anything-shotcut --project myproject.json -s filter duck \
  --track 2 \
  --window 00:00:06.000:00:00:09.000 \
  --window 00:00:15.000:00:00:18.000 \
  --normal 1.0 --duck 0.25 \
  --attack 00:00:00.150 --release 00:00:00.250
Keyframed
volume
filters now export as ffmpeg
volume=
expressions instead of collapsing to a simple fade. This is materially better, but you should still review final renders when automation is editorially important.

State Management

The CLI maintains session state with:
  • Undo/Redo: Up to 50 levels of history
  • Project persistence: Save/load project state as JSON
  • Session tracking: Track modifications and changes

Output Formats

All commands support dual output modes:
  • Human-readable (default): Tables, colors, formatted text
  • Machine-readable (
    --json
    flag): Structured JSON for agent consumption
bash
# Human output
cli-anything-shotcut project info -p project.json

# JSON output for agents
cli-anything-shotcut --json project info -p project.json

For AI Agents

When using this CLI programmatically:
  1. Always use
    --json
    flag
    for parseable output
  2. Check return codes - 0 for success, non-zero for errors
  3. Parse stderr for error messages on failure
  4. Use absolute paths for all file operations
  5. Verify outputs exist after export operations
  6. Prefer
    timeline add-clip --at
    when recreating a known edit
  7. Review final renders after keyframed volume or ducking changes

More Information

  • Full documentation: See README.md in the package
  • Test coverage: See TEST.md in the package
  • Methodology: See HARNESS.md in the cli-anything-plugin

Version

1.0.0