
Cli Anything Shotcut
- 383 installs
- 46.6k repo stars
- Updated August 3, 2026
- hkuds/cli-anything
cli-anything-shotcut is a Python agent skill that drives Shotcut video editing through a stateful CLI built on MLT XML so developers automating media pipelines can trim, splice, apply filters, and export without GUI clic
About
cli-anything-shotcut is a hkuds/cli-anything agent skill for the cli-anything-shotcut Python package, a stateful command-line interface for Shotcut video editing built on the MLT XML format. Install with pip install cli-anything-shotcut; prerequisites are Python 3.10+, melt for rendering, ffmpeg/ffprobe for media probing, and Shotcut on the host. Designed for AI agents and power users, the CLI supports --help, interactive REPL mode, and programmatic project edits—trimming, splicing, filters, and export—without opening the Shotcut GUI. Developers reach for cli-anything-shotcut when agent workflows need structured Shotcut projects instead of ad-hoc ffmpeg one-liners, especially for repeatable social clips, demo reels, or batch video adjustments in local pipelines.
- Shotcut operations exposed as agent commands
- Predictable CLI for cut/export workflows
- Pairs with captioning and post-production skills
- Avoids manual GUI automation brittleness
- Supports repeatable content-editing pipelines
Cli Anything Shotcut by the numbers
- 383 all-time installs (skills.sh)
- +15 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #142 of 550 CLI & Terminal skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hkuds/cli-anything --skill cli-anything-shotcutAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 383 |
|---|---|
| repo stars | ★ 46.6k |
| Last updated | August 3, 2026 |
| Repository | hkuds/cli-anything ↗ |
How do agents automate Shotcut video editing from CLI?
Let agents drive Shotcut video-editing steps—trim, splice, export, filters—via a consistent CLI instead of manual GUI clicks or fragile one-off ffmpeg scripts.
Who is it for?
Developers who want agent-controlled Shotcut editing with melt/ffmpeg rendering instead of brittle one-off ffmpeg shell scripts.
Skip if: Developers who need cloud-only video APIs without installing Shotcut, melt, and ffmpeg locally.
When should I use this skill?
User asks to automate Shotcut, edit video via CLI with MLT XML, or replace manual trim/splice/export steps with agent commands.
What you get
Shotcut MLT XML project files, rendered video exports, and repeatable CLI edit transcripts.
- MLT XML project
- rendered video export
By the numbers
- Requires Python 3.10+, melt, ffmpeg/ffprobe, and Shotcut installed
- Built on MLT XML format for Shotcut project automation
Files
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-shotcutPrerequisites:
- 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.jsonREPL 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.mltREPL 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 500preview 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-sessionExamples
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.jsonInteractive 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 navigationExport Project
Export the project to a final output format.
cli-anything-shotcut --project myproject.json export render output.mp4 --overwriteDeterministic 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.25The 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.jsonFor 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 8. Use `preview capture` or `preview live ...` to validate pacing, cuts, and filter effects visually 9. Read returned artifact paths such as hero.png and preview.mp4; JSON payloads reference files on disk 10. Use `preview live status --json` before reading the full `trajectory.json` 11. 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
Related skills
FAQ
What binaries does cli-anything-shotcut require?
cli-anything-shotcut requires Python 3.10+, melt for rendering and playback, ffmpeg/ffprobe for media probing, and Shotcut installed locally. Install the Python package with pip install cli-anything-shotcut.
Why use cli-anything-shotcut instead of raw ffmpeg?
cli-anything-shotcut preserves Shotcut's MLT XML project model, enabling structured trim, splice, filter, and export steps agents can replay. Raw ffmpeg one-liners lack Shotcut's project state and multi-filter timeline editing.