
Codex 0.152.0: Opt-In Planning and Smarter MCP Limits
We break down Codex CLI 0.152.0, where turn planning is now off by default to cut prompt overhead and token usage, with guidance on when to re-enable it for bigger refactors. The episode also covers MCP output limits, session-safe truncation, expanded server naming, Vim-mode polish, and longer shell command timeouts.
Chapter 1
Why Codex 0.152.0 Turn Planning is Now Opt In by Default
Maya
You, you know that feeling when you ask an AI coding tool to fix a tiny typo in one file, and suddenly it spends three turns updating a full task plan before it even touches the code?
Ethan Park
Oh, absolutely. You just wanted a missing semicolon fixed, and instead you get a six step roadmap for how it intends to locate the semicolon.
Maya
Exactly! Well, if you were using Codex CLI, that silent tax is officially gone. Before we dive into why, a quick warm shout out to Jellypod for helping us bring you this daily changelog update. We really appreciate the support.
Ethan Park
Yeah, big thanks to Jellypod. So, what happened in release 0.152.0 under pull request 41744 is that the built in planning tool, the one called update plan, is now completely disabled by default.
Maya
Wait, so it was running on every single command before?
Ethan Park
It was available to the model on every turn. And models love to plan, right? So on routine single file edits, it was injecting system instructions and consuming extra tokens, even when you just wanted a one liner fix. Now, if you want that explicit step tracking, you have to explicitly turn it on in your dot codex slash config dot toml file by setting tools dot update plan dot enabled to true.
Maya
Hmm. Okay, so let me, let me make sure I have this straight. If I am just running quick CLI tweaks, I save prompt overhead and API tokens because the agent is not constantly drafting and updating a checklist. But what if I actually am doing a big refactor across like, ten files?
Ethan Park
That is the tradeoff, right? On a long running multi file session, having the model update its plan keeps it from going off the rails or forgetting where it left off. So the strategy here is using configuration layers. You keep it off in your global config, and then for specific large refactoring projects, you add a project level dot codex slash config dot toml file that sets tools dot update plan dot enabled equal to true.
Maya
Ah, okay! So your quick terminal commands stay lean, but your big codebase refactors still get structured step tracking when they actually need it.
Chapter 2
Granular MCP Output Limits and Package Names in 0.152.0
Ethan Park
Precisely. Now, speaking of managing prompt context and token bloat, release 0.152.0 also brought some massive updates to Model Context Protocol, or MCP, tools.
Maya
Ooh, what changed there?
Ethan Park
First up, under pull request 41421, individual MCP tools now support an output token limit setting. So if you have a database tool or a log fetcher that occasionally dumps a massive payload, you can cap its output per tool.
Maya
Wait, does that truncation stay put if you pause a thread and resume it later?
Ethan Park
Yes! That was a huge bug fix in this release. The truncation stays consistent across session resumes and saved thread restorations, so a restored session won't suddenly re inflate your context window with un-truncated historical output.
Maya
That is huge, but, uh, okay, quick warning for anyone setting this up right now. Be really careful if you set output token limit on tools that return structured JSON. If the output gets cut off mid object because the limit was too tight, your model is going to get invalid JSON back and probably choke on the parse error.
Ethan Park
Yeah, that is a really good callout. You want to set those limits high enough for valid payloads, but low enough to block catastrophic data dumps.
Maya
What else landed for MCP?
Ethan Park
Pull request 41700 expanded server registration names. MCP server names can now contain colons, at signs, slashes, and dots. That means engineering teams can declare scoped, package style namespaces, like at internal slash db server version two across CLI commands and authentication profiles without naming collisions.
Maya
Oh, nice! That makes managing multiple internal microservice tools so much cleaner. And I saw there was a bunch of interactive quality of life polish in this release too, right?
Ethan Park
Oh yeah. If you use Vim mode in the composer, pull request 41586 added slash and question mark searching within your drafts, complete with match highlighting and n or capital N navigation. And pull request 41921 fixed that annoying bug where fresh Vim drafts would start in Normal mode instead of Insert mode after submitting a command.
Maya
Oh thank goodness, no more accidentally firing off unwanted shortcuts when you just want to type a prompt!
Ethan Park
Right? And for app server users, pull request 41384 added configurable thread slash shellCommand timeouts, so long running tasks can extend past sixty minutes.
Maya
Though, uh, one last edge case on those long shell commands, even with extended timeouts past an hour, if your network connection drops or the remote environment kills idle sockets, you still need proper keep alives. The app server timeout won't save a dropped SSH connection.
Ethan Park
Great point. So to recap today: set update plan to true only when you need it, scope your MCP server names, and keep an eye on those JSON token limits!
Maya
And that is 0.152.0 in a nutshell! Thanks for listening, everyone.