oh-my-cassette
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@oh-my-cassetteTurn my raw clips into a beat-synced montage with music and subtitles."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⚡ Install in 30 seconds
# Claude Code
claude plugin marketplace add Cassette-Editor/oh-my-cassette
claude plugin install oh-my-cassette@cassette-editor# Codex
codex plugin marketplace add https://github.com/Cassette-Editor/oh-my-cassette.git
codex plugin add oh-my-cassette@cassette-editorRestart your agent, then say: "Edit the clips in ./footage into a 30-second travel vlog with beat-synced cuts."
Want to try the workflow before installing? Open the public web demo.
Needs Python 3.11–3.13, ffmpeg, and a Cassette account. Full setup — including OpenCode, Hermes, and any other MCP host — is in Quick Start.
🎥 Overview
Oh My Cassette is an open-source AI video editing plugin and local MCP server for Claude Code, Codex, Hermes Agent, and OpenCode. It turns natural-language chat into finished montage videos on Cassette — beat-synced cuts, auto-matched music, subtitles, transitions, and picture-in-picture — with minimal token overhead.
The agent does the parts that make editing tedious: it watches every clip, picks the shots, plans the cut, syncs it to the beat, and renders — while you stay in chat. Because it runs through your agent, you can do all of it from your phone.
Related MCP server: levea-mcp-server
🖥️ How it works
Upload your clips, describe the video you want, and the agent edits it.
Time | What happens |
0:09 | The brief — one line, style left entirely to the agent, typed into Claude Code |
0:22 | 15 files upload to Cassette; every clip is analyzed for scene content |
0:35 | The agent edits on its own — shot selection, title card, lower-third, grading, beat-synced cuts |
0:58 | The timeline comes back as a readable digest, with a clickable contact-sheet link |
1:03 | One |
1:12 | The contact sheet itself: what the cut looks like before a single frame is rendered |
1:44 | The export lands, and the runtime measures it — duration, black frames, audio levels |
1:52 | The finished cut |
The cut it produced
The screen recording is compressed to keep this page light, so the terminal text looks softer here than it does on your machine; the cut below it is the full-quality render. Prompt to rendered file took 9 minutes 53 seconds of real time, sped up above. A person's face is pixelated in both the screen recording and the cut it produced, for privacy — that blur is not something the agent added.
Token cost: that session used 55K output tokens and 2.33M billed input tokens (2.07M of them cache reads) on Claude Opus 5 — roughly $4 at API list price, measured from the Claude Code transcript of this exact recording. One brief, one turn, start to exported file. The editing itself runs on Cassette, so the agent only pays for the brief and the timeline digests, not for the footage.
🎬 Case Videos
Every case below was edited end-to-end by an AI agent through Oh My Cassette, from the exact prompt shown — real inputs, real processing times, and the output is what the agent delivered.
🚀 Quick Start
Before You Start 🎬
Oh My Cassette connects Codex, Claude, or Hermes to the Cassette Agent. You need:
Codex, Claude Code, or a working Hermes Agent installation.
A Cassette account.
For Hermes only, a configured gateway such as QQ or Telegram.
Apply for a Cassette account here: Cassette Sign Up
If you plan to use Hermes and it is not installed yet:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bashIf the Hermes Agent gateway is not configured yet:
hermes gateway setupOh My Cassette currently supports QQ and Telegram gateways.
Requirements
macOS, Linux, or Windows for the local MCP plugin (Codex, Claude Code, or OpenCode). The Hermes Agent gateway path is macOS/Linux only.
Codex, Claude Code, or OpenCode for the local MCP plugin, or Hermes Agent with its gateway configured.
Python 3.11–3.13.
ffmpeg, required for Hermes gateway normalization and optional API export thumbnails.
Supported video uploads
Cassette currently accepts video source files that match all of the following limits:
Limit | Accepted input |
Container | MP4 only |
Video | H.264/AVC, 8-bit |
Audio | AAC mono, AAC stereo, or no audio track |
Frame rate | Constant 29.97 or 30 fps |
Landscape resolution | Up to |
Portrait resolution | Up to |
File size | Up to 2 GiB ( |
Duration | Up to 60 minutes per video |
MOV, HEVC/H.265, AV1, VP9, ProRes, HDR, 10-bit, variable-frame-rate video, 24/25/50/60 fps, 4K, oversized files, and videos longer than 60 minutes are rejected rather than transcoded in the cloud.
Upload retention
Uploaded videos and plugin-managed previews, job state, and exports share one immutable 24-hour deadline measured from the session's first ingest. After that deadline the plugin removes its local copies and the service removes its media; another session — even on the same host or the same account — cannot reach them. Keep your own copy of every source file, and move any export you want to retain outside the plugin-managed data directory before the deadline.
Install system tools:
# macOS
brew install uv ffmpeg# Debian/Ubuntu Linux
sudo apt-get update
sudo apt-get install -y ffmpeg
curl -LsSf https://astral.sh/uv/install.sh | sh# Windows (PowerShell)
winget install Python.Python.3.13
winget install Gyan.FFmpegInstall
Codex
codex plugin marketplace add https://github.com/Cassette-Editor/oh-my-cassette.git
codex plugin add oh-my-cassette@cassette-editorStart a new Codex task after installation so plugin discovery runs again. The plugin contributes the host-neutral cassette-video-edit and cassette-model skills plus a local MCP process named cassette. Fresh editing sessions use GPT-5.6 Luna with Extra High thinking; invoke $cassette-model only when you want to inspect or change that session setting.
Claude Code
claude plugin marketplace add Cassette-Editor/oh-my-cassette
claude plugin install oh-my-cassette@cassette-editorRestart Claude Code after installation. You can verify the installation with:
claude plugin details oh-my-cassette@cassette-editorClaude Code can keep the plugin up to date on its own once you enable auto-update for the marketplace — see Update.
Fresh editing sessions use GPT-5.6 Luna with Extra High thinking. Invoke /cassette-model when you want to inspect or change the current session's model and thinking level.
OpenCode
OpenCode's plugin manager installs npm packages only, and its plugins cannot contribute MCP servers, so there is no marketplace entry to add. One command instead:
curl -fsSL https://raw.githubusercontent.com/Cassette-Editor/oh-my-cassette/release/scripts/install_opencode.py | python3 -That downloads the current release, writes the cassette server into ~/.config/opencode/opencode.json (merging with any servers and settings already there), installs the host-neutral skills into ~/.config/opencode/skills/, and installs /cassette-model into ~/.config/opencode/commands/. Restart OpenCode afterwards. Fresh editing sessions use GPT-5.6 Luna with Extra High thinking; the command changes the setting only when you invoke it.
Re-run the same command to update. Only git is not required — the release tarball is fetched with Python's standard library.
Cassette credentials are shared across Codex, Claude Code, OpenCode, and Hermes, so if you have already set up another host there is nothing more to do. Otherwise the installer prints the setup_local_mcp.py command to finish authentication. Jamendo uses the host-specific BYOK setup described below.
The plugin tree lands in ~/.oh-my-cassette (override with OMC_HOME). --dry-run previews the changes. If you prefer a git checkout, clone it and run the installer from there — it registers that tree and leaves it alone, and --sync fast-forwards it to the release channel.
Any other MCP host
The runtime is host-neutral, so any client that launches a local stdio MCP server can use it. Point the client at scripts/run_local_mcp.py (run with python3, or python on Windows) and set CASSETTE_RUNTIME_ADAPTER=mcp. The server ships full workflow guidance in its MCP instructions, and every tool returns a typed phase/next_action so a host without the packaged skill can still drive the flow. For the best experience, also install the cassette-video-edit and cassette-model skills (or equivalent system prompts). Generic clients can call cassette_config or ask in natural language to change the current session's model.
Letting an AI assistant do the install for you — Cline, or any agent with shell access? Point it at llms-install.md: a machine-readable setup guide covering the runtime pre-build, host registration, authentication, media roots, and verification.
Hermes
Install through the Hermes plugin manager (recommended):
hermes plugins install Cassette-Editor/oh-my-cassetteThe Hermes installer prompts for your Cassette account email and password and saves them to ~/.hermes/.env. Then run the setup finisher — it configures the same stdio MCP server and canonical editing skill used by the other hosts, sets Hermes's tool tim
This server cannot be deployed
Maintenance
Related MCP Connectors
Edit video by talking to your AI — search footage, cut timelines, apply effects, add captions.
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
A video editor in your browser that your AI drives: cuts, captions, multicam, motion titles, export.
Create and edit AI videos from chat: plan shots, generate scenes, and export stories and ads.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to edit videos through natural language, providing tools for timeline editing, audio management, rendering, and more.2MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to turn natural-language creative direction, transcripts, and source media into fully structured, editable video projects, then verify and render delivery files.2MIT
- AlicenseNot gradedqualityBmaintenanceAI-native timeline editor for short-form video. Your agent cuts, captions, adds motion graphics and renders against a real, editable timeline over MCP — not a render queue. Human-in-the-loop by design: it calls request_review and waits while you supervise in a browser. Local-first and AGPL; your footage never leaves your machine.1AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to generate cinematic video and image assets and perform autonomous timeline assembly, multi-track audio editing, chroma-key compositing, and local draft manipulation from conversational prompts.2MIT