If you build tooling on a fast-moving agent CLI, the question that matters is not what shipped last week. It is which parts will still be there next quarter. Codex CLI answers that directly: its reference publishes a maturity label on every command, and reading those labels tells you more than any changelog roundup can. Some commands that look headline-worthy are still Experimental months after launch, and at least one is now Deprecated. This post was first published on 17 May 2026 as a roundup of three releases, and rewritten on 29 August 2026 once there was enough record to check it against.
What 35 more releases did to the May forecast
The original covered Codex CLI 0.128.0 through 0.130.0, three releases across eight days at the end of April and start of May. Since then OpenAI has published 35 further stable releases, ending at 0.151.0 on 29 August 2026, according to the npm registry’s publish record.
That volume is exactly why a “these 7 changes matter most” post cannot stay useful. What can stay useful is the direction, and the May post made three directional bets. All three held, which is worth saying plainly because a forecast that lands is as informative as one that fails:
- More agentic. Persisted
/goalworkflows still exist, documented as “Set, edit, pause, resume, view, or clear a task goal”. The direction went further than the post predicted: Codex now also ships spawned agent threads, with/agentand/subagentsto “Switch the active agent thread. Inspect or continue work in a spawned subagent thread.” - More terminal-native. Vim mode, raw scrollback, the resume and fork picker and workspace-aware
/diffall survive, joined by/personalityfor response style and/psfor background terminals. - More team-operable.
codex pluginandcodex plugin marketplaceare both Stable now, which is the label that matters if you were waiting before standardising a plugin set across a team.
The label that answers “can I build on this?”
Here is the part that replaces the changelog habit. The Codex CLI reference explains its own contract: “Each section shows the option’s maturity and flags deprecated options and risky combinations.”
That single line is more operationally useful than any release-notes summary, because it is a forward-looking statement rather than a backward-looking one. A changelog tells you something changed. A maturity label tells you whether OpenAI is asking you to depend on it yet.
Two entries make the point better than an explanation.
codex remote-control is still Experimental. The May post called it “one of the strongest signals in this batch”, and that read was right about direction: it is the entry point for headless, remotely controlled Codex. It is also, three and a half months and 35 releases later, still labelled Experimental, described as “Run or manage remote control for the local app-server, or create a short-lived pairing code.” Direction and readiness are different things, and a changelog only ever shows you the first.
codex mcp-server is now Deprecated. The reference is explicit about the replacement: “Deprecated interface for running Codex as an MCP server over stdio. Use the Codex app server instead.” If you wired Codex into another tool as an MCP server earlier this year, that is the line to act on, and no amount of reading feature announcements would have surfaced it.
What we do with an Experimental command
Experimental does not mean avoid. It means the cost of a change lands on you, so budget for it:
- Pin the version.
codex updateexists precisely because the release cadence is high; on an Experimental surface, choosing when to take an update is the difference between a scheduled change and a surprise one. - Wrap it in one place. One adapter around
codex remote-controlmeans a breaking change is a single edit rather than a search across a codebase. - Do not put it under a human gate. An approval step resting on an Experimental transport inherits its instability, and the failure shows up exactly when a person is waiting.
- Re-read the label, not the release notes. The maturity is where a promotion or a deprecation is stated in one word.
The same problem on the other CLI, with a different answer
This is the second time we have hit the same underlying question from opposite directions. On Claude Code, the trap is that shipped fixes get re-defaulted, so the answer is to pin the behaviours you depend on in committed settings. On Codex, the surfaces are labelled, so the answer is to read the label before you build.
Both are the same discipline: treat the agent CLI as a dependency with a version policy, not as a product you passively receive. That is also why we keep a deliberately small, stable plugin set rather than chasing every new one, and why the subagent work landing in both products is worth watching as capability rather than adopting as habit.
The honest limitation
One thing this post cannot do is tell you the current label for a command you care about. Labels move, which is the entire point, and a page that froze them in prose would be the exact failure it is describing. Open the reference and read the maturity column for the specific command you are about to depend on. Verified against Codex CLI 0.151.0, the release current on 29 August 2026.
Sources
- Codex CLI reference, the maturity labels and every documented command and flag
- Codex CLI overview, on installation, update and the sandbox model
- Codex hooks documentation, for the hook events referenced above
- Codex plugins documentation, on marketplaces and plugin distribution
- The @openai/codex package on npm, for the release dates and counts used here
Last updated: