What changed in the major AI coding CLIs?
OpenAI upgraded Codex with plugins enabled by default, npm marketplace plugin sourcing, MCP tool search, system proxy support, Amazon Bedrock support, maximum reasoning effort, remote-control pairing, and clearer plugin management [3547]. Anthropic released an official skill called Frontend Design for Claude Code, which forces Claude to choose an aesthetic direction before generating code, available for multiple frameworks and harnesses [3545]. xAI open-sourced Grok Build, their answer to Claude Code, and five days earlier quietly released an official Claude Code plugin with 8 commands [3543]. A GitHub repo with 26k stars and 4k forks allows Claude Code to be rerouted to free models like DeepSeek and Kimi, reportedly losing Anthropic 20,000 users [3542]. A user built a true-scale atlas of the universe containing 8.4 million real stars in about a week using the AI coding tool Fable [3541]. Claude AI launched Claude for Teachers, offering free premium access to verified K-12 educators in the US with teaching skills and standards-aligned curricula [3537]. Google Gemini CLI received multiple fixes: strip thoughts from scrubbed history turns and resolve thought leakage [3536], preserve escape sequences in string literals for modern models [3535], make ~/.gitconfig read-only in the macOS sandbox [3534], egress cloud run service skeleton [3533], resolve symbolic link directory escape in memory import processor [3532], implement Cloud Run webhook ingestion service [3531], resolve defensive path resolution for at-reference files and fix macOS tests [3530], enforce case-insensitive sensitive path blocklist and vscode hitl [3529], and fix no_proxy test [3528]. Codex removed an obsolete workaround that could interfere with OpenAI Luna Responses Lite requests [3527]. Preserved the composer caret after request updates [3526]. Resynced the timeline correctly after reconnecting [3525]. Loaded more timeline history at once to reduce repeated backfill while scrolling [3524]. Fixed a project picker positioning crash [3523]. Kept permission auto-accept state separate for each server [3522]. Fixed connected project picker positioning when its anchor is still loading [3521]. Fixed spacing between model provider sections in Settings [3520]. fix(core): tolerate AlreadyExists in FSUtil.ensureDir (#36542) [3519]. Hid the drawer close button on Windows where it conflicts with the window chrome [3518]. Stopped subagents from launching nested subagents by default, with a configurable subagent_depth limit when needed [3517]. Home page command palette search can now find and open sessions [3516]. Fixed custom agent selector visibility when custom agents are available [3515]. Fixed startup readiness so WSL server loading is included before the desktop app reports ready [3514]. Improved dangerous-command detection, including more forced rm forms, and provides clearer rejection reasons when commands are denied [3513]. Fixed background sessions that entered a git worktree resuming blank after a cold reopen from the agent list [3512]. Fixed background sessions auto-named by accepting a plan not showing that name on their agent-view row [3511]. Fixed malformed bracket patterns in rules globs, skill paths, .ignore, and .worktreeinclude breaking file reads, file suggestions, and worktree creation [3510]. Fixed compound commands with cd prompting for permission when the only output redirect was to /dev/null [3509]. Fixed the auto-updater overwriting a custom launcher script or symlink at ~/.local/bin/claude on every release; /doctor now reports an externally managed launcher [3508]. Fixed spurious prompt-injection warnings triggered by benign system-generated conversation updates [3507]. Fixed remote managed settings from a non-interactive run (claude -p, the SDK) being permanently recorded as consented without ever showing the security consent dialog [3506]. Auto mode is now available without CLAUDE_CODE_ENABLE_AUTO_MODE opt-in on Bedrock, Vertex AI, and Foundry; disable via disableAutoMode in settings [3505]. Fixed very large markdown tables stalling rendering or using excessive memory; tables over 200 rows show the first 200 with a "… N more rows" notice [3504]. Fixed truncated stream-json/JSON output and missing result message when piping large responses from claude -p [3503]. Fixed replies typed to a background agent being lost when delivery fails — the text is now saved and delivered when the session restarts [3502]. Fixed fast mode staying off after switching back to a model that supports it — it now restores automatically when enabled in settings [3501]. Added mouse-click support for multi-select menus and "Other" input rows in fullscreen mode [3500]. Added vimInsertModeRemaps setting: map two-key insert-mode sequences like jj to Escape in vim mode [3499]. Added screen reader mode: opt-in plain-text rendering for screen reader users. Run claude --ax-screen-reader, set CLAUDE_AX_SCREEN_READER=1, or add "axScreenReader": true to settings [3498]. Fixed plan approvals without edits being labeled "(edited by user)" and overwriting the plan file with a stale snapshot [3497]. Fixed a hook callback timeout being misreported to the model as a user rejection, which made unattended sessions stop and wait [3496]. Fixed a session crash when a tool's result renderer returned a numeric bigint value or plain text instead of a UI element [3495]. Fixed paste markers leaking into external editors opened from Claude Code, which could appear as stray È/É characters around pasted text [3494]. Fixed a rendered text fragment leaking into crash telemetry when a UI component returned content outside a styled text element [3493]. Fixed the ultracode keyword opt-in firing on non-human-originated input such as webhook payloads and relayed PR comments [3492]. Added a startup warning for Write(path), NotebookEdit(path), and Glob(path) permission rules — use Edit(path) or Read(path) instead [3491]. Added a live elapsed-time counter to the collapsed tool summary line so long-running tool calls visibly tick instead of looking stuck [3490]. Fixed edits that leave the input as "?" being silently swallowed and toggling the shortcuts panel [3489]. Fixed file upload validation: filenames ending in a DOS device suffix (.prn) or trailing dot are now accepted, and files with multiple hard links are refused [3488]. Fixed Claude Code on Vertex and Bedrock attempting the default Opus model at startup and printing a spurious fallback notice when a model is explicitly configured [3487]. Fixed auto mode overriding a PreToolUse hook's ask decision for unsandboxed Bash — a hook ask now floors the decision at a prompt [3486]. Fixed permission previews relayed to chat channels not neutralizing bidirectional-override, zero-width, and look-alike quote characters, so tool inputs cannot visually alter the approval message [3485].[58]
Late July 2026: OpenAI upgrades Codex with plugins enabled by default, npm marketplace plugin sourcing, MCP tool search, system proxy support, Amazon Bedrock support, maximum reasoning effort, remote-control pairing, and clearer plugin management [3547]. Anthropic releases an official skill called Frontend Design for Claude Code [3545]. xAI open-sources Grok Build and quietly releases an official Claude Code plugin with 8 commands [3543]. A GitHub repo with 26k stars and 4k forks allows Claude Code to be rerouted to free models, reportedly losing Anthropic 20,000 users [3542]. A user builds a true-scale atlas of the universe with 8.4 million real stars using Fable [3541]. Claude AI launches Claude for Teachers, offering free premium access to verified US K-12 educators [3537]. Google Gemini CLI receives multiple fixes: strip thoughts from scrubbed history turns [3536], preserve escape sequences in string literals [3535], make ~/.gitconfig read-only in macOS sandbox [3534], egress cloud run service skeleton [3533], resolve symbolic link directory escape [3532], implement Cloud Run webhook ingestion service [3531], resolve defensive path resolution [3530], enforce case-insensitive sensitive path blocklist [3529], and fix no_proxy test [3528]. Codex removes an obsolete workaround interfering with OpenAI Luna Responses Lite requests [3527]. Preserves composer caret after request updates [3526]. Resyncs timeline correctly after reconnecting [3525]. Loads more timeline history at once [3524]. Fixes project picker positioning crash [3523]. Keeps permission auto-accept state separate per server [3522]. Fixes connected project picker positioning when anchor loading [3521]. Fixes spacing between model provider sections in Settings [3520]. Fixes FSUtil.ensureDir AlreadyExists tolerance [3519]. Hides drawer close button on Windows [3518]. Stops subagents from launching nested subagents by default, with configurable subagent_depth limit [3517]. Home page command palette search can now find and open sessions [3516]. Fixes custom agent selector visibility when custom agents are available [3515]. Fixes startup readiness so WSL server loading is included before desktop app reports ready [3514]. Improves dangerous-command detection, including more forced rm forms, and provides clearer rejection reasons [3513]. Fixes background sessions that entered a git worktree resuming blank after cold reopen [3512]. Fixes background sessions auto-named by accepting a plan not showing that name on agent-view row [3511]. Fixes malformed bracket patterns in rules globs, skill paths, .ignore, and .worktreeinclude breaking file reads, file suggestions, and worktree creation [3510]. Fixes compound commands with cd prompting for permission when only output redirect was to /dev/null [3509]. Fixes auto-updater overwriting custom launcher script or symlink at ~/.local/bin/claude on every release; /doctor now reports externally managed launcher [3508]. Fixes spurious prompt-injection warnings triggered by benign system-generated conversation updates [3507]. Fixes remote managed settings from non-interactive run being permanently recorded as consented without showing security consent dialog [3506]. Auto mode now available without opt-in on Bedrock, Vertex AI, and Foundry; disable via disableAutoMode in settings [3505]. Fixes very large markdown tables stalling rendering or using excessive memory; tables over 200 rows show first 200 with "… N more rows" notice [3504]. Fixes truncated stream-json/JSON output and missing result message when piping large responses from claude -p [3503]. Fixes replies typed to background agent being lost when delivery fails — text now saved and delivered when session restarts [3502]. Fixes fast mode staying off after switching back to a model that supports it — now restores automatically when enabled in settings [3501]. Adds mouse-click support for multi-select menus and "Other" input rows in fullscreen mode [3500]. Adds vimInsertModeRemaps setting [3499]. Adds screen reader mode [3498]. Fixes plan approvals without edits being labeled "(edited by user)" and overwriting plan file with stale snapshot [3497]. Fixes hook callback timeout misreported as user rejection, making unattended sessions stop and wait [3496]. Fixes session crash when tool's result renderer returned numeric bigint value or plain text instead of UI element [3495]. Fixes paste markers leaking into external editors opened from Claude Code, appearing as stray È/É characters [3494]. Fixes rendered text fragment leaking into crash telemetry when UI component returned content outside styled text element [3493]. Fixes ultracode keyword opt-in firing on non-human-originated input such as webhook payloads and relayed PR comments [3492]. Adds startup warning for Write(path), NotebookEdit(path), and Glob(path) permission rules — use Edit(path) or Read(path) instead [3491]. Adds live elapsed-time counter to collapsed tool summary line so long-running tool calls visibly tick instead of looking stuck [3490]. Fixes edits that leave input as "?" being silently swallowed and toggling shortcuts panel [3489]. Fixes file upload validation: filenames ending in DOS device suffix (.prn) or trailing dot now accepted, files with multiple hard links refused [3488]. Fixes Claude Code on Vertex and Bedrock attempting default Opus model at startup and printing spurious fallback notice when model explicitly configured [3487]. Fixes auto mode overriding PreToolUse hook's ask decision for unsandboxed Bash — hook ask now floors decision at prompt [3486]. Fixes permission previews relayed to chat channels not neutralizing bidirectional-override, zero-width, and look-alike quote characters, so tool inputs cannot visually alter approval message [3485].
No upcoming catalysts are mentioned in the provided claims.
Added new events: OpenAI Codex upgrade with plugins and MCP tool search, Anthropic Frontend Design skill, xAI Grok Build open-source and Claude Code plugin, GitHub repo rerouting Claude Code to free models, Fable universe atlas, Claude for Teachers, and multiple Google Gemini CLI fixes. Also added many Claude Code fixes and features from the new claims set.