BetterEdits app iconBetterEdits
Features

Everything BetterEdits does, and nothing it doesn't

BetterEdits is a small editor for the short videos you make every week, and the one an AI agent can drive. It has three parts: the editor you use by hand, the agent that uses it for you, and the footage analysis that gives the agent the words.

Part one · free

The editor you use by hand

A fast Mac editor in the spirit of Instagram's Edits app: one magnetic timeline, frame-exact trims, and only the parts a short video needs. Free, no account, and it works offline.

One timeline, frame-exact

Drop footage on the timeline, trim either edge and see the exact frame, split, and rearrange while the neighbours slide out of the way. 4K HDR scrubs without a spinner.

Your footage, where it is

The Sources sidebar shows the video's own files and your footage libraries. Files in a library are used in place and never duplicated. Anything else is copied once.

Captions you fix inline

A track of bars in eight styles with a live preview, positioned per track, kept clear of Instagram's UI by the guides. Burned in at export.

Text in 17 looks

Classic, Modern, Strong, Neon, Typewriter, Meme and eleven more, plus every font on your Mac. Save the looks you like as favorites.

Voiceover and music

Record from the playhead while the timeline plays, and the music ducks under your voice on its own. Detach a clip's sound to cut picture and sound separately.

Export like Edits

HD, 2K or 4K at 24, 30 or 60 fps, with HDR kept. Files go to your Movies folder, never inside the workspace. Export one clip on its own if you like.

The BetterEdits window: a 9:16 viewer with a text and a caption bar, and a timeline with Subtitles, Text, Video, Music and Voiceover tracks.
A text selected on the canvas, its inspector open, and the favorites menu showing Classic, Modern, Strong, Neon, Typewriter, Meme and more.
Settings › Subtitle Styles: eight presets, the live 9:16 preview, and the font, colour, background and shadow controls.
The Export sheet: HD, 2K and 4K, 24, 30 and 60 fps, Normal or HDR, over the open project.
Part two · Pro

The agent that uses it for you

Claude Code, Codex, Cursor and any agent that speaks MCP get the same tools: the video as a document, the words in your footage, frames to check with, and export. Every change is one undo step in the app.

  • The video as a document

    The agent asks the app for the open video as one document, edits it, and hands it back. The app checks every line and applies it as one undo step, or refuses it and says where the problem is.

  • Cuts based on the transcript

    Once the footage is analysed, a cut can start at a sentence and a pause is a number. “Cut the pauses over a second” lands on the right frame.

  • Structures and slots

    Ask for a hook, a demo and a call to action and the agent lays out named placeholders with notes, a title over the hook and a music slot, before there is a single clip.

  • Captions from the words

    Bars written from the transcript, cut by the rules in Settings, never across a cut, one speaker per bar. Ask again after you recut.

  • It checks its own work

    The agent renders a frame or a contact sheet of the cut and reads it like any image before it tells you it's done. It can also move the playhead and select a clip to show you what it means.

  • One click per agent

    Connect an Agent adds the server to Claude Code, the Claude app or Codex with one Install button. Cursor and any other MCP client take one command from Settings.

~/Movies/Reels — claude
> Read the transcript of Video 1, cut out the pauses longer than a second, then caption it and show me a contact sheet.
⏺Read the guide and the open video: Gym Hook, 9:16, one clip of 48 seconds, analysed.
⏺Found six silences over a second in the transcript and recut the take as seven clips with a little air around each cut: 41 seconds.
⏺Captioned it from the transcript, 38 bars in the default style, and checked that none straddles a cut.
⏺Drew a sheet of the cut, one frame per clip with the captions on.
⏺Done. The cut is open in BetterEdits, the sheet is next to it, and every step is one undo.
>
The Connect an Agent window: Claude Code, Claude and Codex each with an Install button, and the command for any other MCP client.
A contact sheet of eight labelled frames with the text and captions drawn on, made by BetterEdits so the model can look at the cut.

There is a page for each agent: Claude Code, Codex and Cursor. The manual explains the whole round trip in How an agent edits.

Footage analysis

Agents can't watch video. BetterEdits reads it for them

A language model has no eyes and no ears. Give it a folder of raw footage and the best it can do is cut by the clock. BetterEdits analyses each file once and hands the agent what it found as text: every spoken word and when it was said, who said it, the pauses, the words on screen, the scenes and the beats. That is why “cut the pauses” lands on the right frame, and why an agent can't do this on its own.

  • Every word, timed

    The transcript with a start and an end for each word, so a cut can begin exactly where a sentence does.

  • Who said it

    Speakers are told apart, so a change of voice ends a caption bar and a two-person clip cuts cleanly.

  • The pauses

    Every silence and false start as a number. That is what “cut the pauses” is made of.

  • What is on screen

    Text the camera saw, so the agent can find the slide or the sign you mean.

  • Scenes and beats

    Where the picture changes and where the music lands, for montages cut on the beat.

On Pro the app analyses everything in your workspace by itself as files arrive, and saves the result next to each file. Every cut you make from that file afterwards costs nothing more. See pricing.

take-3.mov · 4:12analysed
  • 0:00.0sceneTalking head at a desk, daylight, one person
  • 0:00.0silence2.4 s before the first word
  • 0:02.4speakerSpeaker 1
  • 0:02.4words“So— so here’s the thing”
  • 0:04.1silence1.3 s (a false start)
  • 0:05.4words“Three rounds a week is all it takes”
  • 0:09.0on screenWEEK 1
  • 0:41.2sceneCut to the gym, handheld
and 1,140 more words, 38 silences, 6 scenes

What the agent reads for one file. It is text, so the agent can reason about all of it at once.

Workspaces and videos

Where your videos live: a document of plain files that saves itself and never duplicates a shoot.

  • A workspace is one document

    A workspace is a .betteredits package: one document in Finder that opens in the app, plain files inside (Show Package Contents): workspace.json, a settings/ folder, projects/<Name>/ with three JSON files each, and a cache/. New Workspace… asks for a name, a place, what you make and where your footage lives; the welcome screen lists workspaces opened before.

  • Videos that save themselves⌘N

    New Video… asks a name, what the video is about, the canvas and how to start, creates the folder, and writes every change back within a third of a second. No dirty state, no recovery prompt, full undo and redo.

  • The files are the edit

    project.json holds the canvas, the brief and the media by name; timeline.json the tracks with one clip per line; styles.json the looks. Written for reading: keys in order, defaults left out, no ids anywhere.

  • The app is the only writer

    Nothing else writes the files. An agent asks for the video as one JSON document, edits it and commits it back as one undo step. The reader is strict: a mistake is refused with the file and the place, and nothing changes until it is fixed.

  • Media folders, used in place

    Files inside the workspace's media folders are used where they are. Anything else is copied once into the video's media/ folder and stored by relative path, so a video's folder moves as one piece.

  • Consolidate before dropping a folder

    Removing a media folder that videos still use warns first and offers to copy the files into each video's own media/ folder before the folder goes.

  • The workspace browser

    Open, rename, duplicate, trash and reveal videos from the workspace window; each card shows its size on disk. Close forgets the workspace and shows the empty state, deleting nothing.

  • Single .be files

    Save a Copy As… writes a video as one .be file, the three documents in one JSON object. Import Project File… copies a .be into the workspace.

Sources

The media sidebar: the video's own files, your footage libraries, and files that went missing.

  • This video and Libraries

    The left column shows the video's media/ copies and each library as a folder to enter, with subfolders and a breadcrumb back, as a grid of thumbnails at their own shape with their lengths.

  • Preview in the player

    Click a tile once and it plays in the main player, sized to its own picture, with its own play button, time and scrubber. The panel on the right shows where it lives, its length, size, frame rate and sound.

  • Drag, double-click, right-click

    Drag a tile onto the timeline, double-click it to add it to the active track at the playhead, or right-click for Add to Timeline, Open, Reveal in Finder and Export a Copy….

  • Drop files on This video⌘I

    Files dropped on This video, from Finder or a library, are copied into the video's media/ folder without touching the timeline. Import… at the foot brings in video, photos and sound from anywhere.

  • Show in Sources

    From a clip's right-click menu or the link under its name in the inspector: opens the source the clip's file lives in, nested folders included, scrolls to its tile and lights it up.

  • Missing files never block a video

    A file gone from disk becomes a red clip that plays and exports as a labelled plate. Relink… or Choose from Sources points it at another file and every clip follows; a file put back is picked up on its own.

  • Analysed footage

    A dot on every file says whether it is analysed. The queue shows what is running, what it costs and what is left, and pauses with one click. A file and its analysis move together when the app copies, consolidates or exports it.

Footage analysis

What gives the agent the words. Each file is read once and the result is saved next to it, so every cut after that starts from what was said.

  • Every word, timed

    The transcript of a file with a start and an end for every word, so a cut can begin at a sentence and captions land where the words do.

  • Speakers, silences, on-screen text, scenes, beats

    Who said what, every pause and false start as a number, the text the camera saw, where the picture changes, and where the music lands.

  • Once per file

    A file is analysed once and the result sits next to it. Every video cut from that file afterwards, this week or next year, costs nothing more.

  • It runs by itself

    You never type a command. On Pro the app analyses every file in your workspace as it arrives, this video's files first and then your libraries, newest first. A dot on each file shows where it stands, and one button pauses the queue.

  • A small copy goes up, once

    For a video the app uploads a low-resolution proxy with its sound; for audio, the file. The copy is deleted when the analysis is done. Editing never uploads anything.

  • It travels with the file

    Copy a file into a video, consolidate a media folder or export a copy, and its analysis comes along. The editor never shows what is inside it. The agent reads it.

  • Credits, in minutes of footage

    Video is 3 credits a minute of the file, audio 1, an image 1. Pro grants 450 a month, about 150 minutes of raw video, and they never expire.

Timeline and clips

One timeline where footage is dropped, trimmed, split, rearranged and stood in for.

  • Drop anything from Finder⌘I

    Drop video, photos or audio from Finder, or press ⌘I. Photos become 3 s clips you can stretch to 60 s.

  • Trim and splitS

    Drag either edge of a clip; the viewer shows the exact frame at that edge while you drag. S or ⌘B splits the selected clip, else the active track, at the playhead. ⌫ deletes the selection.

  • Rearrange by dragging

    Drag a clip along the track and its neighbours slide out of the way and snap into place. Drag it up or down to move it between tracks of the same kind.

  • Snap and nudgeN

    N toggles snapping to clip edges and the playhead. On a free track ⌥← and ⌥→ nudge a clip by a frame, ⌥⇧← and ⌥⇧→ by a second.

  • Copy, paste, duplicate⌘D

    ⌘C and ⌘V paste at the playhead on the active track. ⌘D puts a copy right after the original and selects it; it works for clips, placeholders, texts and subtitle bars.

  • Placeholders⇧⌘P

    ⇧⌘P drops a named stand-in clip at the playhead. On a video track it plays as a black plate with its name, in the viewer and in exports; on an audio track it is silent. Trim, move, split and copy it like any clip.

  • Replace and fill

    Replace with File…, the sidebar's Replace… button, or a file dropped on a placeholder takes the clip's spot and length. A shorter file asks whether to keep its own length or fill the rest with a placeholder.

  • Drag a clip onto a placeholder

    Drag a clip already on the timeline through the middle of a placeholder and let go: the clip takes the placeholder's spot and length, bringing its own in and out, level and placement.

  • Edit Range (slip)

    Edit Range… slides which part of a file a clip plays without moving it. The sheet shows the whole file as a strip with a window the clip's length to drag along it.

Tracks

Video, audio, text and subtitles rows, each with its own panel, lock, visibility and opacity.

  • Magnetic or free

    On a magnetic track clips stay packed: trims ripple, deletes close gaps, dragging a clip reorders it. On a free track a clip lands at the nearest spot that fits. Text tracks can be magnetic too.

  • The right panel

    Whatever you select has its settings on the right: a clip shows the clip inspector, a track header its properties (name, magnetic, visibility, mute, level, ducking, order, delete), a subtitles track its Track and Bars tabs.

  • Lock a track⌥⌘L

    A locked track refuses every edit: moves, trims, splits, deletes, drops, level and framing changes, and on a subtitles track the bars, style and position. Mute, solo and level still work.

  • Solo and hide

    The headphones button solos a track. The eye hides a video, subtitles or text track from the preview and the export; a hidden video track's sound still plays, and hidden tracks dim in the timeline.

  • Track opacity

    Video tracks have an opacity. Below 100% the tracks beneath show through; placeholders take their track's opacity. Headers show a quiet badge when level or opacity is not 100%.

  • The active track

    Click a header, or empty space in its row, to focus a track. S, ⌘V and Add Placeholder act there when nothing is selected. Drag the bar above the tracks to resize the area; it scrolls when tracks overflow.

Voiceover and music

Recording from the playhead, music that ducks, and sound that cuts separately from picture.

  • Record from the playhead⌘R

    ⌘R or the mic button records while the timeline plays, drawing the take live on a voiceover track. The transport shows a countdown, then the input device and a live level meter. Stop with Space.

  • Music on the bottom track⌘I

    Import a sound file with ⌘I, or drop one on an audio row. Drag to position, trim the edges, set the volume. A voiceover take is a clip like any other: trim, move, split, level.

  • Automatic ducking

    Music ducks under voiceovers automatically. Ducking is a per-track switch in the track panel.

  • Clip and track levels

    Hover a clip with sound to reveal its Final Cut style level line; drag it up or down (snaps at 100%, yellow otherwise). Clips not at 100% wear a speaker badge. Tracks have their own level from 0 to 150%.

  • Detach audio⇧⌘D

    ⇧⌘D copies a video clip's sound onto a new audio track and silences the video clip, so picture and sound cut separately: a J-cut is a trim away.

  • Export a clip's sound

    Exporting a selected audio clip saves its sound alone as an M4A. A hidden video track's sound still plays; mute the track or set the clip's level to zero to silence it.

Subtitles

Bars written from the transcript of your footage, fixed inline, styled with a live preview, burned in at export.

  • The agent writes them

    Ask Claude Code for captions and it fills a Subtitles track with bars from the words in each clip's footage, mapped to the timeline and cut by the rules in Settings. There is no Generate button in the app. The words come from the analysed footage.

  • Bars you can edit inline

    The Bars tab lists every bar for inline editing: click a time to seek, ⋯ or right-click to merge, split or delete. Clicking a bar in the timeline selects it and seeks; Esc drops the selection.

  • Bars are yours

    A bar is a start, an end and its text, linked to nothing else. Move, trim, split, merge and edit bars like any clip. They don't follow later cuts, so do captions last or ask the agent to write them again.

  • Position and style per track

    The Track tab has lock, visibility, style, position (Top / Middle / Bottom plus inset), and arrange and delete. The style menu previews each style in its own look.

  • Style editor with live preview

    Settings › Subtitle Styles edits caption styles with a live 9:16 preview: font, size, colours, background, outline, shadow, uppercase.

  • Bar rules

    Settings › Subtitles holds the rules the words are cut by: the most words in a bar, the longest a bar may last, and the pause that starts a new one. Change them and ask the agent to caption again.

  • Burned in at export

    The eye hides a subtitles track from the preview and the export. Visible bars are burned in with the same renderer the viewer uses, brighter than white in an HDR video so they read against the highlights.

Text

On-screen text with 17 Edits-style looks, edited in the sidebar and saved as favorites.

  • Text at the playhead⌘T

    ⌘T puts a text at the playhead on a Text track on top of the timeline, adding the track if there is none, and focuses its words in the sidebar. Double-click an existing text to type.

  • Move and resize on the canvas

    Click a text in the viewer to select it, drag it to move (snaps to the centre), drag a corner to resize so the whole look scales, double-click to edit its words.

  • Every text owns its look

    Edited in the sidebar: font, size in points, colour, uppercase and spacing, background box, shadow and outline, plus X / Y and Center.

  • 17 Edits-style fonts

    Classic, Modern, Strong, Neon, Typewriter, Meme, Elegant, Literature, Directional, Signature, Editor, Bubble, Deco, Poster, Squeeze, Journal and Rosalia: the closest Google Fonts, bundled with the app.

  • Fonts shown in their own typeface

    The Mac's fonts are there too, and the font menu lists every font rendered in its own typeface.

  • Favorites

    Saved looks, separate from subtitle styles. The Apply menu shows each favorite's name in that look; Save… stores the current one. Settings › Text Styles edits and reorders them; the default dresses new texts.

  • Text clips like any clip

    Texts trim, move, split, copy and delete like any clip and text tracks can be magnetic. The eye hides a text track from preview and export; exports burn texts in. Text never lengthens the video.

Structures and templates

Block out the video before you have the footage, fill it when you do, keep it for the next one.

  • Five built-in structures

    New Video… can start from a talking head, a tutorial, a b-roll montage, a before and after or a listicle: named slots with notes, the texts, and a voiceover or music slot.

  • Notes on slots

    A structure's slots carry notes on what to shoot or pick, editable in the sidebar. Any clip or track takes a note; the app keeps it and never renders it.

  • Templates are plain JSON

    A template describes a video without footage: video and audio segments with name, start, duration and notes; texts with words, timing, favorite, position and look.

  • Import a template

    Import Template… starts a video from one: segments become named placeholders in order and texts become text clips. Claude Code can lay out the same structure from a sentence, or copy the slots of one video into the next.

Canvas and export

Four canvases, on-canvas framing, and an export sheet that follows the footage.

  • Four canvases

    9:16 by default. The pill in the viewer's top-right corner opens into 9:16, 16:9, 1:1 and 4:5 with miniatures and asks before changing.

  • Nothing moves when you switch

    Positions and scales are normalized, so switching the canvas keeps clips, text and captions where they were. Exports follow the canvas, grown to the footage's size.

  • Move, scale, crop on the canvas

    Drag the selected video clip in the viewer to move it, pinch or scroll to scale, drag the corner handles, or use Crop mode's edge handles.

  • Reels guides

    The Guides menu on the viewer shades the Reels UI and the feed and grid crop zones, so text and captions land where the app will not cover them.

  • The export sheet⌘E

    ⌘E opens options like the Edits share sheet: HD / 2K / 4K, 24 / 30 / 60 fps, Normal / HDR. HDR is offered only when the footage is HDR; Normal tone-maps to Rec. 709. Defaults follow the footage.

  • HDR stays HDR

    iPhone HLG footage stays HDR through the preview and the HEVC 10-bit export; otherwise exports are H.264/AAC MP4. The preview renders at 1080p; the export at the footage's size, up to 4K.

  • What you see ships

    Exports burn the visible subtitles and texts in with the same renderer the viewer uses. Hidden tracks are left out. Files land in your Movies folder, or wherever you last exported, and the first export in a workspace says where.

  • Export one clip⇧⌘E

    ⇧⌘E or the button in the clip sidebar exports just the selected clip: a video clip renders its stretch of the timeline with everything on it.

Agents

One click adds the app to Claude Code, the Claude app or Codex. The agent then edits the video for you, one undo step at a time. Part of Pro.

  • Connected once

    Connect an Agent, in Help or behind the toolbar's Agent button, adds BetterEdits to Claude Code, the Claude app or Codex as an MCP server with one Install button each. Any other MCP client takes the command shown in Settings › Agent integration. A guide travels with the server and tells the agent how videos are made here, what every tool does, and how tracks, clips, text and captions behave. Nothing is written into your folders.

  • The video is a document

    The agent asks the app for the open video as one JSON document, edits it, and hands it back. The app checks every line and takes it as one undo step, or refuses it with the place and changes nothing.

  • Every change is one undo step

    Whatever the agent does lands in the app exactly like a change you made by hand. You see it in the timeline as it happens, and ⌘Z takes it back.

  • The agent can look

    It can't watch video, so it reads the analysis next to the footage and renders itself a frame or a contact sheet: a grid of labelled frames with the text and captions drawn on.

  • Nothing slips past you

    A commit made on a stale copy of the video, after you changed something by hand, is refused; the agent fetches the document again and redoes its edit on yours.

  • One sign-in, kept by the app

    The agent brings its own model. The app holds only your BetterEdits sign-in, made once from the account badge. It lives in the app's own settings, never in a workspace, and the dashboard can sign a Mac out.

  • Naming things helps both of you

    The agent can move the playhead and select a clip to show you what it means. It sees the names you give tracks and placeholders, so naming things helps you both follow along.

  • Any agent that speaks MCP

    Claude Code is what we build for and test with. The Claude app and Codex have their own Install buttons in Connect an Agent. Cursor and any other agent that speaks MCP take the same server command from Settings › Agent integration.

Keyboard shortcuts

Every key the editor listens to, so your hands stay on the keys.

  • TransportSpace

    Space plays and pauses. ← and → step a frame, ⇧← and ⇧→ a second, Home and End jump to the start and end. Click or drag in the ruler or empty track space to scrub.

  • Editing

    S or ⌘B split, ⌫ deletes, ⌘C / ⌘V / ⌘D copy, paste and duplicate, ⌥← ⌥→ nudge, N toggles snapping, ⌥⌘L locks the active track, ⌘Z / ⇧⌘Z undo and redo.

  • Sound and words

    ⌘R records a voiceover, ⌘I imports media and music, ⌘T adds text, ⇧⌘D detaches audio, ⇧⌘P adds a placeholder.

  • Viewer zoom⌥⌘0

    Pinch or ⌘-scroll to zoom, ⌥⌘= and ⌥⌘- step it, ⌥⌘0 or the Fit pill resets. Two-finger scroll pans.

  • Timeline zoom⇧Z

    Pinch, ⌘-scroll or ⌘= / ⌘- zoom the timeline; ⇧Z fits the whole piece. Two-finger scroll pans it.

  • Videos and windows

    ⌘N new video, ⌘O open, ⌘W close the video, ⌘E export, ⇧⌘E export the selected clip, ⌘, settings. Esc deselects the clip, then closes the track panel.

Free to edit. Pro for agents

The editor costs nothing. Pro is $29 a month, or $23 a month billed yearly, after a 7-day free trial. It includes 450 credits a month, enough to analyse about 150 minutes of raw footage.

BetterEdits app icon
BetterEdits for Mac
Version 0.8.0 · 15 MB · macOS 15 or later, Apple silicon
Free to edit, no account. Agents need Pro, which starts with a 7-day free trial.