Control your DAW with OpenAI Codex
Published October 2026
Codex — the CLI and the IDE extension share one config.toml — connects to remote MCP servers with a single codex mcp add. Point it at the Doseedo MCP server and the agent can read your DAW sessions as full arrangements and edit them, open a Logic, Ableton, FL Studio, REAPER or Pro Tools project as a session, convert projects across ten DAW formats, separate stems, transcribe audio and render the parts it writes with modelled instruments. With Dø Desktop running, edits to a Logic project land in the open project within seconds.
Install in Codex
codex mcp add doseedo --url https://api.doseedo.com/mcp
codex mcp login doseedo
Here is the real run, on codex-cli 0.162.1. One thing the docs do not say: codex mcp add probes the URL, finds OAuth, and starts the browser sign-in immediately — captured here in a headless shell, where no browser can answer, so it times out while still writing the config:
$ codex --version
codex-cli 0.162.1
$ codex mcp add doseedo --url https://api.doseedo.com/mcp
Error: timed out waiting for OAuth callback
$ codex mcp list
Name Url Bearer Token Env Var Status Auth
doseedo https://api.doseedo.com/mcp - enabled Not logged in
Captured 2026-10-15 with CODEX_HOME pointed at an empty directory
On a desktop the same first line opens Doseedo's sign-in page; approve once and codex mcp list flips the last column to logged in, and the grant appears under Settings → API keys as MCP · Codex. If you missed the browser window, codex mcp login doseedo repeats just the sign-in. Codex registers its OAuth client dynamically, so there is no client id to supply, and the file it writes is exactly two lines:
[mcp_servers.doseedo]
url = "https://api.doseedo.com/mcp"
Inside the TUI, /mcp shows the same table.
For a headless machine — a CI box, a render server — skip OAuth and send a key instead; the header name maps to an environment variable, so the key never sits in the file:
[mcp_servers.doseedo]
url = "https://api.doseedo.com/mcp"
env_http_headers = { "X-API-Key" = "DOO_API_KEY" }
tool_timeout_sec = 60
Two fields worth knowing. default_tools_approval_mode decides whether Codex asks before each tool: "writes" confirms the tools that change something (an edit, a conversion, a render) and lets reads, quotes and the free analysis tools run — a sensible setting for this server. And enabled_tools can narrow the 33 tools to the handful a project needs. The skills pack installs with npx skills add doseedo/skills into ~/.codex/skills/.
What to ask it
> List my Doseedo sessions. In "Bridge Demo", what's on
track 4 and how loud is it?
> Add a submix bus called HORNS, route the trumpet and sax
into it, and put a Channel EQ on it.
> Open ./song.rpp as a session, rename the tracks from what's
on them, and give me the project back as .logicx.
> Separate ./mix.wav, transcribe the piano stem, check the
harmony, and render the same notes on a Rhodes.
Codex reads before it writes — the session comes back as structure, not a file dump — and submits edits as one atomic batch. A rejection names the op, a code and often a did_you_mean, so the agent fixes and resends rather than guessing.
What Codex can and cannot do to a DAW through this
Live edits — a change landing in the project open on your screen — are Logic Pro on macOS with Dø Desktop running; Ableton, FL Studio, REAPER and Pro Tools projects are opened as sessions, edited, and handed back as files or converted. Nothing presses play. The full scope table is on the hub.
Where Codex is unusual among the clients is default_tools_approval_mode: set it to "writes" and Codex confirms only the tools that change something, which for this server is the right line — doseedo_edit_session, doseedo_convert_project, the renders and the bounce — while the session reads, doseedo_quote and the free analysis tools run unprompted. A long job (a render is one to three minutes, a session build four) is several doseedo_wait_task calls of up to 50 seconds each, so raise tool_timeout_sec above the default 60 if Codex reports a wait as failed.
Two lines in the terminal
codex mcp add, codex mcp login, and ask Codex to list your sessions.
The Doseedo MCP server →FAQ
Can Codex control my DAW?
Yes, through the Doseedo MCP server: it reads and edits DAW sessions, opens Logic, Ableton, FL Studio, REAPER and Pro Tools projects and converts across ten formats, separates stems, transcribes and renders MIDI. Live edits in an open project are Logic Pro via Dø Desktop; the other DAWs are handled as project files.
What are the exact commands?
codex mcp add doseedo --url https://api.doseedo.com/mcp, then codex mcp login doseedo. Or a [mcp_servers.doseedo] block with url in ~/.codex/config.toml.
How do I use an API key instead of OAuth?
In config.toml, env_http_headers = { "X-API-Key" = "DOO_API_KEY" } sends the key from that environment variable on every request. Mint keys at doseedo.com/settings/api-keys; read-only and per-op-group scopes exist.
Will Codex ask before every tool?
That is default_tools_approval_mode. "writes" confirms only the tools that change something — edits, conversions, renders — and lets reads, quotes and the free analysis tools run unprompted.
codex mcp add opened a browser — is that expected?
Yes. Codex probes the URL when you add it, discovers that the server uses OAuth, and starts the sign-in at once. Approve it there. If the window was missed (or the shell had no browser, as in the capture above), the config is still written and codex mcp login doseedo repeats just the sign-in.
The Doseedo MCP server · one URL, every client
- Logic Prolive edits in the open project
- Ableton Livebuild, read, convert .als
- FL Studioread, convert .flp
- Pro Toolsmove .ptx between DAWs
- REAPERread, edit, convert .rpp
- Any AI agentwhat works today
- Claude & Claude Codephone, desktop, terminal
- ChatGPTas a custom MCP server
- Cursormcp.json, one entry
- Gemini CLIgemini mcp add
- OpenAI Codexcodex mcp add
- VS Code Copilotmcp.json, type http
- All 33 toolsthe reference
- Convert projectsten DAW formats, 75 directions
- Separate stemsvocals, drums, bass, more
- Audio to MIDItranscription, chords, key
- Generate musicsongs, parts, covers
- Bounce offlinethrough real plugins
- Swap a drum packaudio stays local