OpenAI · Terminal agent
Codex CLI + Motion
OpenAI's terminal agent, configured from a TOML file rather than JSON. Point it at Motion and one sentence becomes a finished animation, rendered in your own browser.
Setup
Connect Codex CLI to Motion
One endpoint, no key and no account. This is the part that differs between clients — a different file in a different place, and half of them name the same field differently. Pairing, underneath, works the same way wherever you are, and there are two of those depending on whether you have Motion open.
MCPhttps://motion.frapea.com/mcp
- 1
Add the server
Codex speaks streamable HTTP natively — no bridge, no experimental flag. The name comes before the flag, which is the form its own help prints.terminal$ codex mcp add motion --url https://motion.frapea.com/mcp - 2
Or write it into the config
The same thing by hand, if you keep~/.codex/config.tomlunder version control. Do one or the other — running the command as well leaves two[mcp_servers.motion]blocks, and a duplicate key is the one thing the parser will not forgive.~/.codex/config.toml[mcp_servers.motion] url = "https://motion.frapea.com/mcp"
Then, the same for every client
Pair the session with Codex CLI
Two ways in, and the only thing that decides between them is whether you have a Motion tab open right now. Neither needs a key or an account.
If Motion is already open
Carry the code to your agent
- 1Click Connect MCP, top right. The panel shows a line beginning
Connect me to Motion with code, with eight characters likeK7M4-P2Q9. - 2Paste that whole line into your agent — the sentence, not just the code. It is worded so the agent knows which tool to call and what to pass it.
- 3Good for ten minutes, and once. The code stops working the moment it is spent.
If it is not
Let the agent start without you
- 1Say start a Motion session for me. Worded so it does not collide with the line above — that one carries a code, and an agent given the same words without one will try it, fail, and have to back out.
- 2It can compose immediately — you do not need the tab to exist yet. Open the link when you want to watch, or when it asks you to.
- 3Anything that has to SEE the result, or touch your photos, waits for that tab. The agent knows to wait rather than to nag.
Then say what you want in one sentence. The frames appear in the tab while you keep working wherever you were.
When it doesn’t take
Two things go wrong, and it is almost always one of them
codex mcp add reports an unknown optionAn older build. Streamable HTTP has been native for a long time but not forever; codex --version against the current release tells you whether to upgrade.[mcp_servers.motion] blocks. If you ran the command and also wrote the TOML by hand, the duplicate key is the problem — keep one.Neither of those? The endpoint answers a plain tools/list over POST. If that comes back, the server is fine and the problem is in the config — paste this page into Codex CLI and let it work out which line.
What it gets you
Why this pairing, and not just any of them
Configured in TOML rather than JSON, and one of three clients here that connect with a single command.- Runs where your project already is, so the animation can be built from real files rather than from a description of them.
- TOML config means one block per server and no brace-matching — the least error-prone of the file-based setups here.
codex mcp listshows the server and whether it is connected without leaving the terminal, which tells a config typo from a network problem in one line.
What you just handed it
16 tools, and one of them is looking at the result
Codex CLI now has the whole set: it writes the composition as code rather than filling in a template, renders real frames and checks them, and never has to receive your footage to know what is in it.
All 16 tools Codex CLI can callWhat comes back
One sentence to final animation
Each of these was a single line said to an agent, rendered by the same runtime Codex CLI would be driving. They change as you read — point at one to play it.
Using something else?
Any client that speaks MCP
The endpoint never changes. Only the file it goes in does — and for the other 7, it is written out.
- Claude CodeTerminal agent
- Claude DesktopDesktop app
- CursorCode editor
- VS CodeCode editor
- WindsurfCode editor
- Gemini CLITerminal agent
- WarpTerminal
- Something elseSame endpoint
One sentence to final animation.
Open Motion, click Connect MCP, and say one sentence to Codex CLI.











