Local MCP endpoint

http://127.0.0.1:47812/mcp

Start Hronaut once. Codex can disconnect, restart, switch repositories, or move between its desktop, CLI, and IDE clients without owning the browser process. The endpoint listens on loopback rather than exposing a hosted browser.

The ownership difference

The browser belongs to the workspace, not one Codex task.

Codex supports Streamable HTTP MCP servers and shares MCP configuration between its desktop app, CLI, and IDE extension on the same host. Choose Hronaut when the browser should remain a separate visible application with durable local state, human controls, and isolated agent workspaces. See how task, MCP transport, and browser lifetimes differ →

Durable browser

Restart Codex, keep the session

The desktop application owns Chromium and its profile. Closing one Codex task does not intentionally close the browser or discard its local state.

Human control

See, pause, and take over

Watch browser actions, pause MCP before a sensitive step, sign in yourself, then resume Codex inside the same browser session.

Workspace isolation

Keep tasks out of Default

Ask Codex to create a named Hronaut workspace. Agent workspaces use separate persistent browser profiles and do not expose the human Default workspace through MCP.

Local boundary

Browser data stays on this device

Hronaut is a local Electron/Chromium application with a loopback MCP endpoint. It is not a hosted browser, proxy, CAPTCHA service, or multi-browser CI runner.

One user-level command

Connect Codex to Hronaut.

Codex stores MCP configuration in ~/.codex/config.toml by default. Its desktop app, CLI, and IDE extension share that configuration on the same Codex host.

Authentication disabled

Run from any repository

codex mcp add hronaut --url http://127.0.0.1:47812/mcp

This adds a Streamable HTTP server to the default user-level Codex configuration. Official Codex MCP documentation ↗

Authentication enabled

Copy from Hronaut Home

Enable Require MCP authentication, then copy the generated Codex setup from Hronaut Home. It supplies --bearer-token-env-var HRONAUT_MCP_TOKEN, which Codex stores as bearer_token_env_var rather than writing the bearer token into config.toml.

Keep the token out of chat, screenshots, shell history, issues, and source control. If the environment variable is unavailable to the Codex host, the authenticated connection cannot initialize.

Verify before using a login

Prove the connection in an isolated workspace.

  1. 1

    Check the configured server

    Start Hronaut, then run codex mcp list. Hronaut should show the same Streamable HTTP endpoint displayed on Hronaut Home.

  2. 2

    Check it inside Codex

    Open Codex and use /mcp to see active MCP servers. Confirm Hronaut is enabled and connected before asking it to touch a signed-in page.

  3. 3

    Create a clean first workspace

    Ask: “Create a Hronaut workspace named first-check, open https://example.com inside it, and tell me the page title and workspace ID. Do not use my Default workspace.”

  4. 4

    Confirm the observable result

    A visible first-check workspace opens Example Domain, and Codex reports its stable workspace ID.

Security boundary

Do not test first with your most sensitive profile.

A new Hronaut profile starts without MCP authentication for simple local setup. In that mode, another process running as your operating-system user could connect. Before using valuable signed-in sessions, enable Require MCP authentication and copy the exact token-aware setup from Hronaut Home.

Websites can contain prompt injection, and a persistent authenticated browser carries the authority of every site signed in inside that profile. Keep sensitive work isolated, review surprising requests, and use Hronaut's pause and interaction-lock controls before entering passwords, security keys, payment details, or other human-only information.

Choose deliberately

Use the browser ownership model your task actually needs.

Choose Hronaut for a separate visible browser that should outlive one Codex task. If repeatable ephemeral testing is the primary goal, use a test-runner-owned browser. If Codex must inspect the exact tabs already open in everyday Chrome, use a tool designed to connect to that profile instead.