Native macOS video editor that coding agents can drive: everything the UI does, Claude Code and Codex can do through the bashcut CLI or MCP server. Layered timeline, captions, voiceover, plugins.
See the code
A native macOS video editor that coding agents can drive.
Everything the UI does, Claude Code and Codex can do through the bashcut CLI or MCP.
Download · TestFlight beta · Docs · Automation · Plugins · Agent kit · Issues
BashCut is a native macOS video editor built on AVFoundation, with a Claude Code / Codex terminal docked beside the timeline. Preview and export share one composition engine, so what you see is what you export. Projects are plain JSON next to your footage: agents and scripts read and edit them through the same atomic, undoable edit operations the UI uses.
BashCut is under active development: the M0 foundation is accepted on real footage and most of the editor and agent features (M1–M3, M5) are in place. See implementation status for what is verified and what is left.
No extra AI bill: BashCut works with the subscriptions and apps you already have.
| You have | How BashCut uses it |
|---|---|
| Claude subscription (Pro / Max) | The Claude tab in the agent dock runs the real Claude Code CLI with your login. BashCut never passes ANTHROPIC_API_KEY, so your plan is used, not API credits |
| ChatGPT subscription (Plus / Pro) | The Codex tab runs the real Codex CLI with your ChatGPT login |
| Claude Desktop / Codex app | Point them at BashCut: bashcut agent setup claude or bashcut agent setup codex installs the editing skills and the bashcut MCP server, so they edit the open project from outside the app |
| Any other model (Gemini, GPT, Grok, Mistral, Groq, OpenRouter, a local or OpenAI-compatible server) | Install the AI Editor plugin: a chat agent inside BashCut with your own API key, with thinking levels (off / low / medium / high) for reasoning models |
Whichever you pick, the agent edits through the same undoable commands as the UI: every change lands in History, shows in Show Changes and can be undone. See Automation.
bashcut CLI and MCP server: every UI action and dialog, with dry runs and revision checksRequires macOS 14 or later.
brew install --cask dongnguyenvie/tap/bashcut
This installs BashCut.app into /Applications and links the bashcut CLI and bashcut-mcp server into
Homebrew's bin, so agents in any terminal can drive the app. Update with brew upgrade --cask bashcut; remove
with brew uninstall --cask bashcut (add --zap to also delete settings and caches).
Download BashCut-<version>.dmg (or .zip) from the latest release,
open it and drag BashCut to Applications. Builds are signed with Developer ID and notarized by Apple; check a download
against the release's SHA256SUMS with shasum -a 256 -c --ignore-missing SHA256SUMS. To use the CLI from a terminal, link it yourself:
sudo ln -s /Applications/BashCut.app/Contents/MacOS/bashcut /usr/local/bin/bashcut
sudo ln -s /Applications/BashCut.app/Contents/MacOS/bashcut-mcp /usr/local/bin/bashcut-mcp
Join the public beta on TestFlight (needs the TestFlight app). The TestFlight build is the sandboxed Mac App Store build: it runs only the plugins bundled with the app, and its bundled CLI cannot run from a regular terminal.
Or build BashCut from source, below.
Requires macOS 14+, Xcode with Swift 6, and network access for the first package resolution.
scripts/run.sh
This builds with SwiftPM, packages build/BashCut.app, signs it with the first Apple Development identity in
your keychain (or BASHCUT_SIGN_IDENTITY) so macOS keeps folder-access grants across rebuilds, and opens it. The
app executable is BashCutApp and the bundled CLI is bashcut, avoiding a name collision on case-insensitive
disks.
To try a change against every timeline case, generate the sample project shown
above (needs ffmpeg):
scripts/sample-project.py
For Xcode, install XcodeGen >= 2.46, then run scripts/generate-project.sh and open BashCut.xcodeproj
(generated from project.yml). Xcode builds the string catalog; the SwiftPM launcher copies equivalent .strings
resources. The UI follows the system language.
scripts/verify.sh build
scripts/verify.sh test
scripts/verify.sh perf # 20 synthetic clips, ~30 seconds, 1080×1920
scripts/verify.sh lint # requires SwiftLint
scripts/verify.sh xcode test # regenerates and tests the Xcode project (requires XcodeGen)
Pure model tests also run on their own with cd Packages/BashCutCore && swift test. Tests never use the real
video workspace or agent CLIs, and package downloads happen at dependency resolution, not in tests.
Two other repositories are part of BashCut. Contributions are welcome in each:
| Repository | What it holds | Contribute there |
|---|---|---|
| bashcut-plugins | The plugin registry (registry.json) and its plugins, such as Silence Markers and VieNeu TTS | New plugins and fixes to existing ones. See Writing plugins |
| bashcut-agent-kit | Editing skills for Claude Code and Codex (footage survey, beat cuts, audio mix, captions, colour, effects, voiceover…). BashCut ships them and loads them in its agent tabs | Editing know-how that agents should follow. See its README › Writing skills |
Changes to the editor itself, its commands and the plugin API belong in this repository.
MIT. See LICENSE.
Native macOS video editor that coding agents can drive: everything the UI does, Claude Code and Codex can do through the bashcut CLI or MCP server. Layered timeline, captions, voiceover, plugins.
See the code
A native macOS video editor that coding agents can drive.
Everything the UI does, Claude Code and Codex can do through the bashcut CLI or MCP.
Download · TestFlight beta · Docs · Automation · Plugins · Agent kit · Issues
BashCut is a native macOS video editor built on AVFoundation, with a Claude Code / Codex terminal docked beside the timeline. Preview and export share one composition engine, so what you see is what you export. Projects are plain JSON next to your footage: agents and scripts read and edit them through the same atomic, undoable edit operations the UI uses.
BashCut is under active development: the M0 foundation is accepted on real footage and most of the editor and agent features (M1–M3, M5) are in place. See implementation status for what is verified and what is left.
No extra AI bill: BashCut works with the subscriptions and apps you already have.
| You have | How BashCut uses it |
|---|---|
| Claude subscription (Pro / Max) | The Claude tab in the agent dock runs the real Claude Code CLI with your login. BashCut never passes ANTHROPIC_API_KEY, so your plan is used, not API credits |
| ChatGPT subscription (Plus / Pro) | The Codex tab runs the real Codex CLI with your ChatGPT login |
| Claude Desktop / Codex app | Point them at BashCut: bashcut agent setup claude or bashcut agent setup codex installs the editing skills and the bashcut MCP server, so they edit the open project from outside the app |
| Any other model (Gemini, GPT, Grok, Mistral, Groq, OpenRouter, a local or OpenAI-compatible server) | Install the AI Editor plugin: a chat agent inside BashCut with your own API key, with thinking levels (off / low / medium / high) for reasoning models |
Whichever you pick, the agent edits through the same undoable commands as the UI: every change lands in History, shows in Show Changes and can be undone. See Automation.
bashcut CLI and MCP server: every UI action and dialog, with dry runs and revision checksRequires macOS 14 or later.
brew install --cask dongnguyenvie/tap/bashcut
This installs BashCut.app into /Applications and links the bashcut CLI and bashcut-mcp server into
Homebrew's bin, so agents in any terminal can drive the app. Update with brew upgrade --cask bashcut; remove
with brew uninstall --cask bashcut (add --zap to also delete settings and caches).
Download BashCut-<version>.dmg (or .zip) from the latest release,
open it and drag BashCut to Applications. Builds are signed with Developer ID and notarized by Apple; check a download
against the release's SHA256SUMS with shasum -a 256 -c --ignore-missing SHA256SUMS. To use the CLI from a terminal, link it yourself:
sudo ln -s /Applications/BashCut.app/Contents/MacOS/bashcut /usr/local/bin/bashcut
sudo ln -s /Applications/BashCut.app/Contents/MacOS/bashcut-mcp /usr/local/bin/bashcut-mcp
Join the public beta on TestFlight (needs the TestFlight app). The TestFlight build is the sandboxed Mac App Store build: it runs only the plugins bundled with the app, and its bundled CLI cannot run from a regular terminal.
Or build BashCut from source, below.
Requires macOS 14+, Xcode with Swift 6, and network access for the first package resolution.
scripts/run.sh
This builds with SwiftPM, packages build/BashCut.app, signs it with the first Apple Development identity in
your keychain (or BASHCUT_SIGN_IDENTITY) so macOS keeps folder-access grants across rebuilds, and opens it. The
app executable is BashCutApp and the bundled CLI is bashcut, avoiding a name collision on case-insensitive
disks.
To try a change against every timeline case, generate the sample project shown
above (needs ffmpeg):
scripts/sample-project.py
For Xcode, install XcodeGen >= 2.46, then run scripts/generate-project.sh and open BashCut.xcodeproj
(generated from project.yml). Xcode builds the string catalog; the SwiftPM launcher copies equivalent .strings
resources. The UI follows the system language.
scripts/verify.sh build
scripts/verify.sh test
scripts/verify.sh perf # 20 synthetic clips, ~30 seconds, 1080×1920
scripts/verify.sh lint # requires SwiftLint
scripts/verify.sh xcode test # regenerates and tests the Xcode project (requires XcodeGen)
Pure model tests also run on their own with cd Packages/BashCutCore && swift test. Tests never use the real
video workspace or agent CLIs, and package downloads happen at dependency resolution, not in tests.
Two other repositories are part of BashCut. Contributions are welcome in each:
| Repository | What it holds | Contribute there |
|---|---|---|
| bashcut-plugins | The plugin registry (registry.json) and its plugins, such as Silence Markers and VieNeu TTS | New plugins and fixes to existing ones. See Writing plugins |
| bashcut-agent-kit | Editing skills for Claude Code and Codex (footage survey, beat cuts, audio mix, captions, colour, effects, voiceover…). BashCut ships them and loads them in its agent tabs | Editing know-how that agents should follow. See its README › Writing skills |
Changes to the editor itself, its commands and the plugin API belong in this repository.
MIT. See LICENSE.