From b73426c1c40187ca13c74c03912a681072c2884f Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Fri, 6 Jun 2025 18:32:10 -0700 Subject: [PATCH] docs: update codex-rs/README.md to list new features in the Rust CLI (#1267) Let users know about what the Rust CLI supports that the TypeScript CLI doesn't! --- codex-rs/README.md | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/codex-rs/README.md b/codex-rs/README.md index 7126d60b..caa21639 100644 --- a/codex-rs/README.md +++ b/codex-rs/README.md @@ -13,20 +13,52 @@ codex You can also download a platform-specific release directly from our [GitHub Releases](https://github.com/openai/codex/releases). -## Config +## What's new in the Rust CLI -Codex supports a rich set of configuration options. See [`config.md`](./config.md) for details. +While we are [working to close the gap between the TypeScript and Rust implementations of Codex CLI](https://github.com/openai/codex/issues/1262), note that the Rust CLI has a number of features that the TypeScript CLI does not! -## Model Context Protocol Support +### Config + +Codex supports a rich set of configuration options. Note that the Rust CLI uses `config.toml` instead of `config.json`. See [`config.md`](./config.md) for details. + +### Model Context Protocol Support Codex CLI functions as an MCP client that can connect to MCP servers on startup. See the [`mcp_servers`](./config.md#mcp_servers) section in the configuration documentation for details. -It is still experimental, but you can also launch Codex as an MCP _server_ by running `codex mcp`. Using the [`@modelcontextprotocol/inspector`](https://github.com/modelcontextprotocol/inspector) is +It is still experimental, but you can also launch Codex as an MCP _server_ by running `codex mcp`. Use the [`@modelcontextprotocol/inspector`](https://github.com/modelcontextprotocol/inspector) to try it out: ```shell npx @modelcontextprotocol/inspector codex mcp ``` +### Notifications + +You can enable notifications by configuring a script that is run whenever the agent finishes a turn. The [notify documentation](./config.md#notify) includes a detailed example that explains how to get desktop notifications via [terminal-notifier](https://github.com/julienXX/terminal-notifier) on macOS. + +### `codex exec` to run Codex programmatially/non-interactively + +To run Codex non-interactively, run `codex exec PROMPT` (you can also pass the prompt via `stdin`) and Codex will work on your task until it decides that it is done and exits. Output is printed to the terminal directly. You can set the `RUST_LOG` environment variable to see more about what's going on. + +### `--cd`/`-C` flag + +Sometimes it is not convenient to `cd` to the directory you want Codex to use as the "working root" before running Codex. Fortunately, `codex` supports a `--cd` option so you can specify whatever folder you want. You can confirm that Codex is honoring `--cd` by double-checking the **workdir** it reports in the TUI at the start of a new session. + +### Experimenting with the Codex Sandbox + +To test to see what happens when a command is run under the sandbox provided by Codex, we provide the following subcommands in Codex CLI: + +``` +# macOS +codex debug seatbelt [-s SANDBOX_PERMISSION]... [COMMAND]... + +# Linux +codex debug landlock [-s SANDBOX_PERMISSION]... [COMMAND]... +``` + +You can experiment with different values of `-s` to see what permissions the `COMMAND` needs to execute successfully. + +Note that the exact API for the `-s` flag is currently in flux. See https://github.com/openai/codex/issues/1248 for details. + ## Code Organization This folder is the root of a Cargo workspace. It contains quite a bit of experimental code, but here are the key crates: