Codex CLI 0.152.0, explained: what actually changed
Codex CLI 0.152.0 adds per-tool MCP output limits, longer app-server shell timeouts, Vim draft search, and clearer recovery states.

Codex CLI 0.152.0 shipped on September 1, 2026 with six new features, but the release is really about better boundaries for long, tool-heavy runs. The headline change lets you cap the model-facing output of each MCP tool instead of accepting the same fallback policy everywhere.
The short version
This is a control and reliability release, not a new model or a pricing change. If you use Codex as a plain terminal coding agent, the visible improvements are better rate-limit messages, clearer credential recovery, and Vim search inside long drafts.
If you connect Codex to outside systems through MCP, or build on the Codex app server, there is more here. MCP, short for Model Context Protocol, is the connection layer that lets Codex call tools such as documentation search, Figma, GitHub, or an internal service. Version 0.152.0 gives each of those tools its own output budget.
Here are the six new features in the release, translated into the people they affect:
The first row is the one worth understanding. It changes how much tool material Codex carries forward while it works.
What the MCP output limit actually does
An MCP tool can return a lot of material. A documentation query might bring back several long pages. A log search might return many lines. Codex has to put that result into its working context, which is the model's short-term memory for the current task.
Without a per-tool setting, MCP output still falls back to the active model's normal truncation policy. With 0.152.0, you can add the new output_token_limit setting to a specific tool under a specific MCP server. Codex then trims that tool's model-facing result to the configured token budget.
The important phrase is model-facing. The MCP server does not do less work, and Code Mode still receives the raw result. The cap applies when the result enters the model context and conversation history. Codex carries the same effective budget into resumed sessions and post-tool hook responses, so reopening a thread does not quietly restore the larger payload.

Why it matters
That changes the trade-off from “how much tool output should this model tolerate?” to “how much does this particular tool need to do its job?” A library lookup and a production-log dump no longer need the same answer.
There are two guardrails. The value must be positive, so 0 and negative values are rejected. When a plugin policy and your own configuration both set a limit, the smaller value wins. Tool approval is separate, which means shrinking an output budget does not approve a tool or change when Codex asks before calling it.
Who can use it, and how
A solo builder with a noisy documentation tool
A solo SaaS builder can keep a broad documentation search from taking over the rest of a coding turn. Put an explicit budget on the tool that returns the long pages, leave precise lookup tools alone, and the payoff is more working context for the repo, the plan, and the diff.
This is the cleanest use case for 0.152.0 because the boundary follows the source of the noise. You do not have to shrink every tool just because one of them returns too much.
A platform engineer running long app-server jobs
The new timeoutMs field belongs to the app-server method thread/shellCommand. It is not the MCP tool_timeout_sec setting.
That distinction matters. MCP tools currently have a default runtime timeout of 60 seconds, while an app-server shell command keeps its one-hour default when timeoutMs is omitted or null. An app-server client can now ask for a longer deadline when it knows a build, migration, or test suite needs it. Setting timeoutMs to 0 causes an immediate timeout, and invalid negative values are rejected.
Timing out that auxiliary command does not stop the active agent turn. Your client has to decide whether the turn should keep working, receive new instructions, or be interrupted separately.
A Vim-first developer writing a long brief
Vim mode now searches the draft itself. / searches forward, ? searches backward, and n or N repeats with wrapping. The search also composes with delete, change, and yank operations, while keeping the query out of the prompt text.
This is small until you write multi-paragraph task briefs in the terminal. Then it removes the awkward copy into an editor just to find and change a repeated name.
An enterprise team using Bedrock
Expired provider credentials used to look too much like a stalled run. Codex now emits stable start and completion notifications for provider authentication recovery, and shows that progress in both the interactive TUI and codex exec.
For an engineering team routing through Amazon Bedrock, the payoff is operational clarity. A CI log can distinguish “the agent is working” from “the provider session is reauthenticating” without guessing from a long pause.
A plugin author keeping real package names
MCP server names can now use :, @, /, and .. A name such as npm:@modelcontextprotocol/server-sequential.thinking can pass through mcp add, get, list, and remove, then keep the same identity in runtime tool namespaces and OAuth credentials.
That removes a boring source of aliases. Your package coordinate, configuration name, and credential identity can stay aligned.
A team that regularly reaches usage limits
The terminal can now turn a rate-limit notice into a next action. Supported banners can link you to usage, credits, resets, an owner notification, or plan management. During recovery, Codex refreshes usage, rejects stale responses, and pauses queued input until the state is current. A backend banner can also direct it to the first available fallback model without rewriting unrelated thread settings.
This does not increase your allowance. It makes the boundary legible and gives the terminal somewhere useful to send you.
A complete setup with a real MCP server
The fastest way to see the new shape is to attach it to Context7, the documentation MCP server used in Codex's setup guide. Its query-docs tool retrieves documentation for a known library ID, which makes it a sensible candidate for an explicit output budget.
Install the release
Pin the release so the new config key is available:
Bashnpm install -g @openai/codex@0.152.0Add Context7
Use the exact command from the current Codex MCP guide:
Bashcodex mcp add context7 -- npx -y @upstash/context7-mcpSet the tool budget
Open
~/.codex/config.tomland add this table below the Context7 server entry:TOML[mcp_servers.context7.tools.query-docs] output_token_limit = 30000The
30,000value comes from Codex's own serialization test. It shows the accepted shape, not a universal recommendation. Start from the smallest result that still preserves the evidence your prompts need, then raise it when real outputs arrive truncated.Check the connection
Run
codex mcp listto confirm the server is configured. Inside the terminal UI,/mcpshows the active servers available to the session.
The honest part
Per-tool truncation is a guardrail, not free compression. Set the limit too low and Codex can lose the key log line or documentation caveat that explains the problem. Because the smaller value wins when plugin and user policies overlap, a plugin policy can also make your effective budget lower than the number in your own file.
The configured budget also sits before a standard 20% serialization allowance, which covers the extra structure needed to place the result into the model request. Treat it as a practical budget, not a promise that every serialized payload will contain exactly that many tokens.
The rest of 0.152.0 is useful maintenance. Resumed threads recover their saved working directory when the caller does not supply one. Automatic approval review preserves more instructions and valid authorization across history compaction. MCP tools survive cache refreshes and remote plugin changes more reliably. None of that changes the model's coding ability, plan price, or usage allowance.
What to do now
Upgrade this week if you run several MCP tools, embed the app server, write long prompts in Vim mode, route through Bedrock, or regularly hit rate limits. Those are direct workflow improvements with a narrow migration surface.
Wait if your organization pins CLI versions centrally. The public configuration pages have not caught up to the per-tool output key yet, so give whoever owns your policy bundle time to validate the new field and choose limits from real outputs.
If you only use ChatGPT on the web or mobile, this release does not change your workflow. If you are still deciding whether Codex fits the way you ship, the broader Codex, Claude Code, and Cursor comparison is the better starting point.
For more plain-English operating notes on releases that change how you build, join the newsletter.
Sep 1, 2026





