Connect ChatGPT and Codex to Roma

Add Roma to ChatGPT in Developer mode, or to Codex with two commands.

ChatGPT connects to Roma as a custom MCP server, added on the web through Developer mode and signed in with your Roma account. Codex, in the terminal, in your editor or inside the ChatGPT app on your computer, connects with two commands. Either way the agent then sees your tasks, notes and lists, and what you ask it to keep lands in Roma. The page for both is /agents/chatgpt, and Agents in Roma explains what a connected agent is.

Before you start

ChatGPT adds a custom MCP server through Developer mode, on Pro, Plus, Business, Enterprise and Education accounts, on the web. A Business, Enterprise or Education workspace can turn it off or limit it, so if the option is missing, ask whoever runs the workspace. You also need a Roma account, which you create by signing in with Google or Apple at roma.app.

Connect ChatGPT, step by step

  1. In ChatGPT, open Settings, then Security and login, and turn on Developer mode.

  2. On the web, open Plugins at chatgpt.com/plugins, press the plus button, then Add custom MCP server. Name it Roma, give it a short description, enter the server address https://api.roma.app/mcp, keep OAuth, accept the notice ("I understand and want to continue"), press Create as a plugin, and sign in to Roma when asked. It then sits under Installed.

  3. Use it in a Work chat. On the ChatGPT home, switch the tab from Chat to Work, type @ and pick Roma, then ask. A chat keeps the tool list it started with, so start a new one after installing.

Add it on the web, not in the ChatGPT app on your computer. The app's MCP form writes the server into Codex's local config: a plugin made from it runs only on that computer, does not appear in a Work chat on the web, and cannot subscribe to Roma's events. A server added on the web is on your account and works in the app too.

To check the connection, ask "What's on my plate today in Roma?" The answer should use your own task titles.

Using Roma in ChatGPT

Ask for it by name ("@Roma, what's due today?") or ask about your tasks. ChatGPT confirms before a tool changes anything. You can tell it to remember your choice for that tool for the rest of the conversation, and a new conversation asks again. What an agent can and cannot do in your account lists everything it reaches.

ChatGPT remembers the sign-in for a server address, so a plugin removed and added again comes back on the same Roma account. To switch to another Roma account, disconnect it first.

Connect Codex

Codex connects on its own, with two commands in the terminal:

codex mcp add roma --url https://api.roma.app/mcp
codex mcp login roma

The login opens the browser for the sign-in. The same entry serves the Codex CLI, the editor extension and Codex inside the ChatGPT app on your computer. In that app the path is Settings, then MCP servers, then Add server, Streamable HTTP, the address, a restart of the app, then Authenticate.

By hand, the entry is [mcp_servers.roma] with url = "https://api.roma.app/mcp" in ~/.codex/config.toml. A standing line in ~/.codex/AGENTS.md, such as "use Roma for my tasks", holds wherever you run Codex. Codex can also take an API key as a header, for a machine with no browser: API keys and signing in from an agent.

Codex is the right agent for a task that needs a repository. From its own app it can run a standing order every hour that works the Roma tasks you hand it, reading each one, continuing in its body and posting in its chat only when something needs you. The standing orders to paste are on the Recipes page at /developers/recipes.

Make Roma the list ChatGPT reaches for

No AI chat has a setting for a default task app. What decides where "add this to my list" lands is what you told the agent, and two things do most of the work:

  • Send ChatGPT the setup message from /agents/chatgpt once. ChatGPT makes Roma its to-do list, looks through your recent conversations for what is still open, shows you the list, adds it to Roma after you confirm, and keeps Roma current as you work.

  • For a standing line that holds across every conversation, add the instructions line from /developers/connect to ChatGPT's custom instructions. It says that Roma is your task app, that a conversation about your work starts with a look at your tasks, notes and what you asked Roma to remember, that anything you mention needing to do goes to Roma as a task, and that "what should I work on next" is answered from Roma.

Then choose the permission level for the plugin that suits you, and try "Add 'call the dentist' and 'send the invoice', both for Friday." or "Save the plan we just made as a note."

ChatGPT can also run a scheduled task every hour that sweeps your meeting notes, calendar and mail into Roma and works what is waiting there. And on Plus and up, a Work chat can subscribe to Roma's events and act within seconds of a change on a list: Triggers: wake your agent when something changes.

If something goes wrong

  • ChatGPT cannot see Roma in a chat. Roma is used from a Work chat, and a chat reads the tool list when it starts. Start a new Work chat after installing, and pick Roma with @.

  • A tool you expect is missing. The chat cached an older tool list. Refresh the plugin and start a new conversation.

  • The sign-in window does not open. A pop-up blocker, an ad blocker or Safari is stopping it. Ask for the sign-in link as plain text and open it in a tab of your own. The longer list of what can go wrong is on /developers/connect.

Questions people ask

Why does ChatGPT not see Roma in my chat?

Roma is used from a Work chat, and a chat keeps the tool list it had when it started. Switch the tab from Chat to Work on the ChatGPT home, start a new chat after installing, and type @ to pick Roma.

Does ChatGPT ask before it changes something in Roma?

Yes. ChatGPT confirms before a tool changes anything. You can tell it to remember your choice for a tool for the rest of the conversation, and a new conversation asks again. Every change still shows in your Roma Event Log as your own action, made through ChatGPT.

Can I connect ChatGPT with an API key instead of signing in?

No. ChatGPT does not take a pasted key and signs in with your Roma account in the browser. Codex does take a key, for a machine with no browser, pasted as a bearer token. API keys and signing in from an agent says how to create one.

How do I switch ChatGPT to another Roma account?

ChatGPT remembers the sign-in for the server address, so removing and adding the plugin again brings it back on the same account. Disconnect Roma in ChatGPT first, then add it again and sign in with the other account.