OpenAI Codex CLI rust-v0.65.0
OpenAI Codex CLI rust-v0.65.0 was released on .
Summary
Highlights - Codex Max as default (7566): Codex Max is now the default model, and a TUI panic related to async-in-sync code was fixed.
Release Context
- This was the 59th OpenAI Codex CLI release of 2025 tracked by Havoptic.
- It shipped 2 days after OpenAI Codex CLI rust-v0.64.0 (December 2, 2025).
Shipped around the same time
Within 3 days of this release, other AI coding tools also shipped:
- Claude Code v2.0.61 (December 7, 2025)
- Claude Code v2.0.60 (December 5, 2025)
- Gemini CLI v0.19.4 (December 5, 2025)
- Gemini CLI v0.19.3 (December 5, 2025)
- Gemini CLI v0.19.2 (December 5, 2025)
Compare OpenAI Codex CLI: vs Claude Code · vs Cursor · vs Gemini CLI · vs Kiro CLI · vs GitHub Copilot CLI · vs Devin Desktop · vs Antigravity CLI
Release Notes
Highlights
- Codex Max as default (#7566): Codex Max is now the default model, and a TUI panic related to async-in-sync code was fixed.
- Better resume UX (#7302, #7303): Added a /resume slash command and improved resume performance so picking work back up is snappier.
- Tooltips & tips UX (#7557, #7440): Tips/tooltips are rendered via markdown with a bold “Tip” label and richer Codex tooltips across the app.
- TUI quality-of-life (#7530, #7448, #7514, #7461): TUI gets Ctrl‑P/N navigation, screen-line-capped shell output, restored Windows clipboard image paste, and a refactor for cleaner layout.
- History and context hygiene (#6242, #7483, #7545, #7431, #7483): history.jsonl is trimmed by history.max_bytes, common junk dirs (incl. pycache) are ignored by default, and paste placeholders stay distinct.
PRs Merged
- use markdown for rendering tips #7557 @[Jeremy Rose]
- Migrate codex max #7566 @[Ahmed Ibrahim]
- Remove test from #7481 that doesn't add much value #7558 @[Eric Traut]
- [app-server] make `file_path` for config optional #7560 @[Celia Chen]
- Migrate model family to models manager #7565 @[Ahmed Ibrahim]
- Migrate `tui` to use models manager #7555 @[Ahmed Ibrahim]
- Introduce `ModelsManager` and migrate `app-server` to use it. #7552 @[Ahmed Ibrahim]
- fix: wrap long exec lines in transcript overlay #7481 @[muyuanjin]
- fix: Features should be immutable over the lifetime of a session/thread #7540 @[Michael Bolin]
- feat: Support listing and selecting skills via $ or /skills #7506 @[xl-openai]
- [app-server] fix: add thread_id to turn/plan/updated #7553 @[Owen Lin]
- feat(tui): map Ctrl-P/N to arrow navigation in textarea #7530 @[Aofei Sheng]
- fix(tui): limit user shell output by screen lines #7448 @[muyuanjin]
- Migrate model preset #7542 @[Ahmed Ibrahim]
- fix: main #7546 @[jif-oai]
- feat: add pycache to excluded directories #7545 @[jif-oai]
- chore: update unified exec sandboxing detection #7541 @[jif-oai]
- add slash resume #7302 @[Ahmed Ibrahim]
- chore: conversation_id -> thread_id in app-server feedback/upload #7538 @[Owen Lin]
- chore: delete unused TodoList item from app-server #7537 @[Owen Lin]
- chore: update app-server README #7510 @[Owen Lin]
- chore: remove bun env var detect #7534 @[Shijie Rao]
- feat: support list mcp servers in app server #7505 @[Shijie Rao]
- seatbelt: allow openpty() #7507 @[Jeremy Rose]
- feat: codex tool tips #7440 @[jif-oai]
- feat: retroactive image placeholder to prevent poisoning #6774 @[jif-oai]
- feat: model warning in case of apply patch #7494 @[jif-oai]
- fix(tui) Support image paste from clipboard on native Windows #7514 @[Dylan Hurd]
- fix(unified_exec): use platform default shell when unified_exec shell… #7486 @[Robby He]
- Update device code auth strings. #7498 @[Matthew Zeng]
- fix: inline function marked as dead code #7508 @[Michael Bolin]
- improve resume performance #7303 @[Ahmed Ibrahim]
- fix: path resolution bug in npx #7134 @[Michael Bolin]
- Ensure duplicate-length paste placeholders stay distinct #7431 @[Joshua Sutton]
- feat: support --version flag for @openai/codex-shell-tool-mcp #7504 @[Michael Bolin]
- refactor: tui.rs extract several pieces #7461 @[Josh McKinney]
- chore: make create_approval_requirement_for_command an async fn #7501 @[Michael Bolin]
- Trim `history.jsonl` when `history.max_bytes` is set #6242 @[liam]
- fix: remove serde(flatten) annotation for TurnError #7499 @[Owen Lin]
- persisting credits if new snapshot does not contain credit info #7490 @[zhao-oai]
- fix: drop lock once it is no longer needed #7500 @[Michael Bolin]
- execpolicy helpers #7032 @[zhao-oai]
- Show token used when context window is unknown #7497 @[Ahmed Ibrahim]
- Use non-blocking mutex #7467 @[Ahmed Ibrahim]
- Fix: track only untracked paths in ghost snapshots #7470 @[lionel-oai]
- feat: ignore standard directories #7483 @[jif-oai]
- fix: add ts number annotations for app-server v2 types #7492 @[Owen Lin]
- feat: intercept apply_patch for unified_exec #7446 @[jif-oai]
- chore: remove mention of experimental/unstable from app-server README #7474 @[Owen Lin]
- Add request logging back #7471 @[pakrym-oai]
- feat: add one off commands to app-server v2 #7452 @[jif-oai]
- feat: add warning message for the model #7445 @[jif-oai]
- chore: review everywhere #7444 @[jif-oai]
- feat: alias compaction #7442 @[jif-oai]
- feat: experimental support for skills.md #7412 @[Thibault Sottiaux]
Other Recent OpenAI Codex CLI Releases
- rust-v0.144.6 (July 18, 2026)
- rust-v0.144.5 (July 16, 2026)
- rust-v0.144.4 (July 14, 2026)
- rust-v0.144.3 (July 13, 2026)
- rust-v0.144.2 (July 13, 2026)
All OpenAI Codex CLI releases · All AI coding tool releases on Havoptic