Your timeline, on the command line.
BetterEdits ships a command line inside its bundle and writes a guide into every project, so Claude Code can cut, fill placeholders, caption and export while you watch the app do it.
Three decisions that make it real.
Agents are only useful when the tool is honest about what it can do.
- 01
Every folder teaches the agent
When you create a library or a project, the app writes a CLAUDE.md into it: the tool's full path, every command with its options, and how the pieces behave. Open Claude Code there and it already knows what to do.
- 02
The tool rides inside the app
Nothing goes on your PATH. The command line lives inside the app bundle, and the guide names the exact path and rewrites it at every launch, so it heals itself if the app moves.
- 03
Same rules as the window
The command line applies the rules the window applies. It cannot reach a state the window can't, and it cannot skip a confirmation the window would ask for.
Placeholders, captions and variations.
The editor's three pillars from a prompt: clone a structure, fill its placeholders, caption it, and cut variations. Every command is one undo step in the running app.
- >Clone this reel's structure, fill each placeholder from ./b-roll, and export at 4K.
- >Move the hook text to 0.5 s and switch the captions to Bold Outline.
- >Make three variations of this video with different hooks and export all of them.
- >Cut the clips in ./reel into a 20-second 9:16 piece, caption it, and put the title on the first clip.
- >Save this project as a template called Weekly recap, then start a new project from it.
The shape of the tool.
Short refs, seconds or timecodes, JSON for machines. The guide in each folder has every option.
project-new "Gym reel" --ratio 9:16A fresh project in the library, canvas set.media-import ./reel/*.mov --track v1Clips land on the timeline, packed and snapped.clip-split v1:1 --at 2Split, trim, move, duplicate, remove: all by ref.placeholder-add v1 --name "B-roll" --for 4Leave a named slot, fill it later.captions-generate --track v1The track is transcribed; bars appear on a Subtitles track.text-add "No talking heads." --at 0.3 --for 3.7Text with any of the 17 looks or a favorite.frame --at 4.5 --out frame.pngFrames and contact sheets so the model can look.export --resolution 4k --fps 30Render to the project's exports folder.
An agent can only do what you could do.
The command line is the UI-free half of the same code, so it cannot reach a state the window can't, and it cannot skip a confirmation the window would ask for.
- Undo in the editor
Every command is one step in the app's undo stack, even a 40-clip import.
- Reads what you show it
frame and contact-sheet write PNGs; the model sees only what you export.
- Talks to the running app
The command line drives the app over a socket and launches it in the background when needed.
- No keys on the Mac
Model calls go through your account; there is nothing in a folder for an agent to leak.
Agent questions
- Is the command line part of every plan?
- Yes. Only the commands that call a model spend AI credits; the trial comes with 100 to try them.
- Does the app have to be open?
- BetterEdits cli talks to the running app over a Unix socket and launches it in the background when it is not running.
- What can it break?
- The same things you can from the window, and each command is one undo away.
- Does it only work with Claude Code?
- Claude Code is what we build for and test with. Any agent that reads a CLAUDE.md-style guide and can run a shell command can drive the tool the same way.
- Do I need API keys?
- No. The app calls the models through your BetterApps account and spends credits. Nothing provider-related is stored on your Mac.
Open a terminal in a folder of footage.
BetterEdits is free to try, the command line comes with it, and the guide is already in the folder.