BetterApps
Claude Code + BetterApps

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.

~/Movies/Summer shoot — claude
> Find the three best energetic gym clips, cut them into a 9:16 reel with captions, and export it.
betterclips clips list --search "energetic gym" --mode meaning --json
3 clips · gym-kettlebell-02, gym-rope-slams, gym-sled-push
betterclips highlights export 3f9a c21e 7b40 --to ./reel
3 files · lossless trims · 41 MB
BetterEdits cli project-new Gym-reel --ratio 9:16
Gym-reel · 9:16 · in library
BetterEdits cli media-import ./reel/*.mov --track v1
v1:1 v1:2 v1:3 · 24.6 s
BetterEdits cli captions-generate --track v1
19 bars on s1 · Deepgram nova-3 · en
BetterEdits cli export --resolution 4k --fps 30
exports/Gym-reel.mp4 · 58 MB · 7.4 s
Done. The clips came from your library, the cut is open in BetterEdits, and every step is one undo.
>
How it works

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.

  1. 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.

  2. 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.

  3. 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.

Command reference

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.

BetterClips app icon
betterclips
Every command takes --library <path>; without it the tool uses $BETTERCLIPS_LIBRARY or the library enclosing the current directory.
  • 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.
BetterEdits app icon
BetterEdits cli
Refs are v1, a1, t1, s1 and v1:2. Times are seconds, 1:02.5, end or playhead. Positional values fill a command's required options.
  • 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.
Prompts to steal

Say it the way you'd say it to an editor.

Why it's safe

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.

FAQ

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.