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...
How do I install this agent skill?
npx skills add https://github.com/hkuds/cli-anything --skill cli-anything-shotcutIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides a command-line interface for video editing using Shotcut and the MLT framework. It facilitates project management, timeline editing, and video rendering. All identified behaviors, including package installation and command execution, are standard for video processing tools and align with the skill's stated purpose.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
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:
pip install cli-anything-shotcut
Prerequisites:
- Python 3.10+
melt(MLT CLI) — required for rendering and playbackffmpeg/ffprobe— required for media probingshotcutmust be installed on your system
Usage
Basic Commands
# 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 with undo/redo support:
cli-anything-shotcut
# or with a project:
cli-anything-shotcut --project my_project.mlt
REPL Commands
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.mltfilesave [path]— Save projectinfo— Show project infoxml— Print raw MLT XMLstatus— Show session statusundo/redo— Navigate operation history
Media (two-step model):
media import <file> [--caption name]— Import file into project bin, returnsclip_id(e.g.,clip0)media— List all imported mediaprobe <file>— Analyze a media file
Timeline:
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 timecode
Filters:
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 file
Command Groups
Project
Project 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
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 Group
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
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
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 Group
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 |
Composite Group
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
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 |
Preview
Preview bundles and live preview sessions for iterative editing review.
| Command | Description |
|---|---|
preview recipes | List preview recipes |
preview capture | Render a low-res preview bundle |
preview latest | Return the latest existing bundle |
preview live start | Start a live preview session and publish the first bundle |
preview live push | Publish a new bundle into the live session |
preview live status | Query current live-session state without rendering |
preview live stop | Stop the live session without deleting artifacts |
Typical quick bundle contents:
preview.mp4- several sampled frames
- midpoint
hero.png summary.jsonwith project facts
Poll mode is supported:
cli-anything-shotcut --json --project edit.mlt preview live start --recipe quick --mode poll --source-poll-ms 500
preview live status --json includes session refs and a compact
trajectory_summary so agents can cheaply understand the latest few publishes.
Viewer commands:
cli-hub previews inspect /path/to/bundle-or-session
cli-hub previews html /path/to/bundle-or-session -o page.html
cli-hub previews watch /path/to/session --open
cli-hub previews open /path/to/bundle-or-session
Examples
Create a New Project
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
Interactive REPL Session
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 Project
Export the project to a final output format.
cli-anything-shotcut --project myproject.json export render output.mp4 --overwrite
Deterministic Timeline Reconstruction
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
--atinserts blanks automatically when the target time lands in empty space.- The CLI rejects overlap with an existing clip.
- Prefer explicit
--inand--outvalues so later absolute placement remains unambiguous.
Audio Automation
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:
- 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 (
--jsonflag): 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
For AI Agents
When using this CLI programmatically:
- Always use
--jsonflag for parseable output - Check return codes - 0 for success, non-zero for errors
- Parse stderr for error messages on failure
- Use absolute paths for all file operations
- Verify outputs exist after export operations
- Prefer
timeline add-clip --atwhen recreating a known edit - Review final renders after keyframed volume or ducking changes
- Use
preview captureorpreview live ...to validate pacing, cuts, and filter effects visually - Read returned artifact paths such as
hero.pngandpreview.mp4; JSON payloads reference files on disk - Use
preview live status --jsonbefore reading the fulltrajectory.json - Use
cli-hub previews ...only to inspect/open existing bundles or live sessions
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
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/hkuds/cli-anything/cli-anything-shotcut">View cli-anything-shotcut on skillZs</a>