Highlights
--add-dirto add an additional working directory.- Many MCP improvements:
- stdio servers now use a new client backed by the official rust MCP sdk
- stdio servers can specify a
cwd - All servers can specify
enabled_toolsordisabled_tools - Streamable HTTP servers can specify
scopesduringcodex mcp login - Improved startup error messages
- Better instruction following for calling tools
- Configuration options for
forced_login_methodandforced_chatgpt_workspace_idwhich can be paired with managed configs to give enterprises more control over Codex usage.
Full list of merged PRs:
- Support graceful agent interruption by @pakrym-oai in #5287
- Fix nix build by @Mic92 in #4048
- [MCP] Render full MCP errors to the model by @gpeal in #5298
- Fix link to MCP Servers config section by @lopopolo-openai in #5301
- [MCP] When MCP auth expires, prompt the user to log in again. by @gpeal in #5300
- fix: switch rate limit reset handling to timestamps by @tibo-openai in #5304
- fix: diff_buffers clear-to-end when deleting wide graphemes by @MomentDerek in #4921
- docs(changelog): update install command to @openai/codex@ by @truls27a in #2073
- fix: handle missing resume session id gracefully by @tibo-openai in #5329
- fix: improve custom prompt documentation and actually use prompt descriptions by @tibo-openai in #5332
- Move rust analyzer target dir by @pakrym-oai in #5328
- Create independent TurnContexts by @pakrym-oai in #5308
- feat: add --add-dir flag for extra writable roots by @tibo-openai in #5335
- docs: add AGENTS.md discovery guide by @tibo-openai in #5353
- docs: improve overall documentation by @tibo-openai in #5354
- fix: config.md docs inaccuracies by @tibo-openai in #5355
- fix: update CLI usage order for codex -h by @tibo-openai in #5356
- docs: align sandbox defaults, dedupe sections and improve getting started guide by @tibo-openai in #5357
- [MCP] Prefix MCP tools names with
mcp__by @gpeal in #5309 - feat: experimental
codex stdio-to-udssubcommand by @bolinfest in #5350 - Add forced_chatgpt_workspace_id and forced_login_method configuration options by @gpeal in #5303
- Expand approvals integration coverage by @pakrym-oai in #5358
- feat: add images support to the Codex Typescript SDK by @needs in #5281
- Strip zsh -lc wrapper from TUI command headers by @hxreborn in #5374
- Update Homebrew install instructions to use cask by @shijie-oai in #5377
- Always enable plan tool in exec by @pakrym-oai in #5380
- Auto compact at ~90% by @aibrahim-oai in #5292
- Generate JSON schema for app-server protocol by @rasmusrygaard in #5063
- fix: warn when --add-dir would be ignored by @tibo-openai in #5351
- Use int timestamps for rate limit reset_at by @owenlin0 in #5383
- chore: rework tools execution workflow by @jif-oai in #5278
- Add ItemStarted/ItemCompleted events for UserInputItem by @pakrym-oai in #5306
- tui: drop citation rendering by @nornagon-openai in #4855
- [app-server] read rate limits API by @owenlin0 in #5302
- fix terminal corruption that could happen when onboarding and update banner by @nornagon-openai in #5269
- Reduce symbol size for tests by @pakrym-oai in #5389
- docs: update advanced guide details by @tibo-openai in #5395
- docs: clarify responses proxy metadata by @tibo-openai in #5406
- [MCP] Add configuration options to enable or disable specific tools by @gpeal in #5367
- Treat
zsh -lclikebash -lcby @gpeal in #5411 - docs: clarify prompt metadata behavior by @tibo-openai in #5403
- docs: remove stale contribution reference by @tibo-openai in #5400
- docs: document exec json events by @tibo-openai in #5399
- docs: correct getting-started behaviors by @tibo-openai in #5407
- [MCP] Dedicated error message for GitHub MCPs missing a personal access token by @gpeal in #5393
- chore(ci): Speed up macOS builds by using larger runner by @JaviSoto in #5234
- feat: include cwd in notify payload by @tibo-openai in #5415
- fix(tui): Update WSL instructions by @dylan-hurd-oai in #5307
- [MCP] Bump rmcp to 0.8.2 by @gpeal in #5423
- Pass TurnContext around instead of sub_id by @pakrym-oai in #5421
- Fix flaky auth tests by @gpeal in #5461
- chore: drop env var flag by @jif-oai in #5462
- Enable plan tool by default by @pakrym-oai in #5384
- feat: emit events for unified_exec by @jif-oai in #5448
- fix: fix UI issue when 0 omitted lines by @jif-oai in #5451
- [app-server] model/list API by @owenlin0 in #5382
- Add a baseline test for resume initial messages by @pakrym-oai in #5466
- [otel] init otel for app-server by @apanasenko-oai in #5469
- feat: add experimental_bearer_token option to model provider definition by @bolinfest in #5467
- Log HTTP Version by @pakrym-oai in #5475
- feat: add text cleared with ctrl+c to the history so it can be recovered with up arrow by @JaviSoto in #5470
- docs: Add
--caskoption to brew command to suggest by @yanskun in #5432 - chore: align unified_exec by @jif-oai in #5442
- feat: local tokenizer by @jif-oai in #5508
- chore: drop approve all by @jif-oai in #5503
- [MCP] Add support for specifying scopes for MCP oauth by @gpeal in #5487
- Add new thread items and rewire event parsing to use them by @pakrym-oai in #5418
- chore: clean spec tests by @jif-oai in #5517
- docs: fix agents fallback example by @tibo-openai in #5396
- [MCP] Remove the legacy stdio client in favor of rmcp by @gpeal in #5529
- Move changing turn input functionalities to
ConversationHistoryby @aibrahim-oai in #5473 - [app-server] send account/rateLimits/updated notifications by @owenlin0 in #5477
- Fix IME submissions dropping leading digits by @genki in #4359
- [app-server] add new account method API stubs by @owenlin0 in #5527
- chore: clean
handle_container_exec_with_paramsby @jif-oai in #5516 - fix: approval issue by @jif-oai in #5525
- tui: show aggregated output in display by @nornagon-openai in #5539
- Handle cancelling/aborting while processing a turn by @aibrahim-oai in #5543
- chore: testing on apply_path by @jif-oai in #5557
- feat: use actual tokenizer for unified_exec truncation by @jif-oai in #5514
- fix: resume lookup for gitignored CODEX_HOME by @tibo-openai in #5311
- feat: end events on unified exec by @jif-oai in #5551
New Contributors
- @Mic92 made their first contribution in #4048
- @lopopolo-openai made their first contribution in #5301
- @MomentDerek made their first contribution in #4921
- @truls27a made their first contribution in #2073
- @needs made their first contribution in #5281
- @hxreborn made their first contribution in #5374
- @owenlin0 made their first contribution in #5383
- @yanskun made their first contribution in #5432
- @genki made their first contribution in #4359
Full Changelog: rust-v0.47.0...rust-v0.48.0