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 [3642], preserve escape sequences in string literals for modern models [3641], make ~/.gitconfig read-only in the macOS sandbox [3640], egress cloud run service skeleton [3639], resolve symbolic link directory escape in memory import processor [3638], implement Cloud Run webhook ingestion service [3637], resolve defensive path resolution for at-reference files and fix macOS tests [3636], enforce case-insensitive sensitive path blocklist and vscode hitl [3635], and fix no_proxy test [3634]. Codex removed an obsolete workaround that could interfere with OpenAI Luna Responses Lite requests [3633]. Preserved the composer caret after request updates [3632]. Resynced the timeline correctly after reconnecting [3631]. Loaded more timeline history at once to reduce repeated backfill while scrolling [3630]. Fixed a project picker positioning crash [3629]. Kept permission auto-accept state separate for each server [3628]. Fixed connected project picker positioning when its anchor is still loading [3627]. Fixed spacing between model provider sections in Settings [3626]. fix(core): tolerate AlreadyExists in FSUtil.ensureDir (#36542) [3625]. Hid the drawer close button on Windows where it conflicts with the window chrome [3624]. Stopped subagents from launching nested subagents by default, with a configurable subagent_depth limit when needed [3623]. Home page command palette search can now find and open sessions [3622]. Fixed custom agent selector visibility when custom agents are available [3621]. Fixed startup readiness so WSL server loading is included before the desktop app reports ready [3620]. Improved dangerous-command detection, including more forced rm forms, and provides clearer rejection reasons when commands are denied [3619]. 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 [3618]. Fixed truncated stream-json/JSON output and missing result message when piping large responses from claude -p [3617]. Fixed replies typed to a background agent being lost when delivery fails — the text is now saved and delivered when the session restarts [3616]. Fixed fast mode staying off after switching back to a model that supports it — it now restores automatically when enabled in settings [3615]. Added mouse-click support for multi-select menus and "Other" input rows in fullscreen mode [3614]. Added vimInsertModeRemaps setting: map two-key insert-mode sequences like jj to Escape in vim mode [3613]. 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 [3612]. Fixed plan approvals without edits being labeled "(edited by user)" and overwriting the plan file with a stale snapshot [3611]. Fixed a hook callback timeout being misreported to the model as a user rejection, which made unattended sessions stop and wait [3610]. Fixed a session crash when a tool's result renderer returned a numeric bigint value or plain text instead of a UI element [3609]. Fixed paste markers leaking into external editors opened from Claude Code, which could appear as stray È/É characters around pasted text [3608]. Fixed a rendered text fragment leaking into crash telemetry when a UI component returned content outside a styled text element [3607]. Fixed the ultracode keyword opt-in firing on non-human-originated input such as webhook payloads and relayed PR comments [3606]. Added a startup warning for Write(path), NotebookEdit(path), and Glob(path) permission rules — use Edit(path) or Read(path) instead [3605]. Added a live elapsed-time counter to the collapsed tool summary line so long-running tool calls visibly tick instead of looking stuck [3604]. Fixed edits that leave the input as "?" being silently swallowed and toggling the shortcuts panel [3603]. 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 [3602]. 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 [3601]. Fixed auto mode overriding a PreToolUse hook's ask decision for unsandboxed Bash — a hook ask now floors the decision at a prompt [3600]. 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 [3599]. Fixed shell mode (!) not executing commands containing file paths while the path autocomplete popup was open [3598]. Fixed SIGTERM during a running Bash tool orphaning the command's process tree in print/SDK mode; the CLI now aborts the turn, kills the tree, and exits 143 [3597]. Fixed a continue:false hook's halt being dropped when the tool fails or completes mid-stream, and hook infrastructure errors being misreported as user rejections [3596]. Fixed plan mode auto-running file-modifying Bash commands (e.g. touch, rm) without a permission prompt or SDK canUseTool callback [3595]. Added a session-wide limit on WebSearch tool calls (default 200, tunable via CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION) to stop runaway search loops [3594].[55]
Recent updates include: OpenAI upgraded Codex with plugins by default, npm marketplace, MCP tool search, system proxy, Amazon Bedrock, max reasoning, remote-control pairing, and clearer plugin management [3547]. Anthropic released Frontend Design skill for Claude Code [3545]. xAI open-sourced Grok Build and released a Claude Code plugin [3543]. A GitHub repo reroutes Claude Code to free models, reportedly losing Anthropic 20,000 users [3542]. A user built a true-scale atlas of 8.4 million stars using Fable [3541]. Claude for Teachers launched for US K-12 educators [3537]. Google Gemini CLI received multiple fixes [3642-3634]. Codex removed obsolete workaround [3633]. Various fixes in Codex: composer caret preservation [3632], timeline resync [3631], backfill reduction [3630], project picker crash [3629], permission auto-accept per server [3628], picker positioning [3627], settings spacing [3626], FSUtil.ensureDir fix [3625], Windows drawer button [3624], subagent nesting default [3623], session search [3622], custom agent selector [3621], WSL startup readiness [3620], dangerous-command detection [3619], large table rendering [3618], stream-json output [3617], background agent replies [3616], fast mode restore [3615], mouse-click support [3614], vimInsertModeRemaps [3613], screen reader mode [3612], plan approval labeling [3611], hook timeout misreporting [3610], session crash on tool result [3609], paste marker leak [3608], telemetry leak [3607], ultracode keyword firing [3606], permission rule warning [3605], elapsed-time counter [3604], edit swallowing fix [3603], file upload validation [3602], Vertex/Bedrock model fallback [3601], auto mode hook override [3600], permission preview sanitization [3599], shell mode autocomplete conflict [3598], SIGTERM process tree cleanup [3597], hook halt drop [3596], plan mode auto-run bash [3595], WebSearch limit [3594].[55]
OpenAI is targeting July 7 for GPT-5.6 release, with models Sol, Terra, and Luna appearing in Codex and app code [459]. Codex 5.6 is currently in testing, featuring better understanding of user intent and three new models: Sol, Terra, and Luna [985]. Codex resets have expiration dates, with the first reset expiring on July 12, and a potential global reset coinciding with GPT-5.6 release [986]. Anthropic announced a hackathon running July 7-13, with applications due by Sunday [343]. The US government reversed export restrictions on Anthropic's Fable 5 and Mythos 5, allowing global rollout starting July 1 [411]. Claude Fable 5 was taken offline for three weeks due to emergency export controls after a leaked exploit; now coding requests may be rerouted to older models [306]. All paid plans with usage included can access Fable 5 through July 7, up to 50% of weekly usage limit [61]. Sonnet 5 is now default on Free and Pro, available to Max, Team, Enterprise, with introductory pricing through August 31 [60]. Claude extends doubled Cowork usage limits until August 5, allowing larger task delegation [840].[9]
Updated Google Gemini CLI fix IDs from 3536-3528 to 3642-3634; added new fixes: shell mode autocomplete conflict (3598), SIGTERM process tree cleanup (3597), hook halt drop (3596), plan mode auto-run bash (3595), WebSearch limit (3594); removed background session worktree and naming fixes (3512, 3511) and bracket pattern fix (3510) as they were not present in new claims; added upcoming catalysts: Codex 5.6 testing (985), reset expiration (986), hackathon (343), export control reversal (411), Fab