Your footage, on the command line.
BetterClips and BetterEdits were built for the agent era. Each ships a command line inside its bundle and writes a guide into every folder, so Claude Code can search, tag, cut, 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. These are the rules both apps follow.
- 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 clips, tracks, text and captions behave. Open Claude Code there and it already knows what to do.
- 02
The tool rides inside the app
Nothing goes on your PATH. betterclips lives at BetterClips.app/Contents/Helpers; BetterEdits answers to BetterEdits cli. The guide names the exact path and rewrites it at every launch, so it heals itself if the app moves.
- 03
Same rules, one undo per step
The command line applies the rules the window applies: statuses, single-select tags, magnetic tracks. Every command lands as an ordinary undo step in the running app. --json everywhere, ids accept any unique prefix.
Two tools, one grammar.
Short refs, seconds or timecodes, --json for machines. This is the shape of it; the guide in each folder has every option.
clips list --search …Find clips: fuzzy, literal or meaning search, plus filters.clips tag <id> --add Vibe:EnergeticTag, rate and describe with your own properties.clips set <id> --status readyMove clips through New, Draft, Ready and Archive.highlights add <id> --in 3.2 --out 7.3Mark the moment worth keeping inside a clip.highlights export <id…> --to ./reelWrite losslessly trimmed files named after the moment.import ./shoot --recursiveBring a folder in; duplicates are caught by content.ai tag <id…>Ask the model to fill AI properties, priced in credits.views save "Gym reels"Keep a filter and its look as a view.
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 v1Deepgram transcribes; 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.
Say it the way you'd say it to an editor.
BetterClips> Import everything in ~/Shoots/Tuesday, tag it, and mark Ready anything with a face in focus.
BetterClips> Show me the ten most cinematic drone shots from spring and export the best five seconds of each.
BetterEdits> Cut the clips in ./reel into a 20-second 9:16 piece, caption it, and put the title on the first clip.
BetterEdits> Clone this reel's structure, fill each placeholder from ./b-roll, and export at 4K.

Both, with the bundle> Find last week's coffee-shop footage, cut a morning-routine reel with captions, and export it.

Both, with the bundle> Make three variations of this reel with different hooks and export all of them.
An agent can only do what you could do. And you can undo it.
We didn't bolt an API onto the apps. 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, always
Every command is one step in the app's undo stack, even a 40-clip import.
- Asks before it cuts
Trims that rewrite a file and splits that make two files ask first.
- Reads what you show it
frame and contact-sheet write PNGs; the model sees only what you export.
- 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 (AI tagging, asking, subtitles, cloning) spend AI credits; the trial comes with 100 to try them.
- Does the app have to be open?
- betterclips works on the library files directly, so no; the app reloads live if it is open. BetterEdits cli talks to the running app over a Unix socket and launches it in the background when it is not running.
- 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 tools the same way.
- What can it break?
- The same things you can from the window, and each is one undo away. Trims that cut files ask first, imports are copies, and the tool never touches your source folders.
- Do I need API keys?
- No. The apps call the models through your BetterApps account and spend credits. Nothing provider-related is stored on your Mac.
Open a terminal in a folder of footage.
The apps are free to try, the command lines come with them, and the guide is already in the folder.