NeoMotion documentation
Enough to install NeoMotion, connect the agent you already pay for, and get an editable timeline out the other end — with no API keys at all, if you want it that way. It is a first pass; the last section lists what is still missing rather than pretending it is covered.
Start here
NeoMotion is a desktop motion-graphics editor with an AI agent attached. The agent does the production — research, script, assets, composition — and hands you a real timeline instead of a finished file. Everything runs on your machine.
The shortest path from nothing to a rendered video:
- Create an account and download the app for macOS or Windows.
- Sign in from the app to start your free 14-day Studio trial.
- Connect the AI you already pay for — Claude, ChatGPT, Cursor — over MCP. No API key needed.
- Brief the agent, approve the storyboard, edit what it built, export.
Install & first launch
Builds for macOS and Windows are published on the download page once you are signed in, and every release is listed on the changelog.
macOS
The app is code-signed with a Developer ID certificate and notarized by Apple, so it opens like any other Mac app. Drag NeoMotion.app into Applications and launch it.
Windows
The Windows installer is not signed yet, so SmartScreen interrupts the first launch with “Windows protected your PC”. Click More info → Run anyway. First install only — the certificate is paid for out of the founding cohort.
Starting the trial
In the app: Settings → License → Sign in with browser. Approving in the browser starts your 14-day Studio trial on that machine — the clock starts on approval, not on signup, so installing early costs you nothing.
Connect your agent
NeoMotion's whole production surface is exposed over MCP — about a hundred verbs, grouped the way a production runs. Point an agent at it and it drives the app: creates the project, imports the footage, casts presets, keyframes the timeline, hits export. It runs on the AI subscription you already pay for, so there is no API key and no per-render meter in this path.
Turn the surface on first: Settings → Local agent server (BYO). The default port is 4399, but it hops to 4400, 4401 and so on if something else holds the port — the settings panel always shows the live URL and token.
| Client | On your machine | Over the internet |
|---|---|---|
| Claude Desktop | Yes — one-click extension | Yes |
| Claude Code / Cursor / Codex | Yes | Yes |
| Kimi Code CLI | Yes | Yes |
| claude.ai (web) | No | Yes — custom connector |
| ChatGPT (web and desktop) | No | Yes — developer-mode connector |
| kimi.com (web chat) | No | No — client has no MCP support |
| Anything that can run a shell command | Yes — the neomotion CLI | n/a — it runs on your machine |
Claude Desktop — the one-click route
Settings → Local agent server → Download Desktop Extension (.mcpb), then double-click the file. No JSON editing. The extension is served from the app itself, so it works offline.
Claude Code, Kimi Code and other CLI agents
claude mcp add --transport http neomotion \
http://127.0.0.1:4399/mcp \
--header "Authorization: Bearer <token>"Kimi Code CLI takes the same command with kimi in place of claude. For Cursor, drop the block below into .cursor/mcp.json. Codex speaks stdio rather than HTTP — use the shim path shown in Settings in ~/.codex/config.toml; it re-reads the session file on every launch, so it survives port hops and token rotation without a config edit.
{
"mcpServers": {
"neomotion": {
"type": "http",
"url": "http://127.0.0.1:4399/mcp",
"headers": {
"Authorization": "Bearer <token from Settings → Local agent server>"
}
}
}
}Agents that don't speak MCP — the command line
Not every agent supports MCP, and some never will. So every verb is also a shell command. The neomotion CLI ships with the app and is a client of the same server you just switched on — same verbs, same token, same permissions. Nothing new to configure, and nothing extra to trust.
neomotion # every verb, with one-line summaries
neomotion list_projects --help # that verb's flags
neomotion list_projects --limit 3 | jqTwo properties make it usable by an agent that has never seen it. --help is generated from the live server, not from a copy of the docs, so it cannot describe a verb that no longer exists or miss one that was just added. And results are JSON on stdout with everything else on stderr — so it pipes into jq, into a script, into a CI job.
Find the path in Settings → Local agent server → Connect your agent. A packaged install has no npm step, so the panel hands you the absolute path rather than assuming neomotion is on your PATH. Running it alongside a connected agent is safe — each call is its own session.
claude.ai and ChatGPT — over the internet
Web chats cannot reach a server on your own machine: their connectors run on the vendor's infrastructure, so 127.0.0.1 means their localhost, not yours. This is structural — it applies to the ChatGPT desktop app too. Reaching them needs a public path back to your desktop, and NeoMotion ships two.
- NeoMotion Cloud Link — the straightforward one. Settings → NeoMotion Cloud Link → On gives you a stable URL at mcp.neomotion.net. Add it as a connector in claude.ai or ChatGPT and it asks you to sign in to your neomotion.net account and approve the connection — no token to copy, no URL that changes. Included on every Studio plan, trial included.
- Remote access — the power-user one. Settings → Local agent server → Enable remote access opens a Cloudflare tunnel and shows a public URL; paste it plus your Bearer token as a custom connector. Nothing to sign in to, but the URL changes each time.
Teaching ChatGPT what NeoMotion can do
Connecting is only half of it. NeoMotion ships agent skills — the written playbook for how to direct it — and they install themselves into ~/.claude/skills, which Claude reads and nothing else does. A ChatGPT session sees a list of verbs and no instructions for using them well, which is why it tends to reach for the fastest template rather than designing each scene.
ChatGPT's Skills feature closes that gap, and NeoMotion ships the file for it: Settings → Local agent server → Download SKILL.md — the ChatGPT counterpart of the one-click extension Claude Desktop gets, served by the app itself so it always matches the build you are running. Then in ChatGPT, Plugins → Skills → upload. Once, not per conversation. Haven't installed yet? The same file is here. Step-by-step on the ChatGPT setup page.
What the skill actually changes:
- It authors bespoke scenes for your script instead of arranging presets — the flagship path, and the one an un-briefed agent skips because it is more work.
- It sources real imagery and composes it into the design, rather than shipping a video of nothing but typography.
- It knows which verbs it does not have. With the destructive verbs off (the default), it can research, source media, author scenes and assemble the timeline — but approve, voiceover, generate and export are not exposed to it at all. Those stay yours, in the app. Told this, it hands the work back instead of inventing a workaround.
- It never leaves a preset's example copy on screen, and verifies the timeline before reporting done.
This is one skill — the director's playbook. The deeper authoring skills that ship with the app (~/.claude/skills/neomotion-*) are ordinary skill folders in the same format, so you can zip and upload those too — one at a time, since their descriptions are long and ChatGPT shortens the skills list as it grows.
Working without API keys
NeoMotion has no credits to buy and takes no cut of anyone's inference. What you can do about API keys, in order of least effort:
Nothing at all — the keyless path
Drive the app from your own agent over MCP and the entire core chain needs zero keys: your agent researches the topic with its own tools and hands NeoMotion the media URLs, then storyboard, scene authoring, casting, layout, the gate checks, visual review and the local render all run without one. Voiceover and English transcription now run locally too — see the next section.
What still wants a key
- Replicate — image and 3D generation, and the background removal that turns a photo into a transparent cutout. An agent that can generate images itself (ChatGPT can) can import them instead; cutting out an imported photo still needs the key.
- OpenAI — only for the managed doors, where NeoMotion drives itself instead of your agent driving it: the built-in director and auto-edit. If you brief your own agent, you bypass these.
- Stock media providers — optional. They degrade gracefully when absent; a keyless agent should research and import URLs itself rather than calling the stock search.
Keys live under Settings → API keys, are stored locally on your machine, and are never sent to us. When you add one, the provider bills you directly at their price.
Voiceover & transcription
Both used to need a cloud key. Both now ship with a local engine that runs on your own machine, offline, for free. Manage them under Settings → Local AI (no API keys), which shows what is installed and downloads models on one click.
Transcription — local Whisper
A quantised small.en whisper.cpp model, about 181 MB, running with word-level timestamps so captions and cues stay pinned to the actual words. It is roughly 30× realtime on Apple Silicon and around 6× on CPU alone — a 22-minute recording transcribes in well under a minute. English only. It is selected automatically when the audio is English and no cloud key is set; add an OpenAI key and nothing about your existing setup changes. Other languages still go through the cloud model.
Voiceover — local TTS
- Kokoro — the default local voice. About 90 MB, downloads itself on first use, nine English voices, a few times faster than realtime on CPU. If no voice provider is configured, this is what the Generate button uses, so it always produces audio.
- Chatterbox — voice cloning. Point it at a reference recording — an audio asset in your project bin, or a file on disk — and it speaks your script in that voice. Around 1.1 GB of models, and it uses the GPU: roughly 3.8× realtime on an M4 against 1.4× on CPU. The first line takes about thirteen seconds while the voice loads, then it settles to about a second a line.
- Cloud voices — OpenAI, ElevenLabs and Fish are still there if you have a key and want them.
Core concepts
Project
A workspace on your disk: its manifest, its imported media, its scenes and its style. Nothing about it is uploaded.
Scene & timeline
A video is a sequence of scenes; each scene is layers on a timeline with real keyframes. Anything the agent builds arrives here, as layers you can select, retime, recolour and delete.
Motion presets
200+ presets the agent can cast into a scene — lower thirds, stat cards, callouts, transitions, chart moves. A cast preset is not a black box: expand it and every element inside becomes an editable layer.
Style
A look — colour, type, motion feel — held across every scene, so the agent doesn't drift from scene three onwards.
Briefing the agent
Give it a topic, a script or raw footage. It plans the production, shows you the plan, and waits for you before it fetches assets or renders anything.
- From a topic or script — the agent researches, writes, storyboards, casts presets, and assembles the scenes.
- From raw footage — transcribe your talking-head take, cut it, and build an editable timeline with captions and b-roll around it.
- Before it cuts, it can look — a filmstrip lays a whole recording out as one image with the timestamp of every frame in it, and a waveform shows where the speech and the dead air are. The agent uses these to find the moment it wants without transcribing the file or rendering anything: free, instant, and no API key. Transcription answers what was said; these answer where it is.
- When no preset fits — it authors the motion itself, and that custom motion is gated before it lands: schema validation, capability lint, and a determinism probe that checks the same input produces the same frames.
You approve the storyboard before the expensive half runs. Approving is also the cheapest place to redirect it — changing the plan costs nothing, changing a finished render costs everything.
How well any of this goes depends on what your agent was told. Claude agents get NeoMotion's skills automatically; on ChatGPT you upload the skill once. It is the difference between an agent that designs a scene for your script and one that stamps a template on it.
Exporting
Rendering happens on your own hardware. It is never metered, never a credit, and never queued behind anyone else's job. Export at up to 4K, watermark-free on trial and on every paid plan.
Because the timeline is real, a change after export is a re-render of what you changed — not a fresh generation and not a new bill.
Licences & devices
- Trial — 14 days of full Studio, one device, one per account.
- Studio — 2 devices on monthly, yearly and lifetime. Founding-cohort licences get 3.
- Moving a device — deactivate it from your billing page and the seat is free again. Reinstalling on the same machine does not consume a second seat.
- Your licence key is a secret — anyone holding it can consume a seat. Terms are on the terms page.
Troubleshooting
My MCP client can't connect
The agent server has to be switched on in Settings first, and the token regenerates when you rotate it. If the port moved, re-copy the URL from Settings — the default 4399 is taken often enough that hopping is normal. HTTP clients must use 127.0.0.1 literally, not a localhost that resolves to IPv6.
“No running server found” from a stdio client
The shim looks for a live session for about ten seconds and then gives up. Start the server in NeoMotion, then restart the client.
claude.ai or ChatGPT can't see NeoMotion
A web chat can never reach a local URL. Switch on Cloud Link or remote access, and check the app is actually running — the link dies with the app, by design.
An AI feature errors immediately
If it is image generation or a cutout, that is the Replicate key. If it is a voice or a transcript, check Settings → Local AI — the model may still be downloading.
Sign-in in the app does nothing
It opens your browser to approve the device. If no browser opened, copy the URL from the app and open it manually; if the approval succeeded but the app is still waiting, quit and reopen it.
Not written yet
Being explicit beats a page that looks complete and is not. Still to come:
- A per-verb MCP reference with request and response shapes.
- Authoring guides for custom components and editable motion presets.
- The style-pack workflow — reading a look off a reference end to end.
- Export settings in detail, and render performance tuning.
- Keyboard shortcuts, and a proper tour of the editor UI.
Need one of those before it is written? Ask on the support page — what gets asked for most gets written first.