Codex CLI Release: 0.116.0
App-server TUI now supports device-code ChatGPT sign-in during onboarding and can refresh existing ChatGPT tokens. (#14952)
Plugin setup is smoother: Codex can prompt to install missing plugins or connectors, honor a configured suggestion allowlist, and sync install/uninstall state remotely. (#14896, #15022, #14878)
Added a userpromptsubmit hook so prompts can be blocked or augmented before execution and before they enter history. (#14626)
Realtime sessions now start with recent thread context and are less likely to self-interrupt during audio playback. (#14829, #14827)
Fixed a first-turn stall where websocket prewarm could delay turn/start; startup now times out and falls back cleanly. (#14838)
Restored conversation history for remote resume/fork in the app-server TUI and stopped duplicate live transcript output from legacy stream events. (#14930, #14892)
Improved Linux sandbox startup on symlinked checkouts, missing writable roots, and Ubuntu/AppArmor hosts by preferring system bwrap when available. (#14849, #14890, #14963)
Fixed an agent job finalization race and reduced status polling churn for worker threads. (#14843)
setup-zig GitHub Action to an immutable SHA for more reproducible CI. (#14858)Full Changelog: rust-v0.115.0...rust-v0.116.0
#14717 Move TUI on top of app server (parallel code) @etraut-openai
#14665 Use request permission profile in app server @mousseau-oai
#14826 Fixed build failures related to PR 14717 @etraut-openai
#14833 fix(core): fix sanitize name to use '_' everywhere @apanasenko-oai
#14268 memories: exclude AGENTS and skills from stage1 input @andi-oai
#14139 windows-sandbox: add runner IPC foundation for future unified_exec @iceweasel-oai
#14851 Add exit helper to code mode scripts @pakrym-oai
#14828 [stack 1/4] Split realtime websocket methods by version @aibrahim-oai
#14652 Apply argument comment lint across codex-rs @bolinfest
#14837 skill-creator: default new skills to ~/.codex/skills @xl-openai
#14861 Add marketplace display names to plugin/list @xl-openai
#14878 feat: support remote_sync for plugin install/uninstall. @xl-openai
#14830 [stack 2/4] Align main realtime v2 wire and runtime flow @aibrahim-oai
#14886 fix: align marketplace display name with existing interface conventions @xl-openai
#14881 [codex] add Jason as a predefined subagent name @tibo-openai
#14864 fix: tighten up shell arg quoting in GitHub workflows @bolinfest
#14829 [stack 3/4] Add current thread context to realtime startup @aibrahim-oai
#14827 [stack 4/4] Reduce realtime self-interruptions during playback @aibrahim-oai
#14849 fix: canonicalize symlinked Linux sandbox cwd @viyatb-oai
#14892 Fix tui_app_server: ignore duplicate legacy stream events @etraut-openai
#14899 Revert tui code so it does not rely on in-process app server @etraut-openai
#14890 fix(linux-sandbox): ignore missing writable roots @viyatb-oai
#14935 feat: rename to get more explicit close agent @jif-oai
#14843 Fix agent jobs finalization race and reduce status polling churn @daveaitel-openai
#14944 feat: show effective model in spawn agent event @jif-oai
#14838 fix(core): prevent hanging turn/start due to websocket warming issues @owenlin0
#14859 Feat: CXA-1831 Persist latest model and reasoning effort in sqlite @shijie-oai
#14930 fix(tui): restore remote resume and fork history @fcoury
#14955 Fix fuzzy search notification buffering in app-server tests @aibrahim-oai
#14959 Fix code mode yield startup race @aibrahim-oai
#14434 generate an internal json schema for RolloutLine @keyz
#14846 use framed IPC for elevated command runner @iceweasel-oai
#14952 Add device-code onboarding and ChatGPT token refresh to app-server TUI @etraut-openai
#14896 [plugins] Support plugin installation elicitation. @mzeng-openai
#14958 Stabilize Windows cmd-based shell test harnesses @aibrahim-oai
#14966 Stabilize permissions popup selection tests @aibrahim-oai
#14968 Stabilize approval matrix write-file command @aibrahim-oai
#14986 temporarily disable private desktop until it works with elevated IPC path @iceweasel-oai
#14983 Rename exec_wait tool to wait @pakrym-oai
#14931 fix(tui): implement /mcp inventory for tui_app_server @fcoury
#14977 Cleanup skills/remote/xxx endpoints. @xl-openai
#14984 Gate realtime audio interruption logic to v2 @aibrahim-oai
#14902 Unify realtime shutdown in core @aibrahim-oai
#14963 fix(linux-sandbox): prefer system /usr/bin/bwrap when available @viyatb-oai
#14446 Add Python SDK public API and examples @shaqayeq-oai
#14993 feat: Add product-aware plugin policies and clean up manifest naming @xl-openai
#14995 app-server: reject websocket requests with Origin headers @maxj-oai
#14960 Add FS abstraction and use in view_image @pakrym-oai
#14293 fix: honor active permission profiles in sandbox debug @viyatb-oai
#14610 feat: support restricted ReadOnlyAccess in elevated Windows sandbox @viyatb-oai
#13592 Prefer websockets when providers support them @pakrym-oai
#14903 Handle realtime conversation end in the TUI @aibrahim-oai
#14727 Use workspace requirements for guardian prompt override @charley-oai
#14626 [hooks] userpromptsubmit - hook before user's prompt is executed @eternal-openai
#14858 Pin setup-zig GitHub Action to immutable SHA @viyatb-oai
#13702 fix(subagents) share execpolicy by default @dylan-hurd-oai
#15022 [plugins] Support configuration tool suggest allowlist. @mzeng-openai
#14947 feat: adapt artifacts to new packaging and 2.5.6 @jif-oai
#14942 Removed remaining core events from tui_app_server @etraut-openai
#15059 chore: disable memory read path for morpheus @jif-oai
#14842 Add notify to code-mode @pakrym-oai
#15020 fix: harden plugin feature gating @xl-openai
Fetched April 16, 2026