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. 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
$ moviestar doctorQuickstart
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 plan, not a change to your file
Commands don't touch your source file. Each edit is saved as a step in a plan you can undo, inspect with spec, and re-run 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.
Scene composition
Shape and animate the canvas.
Use scenes geometry to resize and place a slot, make it a circle, rounded rectangle, or rectangle, add a border, or bounce it across the canvas. Camera motion is separate: the target → preview → apply flow lets an agent point at important content and inspect the exact crop before saving a zoom.
Every verification surface uses the same resolved plan. Check a project frame with screenshot, or run screenshot --file on the rendered MP4 to inspect the artifact itself.
$ moviestar scenes geometry demo:inset --size small --at bottom-right --shape circle --border "4px white"
$ moviestar scenes motion target --at 0:42 --slot main
$ moviestar screenshot --file final.mp4 --at 0:42
Reference
Command reference
The full surface, grouped by the edit loop. Run moviestar <command> --help for options on any of them.
Whatever the command, the reply is a JSON envelope in the same shape: what it did, the data an agent needs, and a hint on the next step. Here’s what load hands back.
{
"status": "loaded",
"project_dir": "/videos/talk/moviestar",
"sources": [
{
"id": "src_0",
"path": "/videos/talk/talk.mp4",
"duration": "0:04:12.000",
"width": 1920,
"height": 1080,
"fps": 30,
"transcript": {
"model": "base",
"word_count": 812,
"duration": 252
}
}
],
"hint": "Run 'moviestar skim' to browse frames and transcript. Narrow with --from/--to."
}Prepare & perceive
Check the environment, load footage, and understand what is in it.
- doctor
- Check FFmpeg readiness and feature support.
- probe
- Inspect a media file's metadata and audio loudness.
- models
- Pre-download local Whisper transcription models.
- load
- Load one or more videos into a project workspace.
- retranscribe
- Re-run transcription without discarding edits or frames.
- 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.
- activity
- Measure visual change and candidate active or idle ranges.
- storyboard
- Contact sheet: one composite image sampling the whole video.
Find & rough cut
Address moments by words or time, then build a reversible timeline.
- 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.
- concat
- Stitch ranges from one or more sources into one composition.
- history
- Show the step-by-step lineage of one source's edits.
- undo
- Revert the last edit operation.
- spec
- Show, replace, or reset the current edit spec (JSON).
Compose & finish
Arrange scenes, shape the frame, add captions, and mix the soundtrack.
- layouts
- List and preview layout presets for an output canvas.
- scenes
- Author layouts, geometry, camera motion, and pacing over time.
- captions
- Generate or import caption overlays for burn-in.
- overlays
- Author timed titles, labels, and styled text.
- audio
- Mix source audio, voiceover, and music on the final timeline.
- fonts
- Add or list fonts for captions and overlays.
Verify, render & share
Check the result, produce files, and close the feedback loop.
- screenshot
- Capture a frame from the project or any exported file.
- watch
- Extract a video segment from the loaded project as MP4.
- export
- Render the current edit spec to a final MP4.
- clip
- Extract one independent clip from a source to its own MP4.
- batch
- Extract many standalone clips from one JSON recipe.
- clean
- Clean generated output artifacts.
- feedback
- Create or send guided product feedback with optional follow-up.
- subscribe
- Sign up for release updates via confirmation email.
Product feedback
Tell us what the editing loop taught you.
Run MovieStar feedback to start with a guided report. It asks for the context needed to triage quickly, with optional debugging, positive-feedback, idea, wild-idea, and follow-up email prompts.
Leave an email in the report and we’ll send a note when that feedback has been addressed. It is stored separately and does not subscribe you to general updates. For those, an agent can run moviestar subscribe EMAIL; the human activates the subscription from a confirmation email.
MovieStar never automatically includes project files, paths, logs, account identifiers, or command history.
$ moviestar feedback > feedback.md$ moviestar feedback --file feedback.md
$ moviestar feedback --quick "trim was confusing"
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.