com um clique
cli-anything-shotcut
// Command-line interface for Shotcut - A stateful command-line interface for video editing, built on the MLT XML format. Designed for AI ag...
// Command-line interface for Shotcut - A stateful command-line interface for video editing, built on the MLT XML format. Designed for AI ag...
[HINT] Baixe o diretório completo da skill incluindo SKILL.md e todos os arquivos relacionados
| name | cli-anything-shotcut |
| description | Command-line interface for Shotcut - A stateful command-line interface for video editing, built on the MLT XML format. Designed for AI ag... |
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.
This CLI is installed as part of the cli-anything-shotcut package:
pip install cli-anything-shotcut
Prerequisites:
melt (MLT CLI) — required for rendering and playbackffmpeg / ffprobe — required for media probingshotcut must be installed on your system# 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
When invoked without a subcommand, the CLI enters an interactive REPL session with undo/redo support:
cli-anything-shotcut
# or with a project:
cli-anything-shotcut --project my_project.mlt
Workflow: Always media import first to get a clip_id, then use add-clip to place it on the timeline.
Project & Session:
new [profile] — Create new project (default: hd1080p30)open <path> — Open .mlt filesave [path] — Save projectinfo — Show project infoxml — Print raw MLT XMLstatus — Show session statusundo / redo — Navigate operation historyMedia (two-step model):
media import <file> [--caption name] — Import file into project bin, returns clip_id (e.g., clip0)media — List all imported mediaprobe <file> — Analyze a media fileTimeline:
add-track <video|audio> [name] — Add a tracktracks — List all tracksshow — Visual timeline overviewadd-clip <clip_id> <track> [in] [out] [--at time] — Place imported clip on trackclips <track> — List clips on a trackremove-clip <track> <clip> — Remove a cliptrim <track> <clip> [--in tc] [--out tc] — Trim clipsplit <track> <clip> <at> — Split clip at timecodeFilters:
list-filters [video|audio] — Browse available filtersfilter-info <name> — Show filter detailsadd-filter <name> [--track n] [--clip n] [key=val ...] — Add filter to clip, track, or globalfilters [--track n] [--clip n] — List active filtersremove-filter <idx> [--track n] [--clip n] — Remove filter by indexset-filter <idx> <param> <value> [--track n] [--clip n] — Set filter parametervolume-envelope [--track n] [--clip n] TIME=LEVEL ... — Keyframed volume (e.g., 00:00:00.000=1.0 00:00:03.000=0.35)duck [--track n] [--clip n] START..END ... — Ducking envelope (e.g., 00:00:06.000..00:00:09.000)Export:
presets — List export presetsrender <output> [--preset name] — Render to video fileProject management: new, open, save, info.
| Command | Description |
|---|---|
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 operations: tracks, clips, trimming.
| Command | Description |
|---|---|
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 an imported clip to a track by clip_id; supports --at for absolute 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 operations: add, remove, configure effects.
| Command | Description |
|---|---|
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 |
list | List active filters on a target |
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 |
Media operations: probe, list, check files.
| Command | Description |
|---|---|
import | Import a media file into the project bin |
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/render operations.
| Command | Description |
|---|---|
presets | List available export presets |
preset-info | Show details of an export preset |
render | Render the project to a video file |
Transition operations: dissolve, wipe, and other transitions.
| Command | Description |
|---|---|
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 |
Compositing: blend modes, PIP, opacity.
| Command | Description |
|---|---|
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 management: status, undo, redo.
| Command | Description |
|---|---|
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 |
Create a new shotcut project file.
cli-anything-shotcut project new -o myproject.json
# Or with JSON output for programmatic use
cli-anything-shotcut --json project new -o myproject.json
Start an interactive session with undo/redo support.
cli-anything-shotcut
# Enter commands interactively
# Use 'help' to see available commands
# Use 'undo' and 'redo' for history navigation
Export the project to a final output format.
cli-anything-shotcut --project myproject.json export render output.mp4 --overwrite
For rebuilds, prefer absolute placement over append-only clip insertion:
cli-anything-shotcut --project myproject.mlt media import intro.mp4
cli-anything-shotcut --project myproject.mlt timeline add-clip clip0 \
--track 1 --in 00:00:00.000 --out 00:00:04.000 --at 00:00:00.000
cli-anything-shotcut --project myproject.mlt media import broll.mp4
cli-anything-shotcut --project myproject.mlt timeline add-clip clip1 \
--track 1 --in 00:00:10.000 --out 00:00:16.000 --at 00:00:08.000
--at inserts blanks automatically when the target time lands in empty space.--in and --out values so later absolute placement remains unambiguous.cli-anything-shotcut --project myproject.mlt 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.mlt 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
The CLI maintains session state with:
All commands support dual output modes:
--json flag): Structured JSON for agent consumption# Human output
cli-anything-shotcut project info -p project.json
# JSON output for agents
cli-anything-shotcut --json project info -p project.json
When using this CLI programmatically:
--json flag for parseable outputtimeline add-clip --at when recreating a known edit1.0.0