Codex × OpenBerth

Deploy from OpenAI Codex

Codex's MCP config lives in TOML. Add a server block, point it at an env var for your token, and the OpenAI agent ships straight to your server.

  • Live in 30 seconds
  • Your domain
  • No per-app bills
Quickstart

Connect Codex in under a minute

Codex reads ~/.codex/config.toml on launch. The trick: secrets aren't pasted inline — Codex reads them from an env var you name in the config.

  1. Install the CLI.
    Terminal
    npm i -g @openai/codex
  2. Export your OpenBerth API key as an env var (Codex reads it by name, so the token never lives in a file).
    Terminal
    # in your shell rc (.zshrc / .bashrc)
    export OPENBERTH_API_KEY="bt_your_api_key"
  3. Open ~/.codex/config.toml and add the OpenBerth server block.
    ~/.codex/config.toml
    # ~/.codex/config.toml
    [mcp_servers.openberth]
    url = "https://yourdomain.com/mcp"
    bearer_token_env_var = "OPENBERTH_API_KEY"
  4. Run codex and ask it to ship: “deploy this project through OpenBerth.”

Replace yourdomain.com with your server’s URL and bt_your_api_key with an API key from your workspace’s People page.

What you can do

Ask Codex, OpenBerth handles it

Ship in one sentence

Ask the AI to deploy and it does. Real HTTPS URL in seconds, no dashboard tab-hopping.

Iterate in a sandbox

Push live edits to a sandbox berth. Promote when it's right, throw it away when it isn't.

Roll back any release

Every deploy is versioned. One command (or one ask) and you're back to the last good build.

Manage secrets in plain English

Set, list, rotate, delete — your env vars stay on your server, never in the chat transcript.

Why your own server

OpenBerth handles hosting, so you handle creating

It's yours. Forever.

Your apps live on a server you own. Nobody else holds your code, your domain, or your customer data.

No surprise bills

Pay your server's flat monthly fee. Ship one app or a hundred — the price doesn't change.

Built for real apps

Databases, file uploads, background jobs, custom domains. The boring stuff that makes a website feel like a real product.

Every AI ships to one place

Lovable, Cursor, Claude, Gemini — they all push to the same dashboard. One place to see what's live.

FAQ

Common questions

  • Why does Codex want a `bearer_token_env_var` instead of the token itself?
    Because `~/.codex/config.toml` is a file you'll likely sync between machines or check into a dotfiles repo. Codex reads the secret from the env var you name, so the token stays out of any file. Set the env var in your shell rc (`.zshrc`, `.bashrc`) and you're done.
  • Can I scope the MCP server to a single project?
    Yes. Drop a `.codex/config.toml` in the project root with the same `[mcp_servers.openberth]` block. The project has to be marked trusted by Codex first — see Codex's project trust docs.
  • How do I see which MCP servers are loaded?
    Inside a Codex session, the `/mcp` command lists every connected server and its tool count. If OpenBerth doesn't show up, the config didn't parse — check for typos in the TOML.
  • Does this also work in the Codex IDE extension (VS Code / Cursor)?
    Yes. Codex's MCP support is shared between the CLI and the IDE extension — the same `config.toml` block is picked up by both.
  • Codex says it can't reach the server — what now?
    Two usual suspects. First, the `url` ends in `/mcp` (not just the workspace URL). Second, the env var named in `bearer_token_env_var` actually exists in the shell where you launched Codex (run `echo $OPENBERTH_API_KEY` to check).

Ready to ship from Codex?

Stand up a server in minutes, paste the snippet above, and your AI tool can deploy on its own.