Documentation
Drive video edits from the command line.
MovieStar is a CLI built for AI agents. Load a video, find moments by what was said, make reversible edits, verify a frame, and render — and every command hands back structured JSON an agent can act on.
Install
Requires Python 3.10+ and FFmpeg on your PATH. On macOS: brew install ffmpeg.
$ pip install moviestar$ moviestar --help
Quickstart
One clip, start to finish
Load a recording, find a line by what was said, cut a clean vertical clip, check the frame, and render. Each command appends to the spec and hands back JSON with the timecodes and the next step.
$ moviestar load talk.mp4 --as src_0
$ moviestar find "this is where you get to the pain"
{
"command": "find",
"query": "this is where you get to the pain",
"matches": [
{
"text": "this is where you get to that pain",
"score": 0.91,
"source_range": {
"from": {
"text": "0:00:38.700",
"seconds": 38.7
},
"to": {
"text": "0:00:41.200",
"seconds": 41.2
}
}
}
],
"hint": "Pipe a match into trim with --snap-to-words for clean boundaries."
}$ moviestar trim --from 0:00:38.700 --to 0:00:41.200 --snap-to-words
$ moviestar screenshot --at 0:00:00.000
$ moviestar export short.mp4Made a wrong cut? moviestar undo reverts the last operation. Want to see the whole plan? moviestar spec prints the current edit spec as JSON.
Concepts
How MovieStar thinks
Every edit is a spec
Commands don't touch your source file. Each edit appends a declarative operation to a spec — reversible with undo, inspectable with spec, and reproducible on export.
Address by words or by time
find searches the transcript and hands back exact timecodes. Feed those into trim or cut, or address any edit directly by timecode. No eyeballing the scrubber.
Structured JSON, always
Every command prints a structured envelope — timecodes, durations, and a hint on what to do next. An agent reads it and drives the whole loop itself.
Deterministic render
export renders the spec the same way every time. Same input, same result — no hidden model calls, no randomness. Preview a single frame in seconds first.
Reference
Command reference
The full surface, grouped by the edit loop. Run moviestar <command> --help for options on any of them.
Load & browse
Get a video into a project and perceive what's in it.
- load
- Load one or more videos into a project workspace.
- status
- Show sources, edits, transcripts, and overlays at a glance.
- skim
- Fast sample of thumbnails + transcript across a range.
- inspect
- Dense thumbnails + transcript for a narrow range, on demand.
- storyboard
- Contact sheet — one composite image sampling the whole video.
- probe
- Inspect a media file's metadata and audio loudness.
Find & edit
Address moments by what was said or by time, then edit the spec.
- find
- Fuzzy-search the project's transcript for a phrase.
- trim
- Trim to a timecode range. Appends to the edit spec.
- cut
- Remove a range from a source's result. Appends to the edit spec.
- clip
- Extract one independent clip from a source to its own MP4.
- undo
- Revert the last edit operation.
- spec
- Show, replace, or reset the current edit spec (JSON).
- history
- Show the step-by-step lineage of one source's edits.
Verify & render
Check your work at any fidelity, then commit to a full render.
- screenshot
- Capture a single frame at a timecode.
- watch
- Extract a video segment from the loaded project as MP4.
- export
- Render the current edit spec to a final MP4.
- clean
- Clean generated output artifacts.
Point your agent at a video
MovieStar runs locally and works with Claude Code and Codex. Install it, describe the edit, and let the agent drive the loop.