Edit video by telling your agent what you want.
Moviestar is a video editor built for AI agents. Describe the edits you want to make inside Claude Code or Codex and moviestar gives them the tools to make edits, burn in captions, and render a finished video.
Watch it work
From raw recordings to a finished video in one conversation
A video about how moviestar works, edited by moviestar.
How it works
You direct. Your agent edits. Moviestar is the video editing software.
You say what you want. Your agent makes the edit by running moviestar commands, and moviestar answers each one with structured results the agent can read and check before its next move. Here’s one real edit, start to finish.
You ask
“Install the moviestar package from PyPI and use it to edit the attached video. Find the strongest 30–60 second moment, cut it into a vertical clip with word-by-word captions, and show me the proposed edit before you render it.”
Try it yourself: give your agent a video and paste this in. It installs moviestar and takes it from there.
Your agent does
Here’s what it ran for that ask, and what moviestar handed back each time.
Find the moment by what was said
Moviestar searches the transcript and hands back exact timecodes, not a guess the agent has to eyeball.
$ 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."
}Make the cut as a reversible step
Each edit is saved as a step in a plan, not baked into the video. Undo any step, re-run the render anytime, and your original file never changes.
$ moviestar trim --from 0:00:38.700 --to 0:00:41.200 --snap-to-words
{
"operation": {
"type": "trim",
"from": {
"text": "0:00:38.700",
"seconds": 38.7
},
"to": {
"text": "0:00:41.200",
"seconds": 41.2
}
},
"snapped_to_words": true,
"result_duration": {
"text": "0:00:02.500",
"seconds": 2.5
},
"operations_applied": 1,
"hint": "Run 'moviestar undo' to revert, or 'moviestar export' to render."
}Check the frame before rendering
Fast feedback at every fidelity: validate the spec, render one frame in seconds, or dry-run the whole command before committing to a full render.
$ moviestar screenshot --at 0:00:00.000
{
"out": "moviestar/frames/verify_0.000s.jpg",
"source_timecode": {
"text": "0:00:38.700",
"seconds": 38.7,
"frame": 1161
},
"operations_applied": 1,
"width": 1080,
"height": 1920,
"file_size_bytes": 142336
}Render the finished video
One deterministic render from the spec. Same input, same result, every time.
$ moviestar export short.mp4{
"status": "exported",
"out": "short.mp4",
"result_duration": {
"text": "0:00:02.500",
"seconds": 2.5
},
"operations_applied": 1,
"mode": "precise",
"file_size_bytes": 423112
}The agent reads the timecodes, the durations, the hint on what to do next, and drives the whole loop itself. You just see the finished clip.
What it does
Everything an editor expects, reachable in plain language
Sees and hears your footage
Transcripts, scene changes, loud and silent moments, frames on demand. Your agent perceives the video before it touches it.
Cuts by words or by time
“Trim from 4:23 to 4:28” or “cut the sentence where she restarts.” Address any edit by timecode or by what was said.
Burns in captions
Word-by-word highlighted captions, TikTok and Reels style, on-brand. Great for shorts that need to land without sound.
Renders deterministically
Same input, same result, every time. No hidden model calls, no randomness. Preview a single frame in seconds before a full render.
Stay in the loop
Get release updates
Moviestar ships fast. Drop your email for new features, demos, and release notes. No spam, just what changed.
Start editing
Install it, then point your agent at a video and describe the edit.
$ pip install moviestar