Claude Code plugin · open source · free on every plan

Edit videos on your phone
from Claude Code.

One plugin, one paste. Claude Code talks to the ExpoCut app on your phone over your own Wi‑Fi — 260+ tools and 17 editing skills, no cloud, every edit undoable on the timeline.

Once · terminalInstall the pluginTwo commands on your computer
On the phoneSwitch the server onSettings → AI Agent (MCP Server)
Once · Claude CodePaste the pairing line/expocut:connect <url> <token>
ThenJust ask"Make a 15-second reel from my last project"
STEP 1 · ONE TIME · TERMINAL

Install the plugin

Two commands on the computer that runs Claude Code. Node.js 18 or newer must be installed; if you have Claude Code, you almost certainly do.

You typeclaude plugin marketplace add expocut/claude-pluginclaude plugin install expocut

Nothing else to configure. Until a phone is paired the plugin shows a single tool, expocut_connection, that explains the next steps to Claude, so there is never a red "failed" server at startup.

zsh
$ claude plugin marketplace add expocut/claude-plugin $ claude plugin install expocut $ claude ─ ExpoCut plugin loaded: /expocut:connect · /expocut:status · /expocut:disconnect ─
The last line summarises what you get; it is not literal CLI output.
STEP 2 · ON THE PHONE

Switch the server on in ExpoCut

ExpoCut → Settings → AI Agent (MCP Server)Enable. On iPhone and iPad, iOS asks for Local Network access the first time. Tap Allow; without it the server runs but nobody can reach it, and the screen warns you with an "Open Settings" button.

You tapEnable → Allow

The status line becomes the phone's address, for example Running on 192.168.1.23:7333. The server only listens while ExpoCut is in the foreground and only accepts devices on your private network.

Rendered from the app's settings screen and its real Local Network prompt. Address and token are examples.
STEP 3 · ON THE PHONE

Copy the Claude Code plugin line

With the server running, the card shows a row of agent tabs. The Claude Code plugin tab holds one ready-made command with the address and token already filled in. Tap Copy.

You tapClaude Code plugin → Copy

The other tabs are for Codex, Cursor, VS Code, Windsurf and Zed. Click the tabs in the screen to see what each one shows.

The highlighted block is the new tab in the agent list; everything else is the existing screen.
STEP 4 · ONCE · IN CLAUDE CODE

Paste it into Claude Code

Paste the copied line as a message. It is a slash command, so Claude Code runs the plugin's connect step before Claude even reads it: a real MCP handshake with the phone, the pairing saved to ~/.expocut/claude-mcp.json, and a reply.

You paste/expocut:connect http://192.168.1.23:7333/mcp fd971edc9f4dd9a8fefed9b9

No restart. The plugin tells Claude Code its tool list changed, and the ExpoCut tools appear in the same session. Pasting the whole claude mcp add … line or the console link also works.

Claude Code
> /expocut:connect http://192.168.1.23:7333/mcp fd971edc9f4dd9a8fefed9b9 Connected to ExpoCut 5.6.1 at http://192.168.1.23:7333/mcp with 262 tools available. The ExpoCut tools are ready to use in this session. If they don't appear within a few seconds, run /mcp and reconnect "expocut".
> Try "list my ExpoCut projects"
Reply as produced by the plugin during its end-to-end test.
STEP 5 · EVERY DAY

Just ask

From here you talk about videos, not servers. Claude calls ExpoCut's tools over the Wi‑Fi; each call runs live in the app on your phone and is undoable there. The bundled skills teach Claude the conventions and the creative workflows: reels, motion graphics, colour, captions, audio post.

You typelist my ExpoCut projects and open the newest one

The phone follows along: opening a project navigates the app into the editor, and Claude can capture a frame to look at before it exports.

Claude Code
> list my ExpoCut projects and open the newest one expocut - list_projects (MCP)() ⎿ {"projects":[{"id":"p_8c1","name":"Summer Reel","aspectRatio":"9:16","durationMs":15000}, …]} expocut - open_project (MCP)(projectId: "p_8c1") ⎿ Opened "Summer Reel" in the editor You have 3 projects. I opened Summer Reel (9:16, 15 s); ExpoCut is now showing it in the editor on your phone. What should we change first?
>
Tool names are real; the project data is an example.
When something is off

Plain words, not a broken server.

These are the three things that actually go wrong on a local network. The plugin explains each one instead of failing silently.

phone asleep

The phone locked or ExpoCut went to the background. The tools stay listed; a call returns this text, which Claude relays.

ExpoCut is not answering at http://192.168.1.23:7333/mcp. Checklist for the user: 1. Open ExpoCut → Settings → AI Agent (MCP Server); make sure it is enabled. 2. Keep the phone awake with ExpoCut in the foreground. 3. Phone and computer must be on the same Wi-Fi. This computer is on 192.168.1.8. 4. On iPhone/iPad, allow Local Network access. 5. If the address changed, run /expocut:connect <url> <token>.

You do: wake the phone with ExpoCut open, then say "try again" or run /expocut:status.

token rotated

Someone tapped Rotate in ExpoCut. The phone answers 401 and the plugin says so.

ExpoCut at http://192.168.1.23:7333/mcp rejected the token (HTTP 401). The token may have been rotated: copy the current one from ExpoCut → Settings → AI Agent (MCP Server) and run /expocut:connect <url> <token> again.

You do: copy the new line from the phone and paste /expocut:connect … once more.

address changed

The phone got a new DHCP lease, or you moved from home to office Wi‑Fi. The plugin notices the old address is dead, scans the same subnet, and saves the new one.

[expocut-bridge] cannot reach http://192.168.1.23:7333/mcp (EHOSTUNREACH); looking for ExpoCut on the local network… [expocut-bridge] found ExpoCut at http://192.168.1.41:7333/mcp

You do: nothing. That is the plugin's own log; the tool call simply succeeds. The token is only sent to a host that first answers with ExpoCut's own 401 signature.

Commands

/expocut:connect <url> <token>Verify and save the pairing. Accepts the pasted snippet or console link too.
/expocut:statusSaved address, whether the phone answers, tool count.
/expocut:disconnectForget the pairing on this computer.

Where things live

~/.expocut/claude-mcp.jsonAddress and token, written by connect, readable only by you.
~/.expocut/claude-mcp-tools.jsonLast tool list, used while the phone is unreachable.
EXPOCUT_MCP_URL / _TOKENEnvironment override for CI or several phones.
EXPOCUT_AUTO_DISCOVER=0Turn the subnet scan off.
FAQ
Do I need a paid plan?
No. The MCP server is free on every ExpoCut plan, and the plugin is open source (MIT).
Does anything go through the cloud?
No. Claude Code talks to the app on your phone over your own Wi‑Fi. The server only accepts private-network peers, and every edit is recorded in the app's history so you can undo it.
What happens when my phone gets a new IP address?
The plugin notices the saved address stopped answering, looks for ExpoCut on the same subnet on port 7333, and saves the new address. You do nothing. The token is only sent to a host that first identifies itself as ExpoCut.
Can I use it without Node.js?
Yes. Register the phone directly: claude mcp add --transport http expocut http://<phone-ip>:7333/mcp --header "Authorization: Bearer <token>". You lose automatic rediscovery when the address changes, so re-run it after a new lease.
Which tools and skills come with it?
All 262 tools of the MCP surface (the plugin proxies whatever your app version exposes) and the 17 ExpoCut skills, each with the exact tool signatures generated from the app.

Pair it once. Edit by asking.

Open source, free on every plan, nothing leaves your Wi‑Fi.

Install → GitHub