Skip to content

Latest commit

 

History

History
74 lines (46 loc) · 5.6 KB

File metadata and controls

74 lines (46 loc) · 5.6 KB

Advanced

If you already lean on Codex every day and just need a little more control, this page collects the knobs you are most likely to reach for: tweak defaults in Config, add extra tools through Model Context Protocol support, and script full runs with codex exec. Jump to the section you need and keep building.

Config quickstart {#config-quickstart}

Most day-to-day tuning lives in config.toml: set approval + sandbox presets, pin model defaults, and add MCP server launchers. The Config guide walks through every option and provides copy-paste examples for common setups.

Tracing / verbose logging {#tracing-verbose-logging}

Because Codex is written in Rust, it honors the RUST_LOG environment variable to configure its logging behavior.

The TUI defaults to RUST_LOG=codex_core=info,codex_tui=info,codex_rmcp_client=info and log messages are written to ~/.codex/log/codex-tui.log, so you can leave the following running in a separate terminal to monitor log messages as they are written:

tail -F ~/.codex/log/codex-tui.log

By comparison, the non-interactive mode (codex exec) defaults to RUST_LOG=error, but messages are printed inline, so there is no need to monitor a separate file.

See the Rust documentation on RUST_LOG for more information on the configuration options.

Model Context Protocol (MCP) {#model-context-protocol}

The Codex CLI and IDE extension is a MCP client which means that it can be configured to connect to MCP servers. For more information, refer to the config docs.

Using Codex as an MCP Server {#mcp-server}

The Codex CLI can also be run as an MCP server via codex mcp-server. For example, you can use codex mcp-server to make Codex available as a tool inside of a multi-agent framework like the OpenAI Agents SDK. Use codex mcp separately to add/list/get/remove MCP server launchers in your configuration.

Codex MCP Server Quickstart {#mcp-server-quickstart}

You can launch a Codex MCP server with the Model Context Protocol Inspector:

npx @modelcontextprotocol/inspector codex mcp-server

Send a tools/list request and you will see that there are two tools available:

codex - Run a Codex session. Accepts configuration parameters matching the Codex Config struct. The codex tool takes the following properties:

| Property | Type | Description | | ----------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | --- | | prompt (required) | string | The initial user prompt to start the Codex conversation. | | approval-policy | string | Approval policy for shell commands generated by the model: untrusted, on-failure, on-request, never. | | base-instructions | string | The set of instructions to use instead of the default ones. | | config | object | Individual config settings that will override what is in $CODEX_HOME/config.toml. | | cwd | string | Working directory for the session. If relative, resolved against the server process's current directory. | | | model | string | Optional override for the model name (e.g. o3, o4-mini). | | profile | string | Configuration profile from config.toml to specify default options. | | sandbox | string | Sandbox mode: read-only, workspace-write, or danger-full-access. |

codex-reply - Continue a Codex session by providing the conversation id and prompt. The codex-reply tool takes the following properties:

Property Type Description
prompt (required) string The next user prompt to continue the Codex conversation.
conversationId (required) string The id of the conversation to continue.

Trying it Out {#mcp-server-trying-it-out}

Tip

Codex often takes a few minutes to run. To accommodate this, adjust the MCP inspector's Request and Total timeouts to 600000ms (10 minutes) under ⛭ Configuration.

Use the MCP inspector and codex mcp-server to build a simple tic-tac-toe game with the following settings:

approval-policy: never

prompt: Implement a simple tic-tac-toe game with HTML, Javascript, and CSS. Write the game in a single file called index.html.

sandbox: workspace-write

Click "Run Tool" and you should see a list of events emitted from the Codex MCP server as it builds the game.