Coding Agents
AI pair programmers and autonomous coding agents — IDE-integrated assistants and cloud agents that read, edit, and ship code.
v2.1.147
What's changed
- Added the
Workflowtool for deterministic multi-agent orchestration. It is off by default — setCLAUDE_CODE_WORKFLOWS=1to enable - Pinned background sessions (
Ctrl+Tinclaude agents) now stay alive when idle, are restarted in place to apply Claude Code updates, and are shed under memory pressure only after non-pinned sessions - Renamed
/simplifyto/code-review. It now reports correctness bugs at a chosen effort level (e.g.,/code-review high); pass--commentto post findings as inline GitHub PR comments. The old cleanup-and-fix behavior has been removed - Hardened REPL and Workflow tool sandboxes against prototype-pollution and thenable-based escapes
- Improved auto-updater: retries transient network failures, reports specific error categories and OS error codes on failure, and shows the current version when an update fails
- Improved diff rendering performance for large file edits
- Prompt history no longer records consecutive duplicate entries — recalling a prompt with arrow-up and submitting it again won't add another copy
- Fixed enterprise login restrictions (
forceLoginOrgUUIDandforceLoginMethodmanaged-settings) not being enforced against third-party-provider and API-key sessions - Fixed
&in!command output displaying as&, which broke copy-pasting URLs from commands likegcloud auth loginon headless machines - Fixed unknown slash commands silently doing nothing in headless/SDK mode — they now show an error message
- Fixed
/helprendering a broken tab header and showing only one command per page on small terminals when not in fullscreen mode - Fixed shell snapshot dropping user functions whose names start with a single underscore, which broke aliases referencing them
- Fixed plugin agents that declare multiple
Agent(...)types intools:frontmatter dropping all but the last entry - Fixed hook
ifconditions likePowerShell(git push*)never matching — onlyPowerShell(*)worked - Fixed PowerShell tool dropping output for commands that rely on the default formatter
- Fixed: on Windows, "Yes, and don't ask again" for a PowerShell script invocation now writes a rule that actually matches on subsequent runs
- Fixed PowerShell tool failing on Windows with exit code 1 when
pwshis installed via winget or the Microsoft Store - Fixed
/effortopening with the slider on the wrong level — it now starts at your current effort - Fixed paginating MCP servers dropping resources, templates, and prompts past page 1
- Fixed full-screen strobing in attached background sessions on Windows Terminal while Claude is streaming
- Fixed: on Windows, removing a background-job worktree no longer follows NTFS junctions into the main repo
- Fixed
/backgroundrefusing sessions whose only typed input was a skill or custom slash command - Fixed auto mode suppressing
AskUserQuestionwhen the user or a skill explicitly relies on it; the auto-mode classifier now sees the user's answers as intent signal - Fixed
/theme"New custom theme" and color editor dialogs not responding to Esc - Fixed an uncaught exception at the end of streaming sessions when running via the Agent SDK
- Fixed a rare hang when waiting for scroll to settle on Windows
- Fixed stale and doubled rows in the agent view list on Windows when background session results contain wide (CJK) characters
- Fixed pasted text being delivered to agents as an unreadable
[Pasted text #N]placeholder instead of the actual content - Fixed plugin component counts in
claude plugin detailsand/pluginbeing doubled when a plugin's manifest listed paths overlapping its default directories - Fixed backgrounded sessions re-prompting for tool permissions you already granted with "don't ask again"
- Fixed GNOME Terminal right-click and middle-click paste not inserting text
- Fixed
CLAUDE_CODE_SUBAGENT_MODELnot applying to teammate processes spawned by agent teams - Fixed slash commands followed by a tab or newline being treated as an unknown command
- Fixed several spacing and layout glitches in the
/plugin,/status,/mobile,/sandbox, and/permissionsmenus - Fixed stripped images prompting the model to repeatedly re-read media that was no longer present
v2.1.146
What's changed
- Renamed
/simplifyto/code-reviewwith an optional effort level (e.g./code-review high) - Auto mode no longer suppresses
AskUserQuestionwhen the user or a skill explicitly relies on it - Fixed Windows PowerShell tool failing with "command line is invalid" when
pwshis installed via winget or the Microsoft Store (regression in v2.1.124) - Fixed MCP
resources/list,resources/templates/list, andprompts/listdropping items past page 1 on paginating servers - Fixed full-screen strobing in attached background sessions on Windows Terminal while Claude is streaming
- Fixed the auto-updater status line not showing your current version when an update fails
- Fixed on Windows, removing a background-job worktree no longer follows NTFS junctions into the main repo
- Fixed
/backgroundrefusing sessions whose only typed input was a skill or custom slash command - Fixed backgrounded sessions re-prompting for tool permissions you already granted with "don't ask again"
- Fixed
/themecolor editor and "New custom theme" dialogs not responding to Esc - Fixed an uncaught exception at the end of streaming sessions when running via the Agent SDK
- Fixed
forceLoginOrgUUIDandforceLoginMethodmanaged-settings policies not being enforced against third-party-provider and API-key sessions - Fixed GNOME Terminal right-click and middle-click paste not inserting text
- Fixed
CLAUDE_CODE_SUBAGENT_MODELnot being forwarded to child processes in multi-agent sessions - Improved auto-updater reliability: native version checks and downloads now retry transient network failures instead of failing immediately
- Improved diff rendering performance for large file edits
Appshots, goal mode, and more
# Appshots, goal mode, and more [Appshots](/codex/appshots) are now available in the Codex app on macOS. Press both Command keys to send the frontmost app window to Codex with a screenshot and available text, so Codex can work from context in another app without you copying, pasting, or describing it manually. This launch also includes: - [Goal mode](/codex/prompting#goal-mode) is no longer an experimental feature and is available in the Codex app, IDE extension, and CLI. With Goal mode, you can have Codex drive toward a specific objective for hours or even days. - [Remote computer use](/codex/app/computer-use#locked-use), so Codex can use desktop apps after your Mac locks, including remotely via Codex Mobile. Codex scopes locked use to active, trusted computer use turns and includes safeguards such as short-lived authorization, covered displays, relock on local input, and manual-unlock fallback. - [Plugin sharing](/codex/plugins/build#share-a-local-plugin-with-your-workspace) through marketplace sources is available for ChatGPT Business. Enterprise support is coming soon. Teams can distribute reusable plugin bundles that include skills, app integrations, and MCP servers. - [Advanced in-app browser annotations](/codex/app/browser#styling-feedback) let you tweak styling such as font size, colors, and spacing directly using annotations. This gives Codex a clearer signal for changes. - Browser-use improvements across in-app browser & Chrome: - Codex can now download and extract all image assets from a page much more quickly. - Codex can now extract structured data from pages more effectively and find information more quickly with a read-only JS sandbox. - Chrome extension will create less clutter when using it. Codex will no longer create tab groups when taking over existing tabs, and at the end of a task for handoff. Instead, it uses tab icons to indicate status. - Significantly improved reliability for browser use. We fixed bugs on Windows, flaky availability of the plugin to non geo-blocked regions, and many other issues impacting performance.
Codex CLI Release: 0.133.0
New Features
- Goals are now enabled by default, backed by dedicated storage, and track progress across active turns. (#23300, #23685, #23696, #23732)
codex remote-controlnow runs like a foreground command, waits for readiness, reports machine status, and keeps explicit daemon-stylestart/stopcommands. (#22878)- Permission profiles gained list APIs, inheritance, managed
requirements.tomlsupport, runtime refresh behavior, and stronger Windows sandbox integration. (#22928, #23412, #22270, #23433, #22931, #23715) - Plugin discovery is easier to inspect, with marketplace-aware list output, installed versions, visible marketplace roots, and remote collection support. (#23372, #23584, #23727, #23730)
- Extensions can observe more lifecycle events, including subagent start/stop, tool execution, turn metadata, and async approval/turn processing. (#22782, #22873, #23309, #23688, #23690, #23692)
Bug Fixes
- Fixed TUI startup choosing the wrong working directory when reusing a local app-server socket. (#23538)
- Fixed plan-mode free-form answers so modified Enter keys, like Shift+Enter, no longer submit unexpectedly. (#23536)
- Removed stale background terminal poll events after a process exits. (#23231)
- Preserved raw code-mode exec output unless an explicit output token limit is requested. (#23564)
- Made AGENTS instruction loading more reliable, including local global reads and warnings for invalid UTF-8 instead of silent drops. (#23343, #23232)
- Fixed app-server startup/shutdown races, empty resume/fork paths, plugin upgrade failures, and realtime v1 websocket compatibility. (#23516, #23578, #23400, #23356, #23771)
Documentation
- Added clearer plugin-creator guidance for updating and reinstalling local personal plugins. (#23542)
- Expanded app-server/API docs and schema coverage around managed permission profile requirements. (#23433, #23555)
Chores
- Added a canonical Codex package archive pipeline and moved installers, npm packages, DotSlash, and SDK runtimes toward that shared layout. (#23513, #23582, #23586, #23596, #23635, #23636, #23637, #23638, #23786)
- Fixed Linux Python runtime wheel tags so glibc-based systems can install the runtime artifacts. (#21812)
- Improved release and CI reliability with package-builder tests, prebuilt resource packaging, DotSlash zstd handling, platform-sharded Rust tests, and Codex Linux release runners. (#23760, #23759, #23752, #23358, #23761)
Changelog
Full Changelog: rust-v0.132.0...rust-v0.133.0
- #23343 codex: route global AGENTS reads through LOCAL_FS @starr-openai
- #22380 fix: default unknown tool schemas to empty schemas @celia-oai
- #23309 Add tool lifecycle extension contributor @jif-oai
- #23253 Reduce rust-ci-full Windows nextest timeout flakes @starr-openai
- #22878 Improve
codex remote-controlCLI UX @owenlin0 - #21812 Publish Linux runtime wheels with glibc-compatible tags @aibrahim-oai
- #22709 [codex] Trim unused TurnContextItem fields @pakrym-oai
- #23353 Include plugin id in plugin MCP tool metadata @mzeng-openai
- #22728 [codex] Move pending input into input queue @pakrym-oai
- #23371 fix(tui): warn on unsupported iTerm2 pet versions @fcoury-oai
- #23376 [codex-analytics] preserve user thread source for exec threads @marksteinbrick-oai
- #23360 app-server: use profile ids in v2 permission params @bolinfest
- #23384 [codex] Remove external websocket session resets @pakrym-oai
- #22721 cleanup: Remove skill env var dependency prompting @xl-openai
- #23389 Remove ToolSearch feature toggle @sayan-oai
- #23080 [1 of 7] Add thread settings to UserInput @etraut-openai
- #23081 [2 of 7] Remove UserInputWithTurnContext @etraut-openai
- #23075 [3 of 7] Remove UserTurn @etraut-openai
- #23396 [codex] Extract turn skill and plugin injections @pakrym-oai
- #23356 fix(plugins): keep version upgrades additive @iceweasel-oai
- #22508 [5 of 7] Replace OverrideTurnContext with ThreadSettings @etraut-openai
- #22086 CI: Customize v8 building @cconger
- #23390 Remove explicit connector tool undeferral @sayan-oai
- #22928 core: expose permission profile picker metadata @viyatb-oai
- #23352 Preserve context baselines for full-history agent forks @jif-oai
- #23300 feat: dedicated goal DB @jif-oai
- #22835 Remove ToolsConfig from tool planning @jif-oai
- #22870 Add
body_after_prefixauto-compact token limit scope @jif-oai - #23144 Defer v1 multi-agent tools behind tool search @jif-oai
- #23409 [codex] Allow empty turn/start requests @pakrym-oai
- #23388 [codex] Move hook request plumbing into hook runtime @pakrym-oai
- #23405 [codex] Preserve steer input as user input @pakrym-oai
- #22914 [2 of 4] tui: route app and skill enablement through app server @etraut-openai
- #23397 [codex] Make contextual user fragments dyn-renderable @pakrym-oai
- #23475 chore: namespace v1 sub-agent tools @jif-oai
- #23493 Make
denycanonical for filesystem permission entries @viyatb-oai - #22929 Harden CLI rate limit window labels @ase-openai
- #22782 Add SubagentStart hook @abhinav-oai
- #23513 build: add Codex package builder @bolinfest
- #23369 Make local environment optional in EnvironmentManager @starr-openai
- #23327 Refactor exec-server websocket pump @starr-openai
- #23536 fix(tui): preserve modified enter in plan questions @fcoury-oai
- #23400 Fix empty rollout path app-server handling @wiltzius-openai
- #23551 Route local-only app-server gating through processors @starr-openai
- #23372 Split plugin install discovery into list and request tools @mzeng-openai
- #23516 fix: serialize unix app-server startup @efrazer-oai
- #22169 [codex] Honor role-defined spawn service tiers @aibrahim-oai
- #23555 Add CUA requirements subsection for locked computer use @adams-oai
- #23538 Fix: TUI starting in wrong CWD @canvrno-oai
- #23526 build: fetch rg for Codex packages @bolinfest
- #23573 Remove unused ARC monitor path @mzeng-openai
- #23576 test: fix multi-agent service tier assertion @bolinfest
- #23541 build: default Codex package target and output @bolinfest
- #23358 Fan out rust-ci-full nextest by platform @starr-openai
- #23593 feat: expose codex-app-server version flag @bolinfest
- #23412 feat: add permission profile list api @viyatb-oai
- #23535 Move plugin and skill warmup into session startup @aibrahim-oai
- #23231 Fix stale background terminal poll events @etraut-openai
- #23564 [codex] Preserve raw code-mode exec output by default @aibrahim-oai
- #23232 Warn on invalid UTF-8 in AGENTS.md files @etraut-openai
- #23584 feat: Add vertical remote plugin collection support @xl-openai
- #23586 build: package prebuilt Codex entrypoints @bolinfest
- #23582 ci: build Codex package archives in release workflow @bolinfest
- #23596 runtime: detect Codex package layout @bolinfest
- #23500 add encryptedcontent to functioncalloutput @sayan-oai
- #23633 Migrate exec-server remote registration to environments @richardopenai
- #23451 Add timeout for remote compaction requests @jif-oai
- #23667 feat: rename 1 @jif-oai
- #23669 feat: rename 3 @jif-oai
- #23668 feat: rename 2 @jif-oai
- #23675 fix: main @jif-oai
- #23685 feat: wire goal extension tools to the dedicated goal store @jif-oai
- #23690 feat: async approval contrib @jif-oai
- #23692 feat: async turn item process @jif-oai
- #23688 feat: expose turn-start metadata to extensions @jif-oai
- #23605 [codex] Hide deferred tools from code mode prompt @pakrym-oai
- #23634 runtime: use install context for bundled bwrap @bolinfest
- #23635 release: publish Codex package archive checksums @bolinfest
- #23592 feat: Add btw alias for side slash command @anp-oai
- #23696 feat: account active goal progress in the goal extension @jif-oai
- #23176 [2 of 2] Start fresh TUI thread in background @etraut-openai
- #23578 fix(app-server): speed up shutdown @fcoury-oai
- #22896 windows-sandbox: add resolved permissions helper @bolinfest
- #23502 Add thread/settings/update app-server API @etraut-openai
- #23507 Sync TUI thread settings through app server @etraut-openai
- #23666 feat: add turn_id and truncation_policy to extension tool calls @jif-oai
- #23636 install: consume Codex package archives @bolinfest
- #23717 [codex] Preserve failed goal accounting flushes @jif-oai
- #23655 add standalone websearch api client @sayan-oai
- #23724 Fix thread settings clippy failure @etraut-openai
- #23637 npm: ship platform packages in Codex package layout @bolinfest
- #23729 fix(config): resolve cloud requirements deny-read globs @viyatb-oai
- #23638 dotslash: publish Codex entrypoints from package archives @bolinfest
- #22918 windows-sandbox: send permission profiles to elevated runner @bolinfest
- #23735 windows-sandbox: share bundled helper lookup @bolinfest
- #18868 Add MITM hook config model @evawong-oai
- #22270 feat(permissions): resolve permission profile inheritance @viyatb-oai
- #23719 cli: add strict config to exec-server @bolinfest
- #23542 [skills] Create a personal update flow for plugin creator @caseychow-oai
- #21272 Support compact SessionStart hooks @abhinav-oai
- #20659 Wire MITM hooks into runtime enforcement @evawong-oai
- #23752 release: use DotSlash zstd for package archives @bolinfest
- #22923 windows-sandbox: drive write roots from resolved permissions @bolinfest
- #23761 chore: use Codex Linux runners for Rust releases @bolinfest
- #23759 release: package prebuilt resource binaries @bolinfest
- #23167 windows-sandbox: feed setup from resolved permissions @bolinfest
- #22931 core: refresh active permission profiles at runtime @viyatb-oai
- #22873 Add SubagentStop hook @abhinav-oai
- #23727 feat(plugins): tabulate plugin list output @caseychow-oai
- #23732 Make goals feature on by default and no longer experimental @etraut-openai
- #23537 Honor client-resolved service tier defaults @shijie-oai
- #23771 [codex] Fix realtime v1 websocket compatibility @guinness-oai
- #23764 Remove Windows sandbox resource stamping @iceweasel-oai
- #23730 [codex] List marketplaces considered by plugin discovery @caseychow-oai
- #23760 ci: run Codex package builder tests @bolinfest
- #23737 [codex] Add plugin id to MCP tool call items @mzeng-openai
- #18240 Use named MITM permissions config @evawong-oai
- #23774 [codex] Reject read-only fallback with approvals disabled @viyatb-oai
- #23714 windows-sandbox: add profile-native elevated APIs @bolinfest
- #23433 feat: support managed permission profiles in requirements.toml @viyatb-oai
- #23715 core: pass permission profiles to Windows runner @bolinfest
- #23786 sdk: launch packaged Codex runtimes @bolinfest
Improvements to Cursor Automations
This release brings Cursor Automations to the Agents Window and introduces the ability to configure automations with multiple attached repos or no repos at all.
For the next 7 days, all agent runs for newly created automations are 50% off.
Automations in the Agents Window
Cursor Automations are now available in the Agents Window, in addition to cursor.com/automations. Create and manage your automations in the same workspace as your agents.
Multi-repo automations
A lot of engineering work spans more than one codebase. You can now attach multiple repos to an automation so agents reason across all required context and work across repos to deliver, test, and verify tasks.
No-repo automations
Many useful automations exist apart from code, where agents monitor your tools and act on key signals. You can now create automations without an attached repository.
We've added five new templates for no-repo automations to the Cursor Marketplace to help you get started:
- **Slack digest agent**: Summarizes unread DMs and key Slack channels every morning and prioritizes them by importance
- **Product analytics agent**: Delivers a weekly digest of key metrics from your data warehouse like Databricks
- **Product FAQ agent**: Watches a Slack channel for questions and writes a first response based on docs, codebase context, and past threads
- **Product finance agent**: Pulls financial data from a billing provider like Stripe for recurring revenue reports
- **Customer health agent**: Monitors key systems like Granola, Slack, and Databricks and flags accounts where health signals are shifting
Read our docs to learn more.
Codex CLI Release: 0.132.0
New Features
- The Python SDK now supports first-class authentication, including API key login, ChatGPT browser and device-code flows, account inspection, and logout APIs. (#23093)
- Python turn APIs are easier to use for text-only workflows: you can pass a plain string as input, and handle-based runs now return a richer
TurnResultwith collected items, timing, and usage data. (#23151, #23162) codex exec resumenow accepts--output-schema, so resumed automations can keep session context while still enforcing structured JSON output. (#23123)- TUI startup is faster because terminal capability probes are now batched instead of waiting on several serial checks before the first interactive frame. (#23175)
- Remote executor registration can now use standard Codex auth instead of a separate registry credential flow. (#22769)
- App-server turns can preserve requested image fidelity, including original-resolution local images, across user inputs and image-producing tools. (#20693)
Bug Fixes
- Goal continuations now stop when they hit usage limits or a repeated blocker instead of looping and burning more tokens, and completion responses phrase usage more naturally. (#23094, #22907)
- The session picker is easier to trust: renamed threads now show
name (thread-id)in resume hints, and pasted text works in the picker search box. (#23234, #23338) - Multi-session TUI flows are more reliable: in-progress MCP calls stay marked as active during replay, and elicitation replies are sent back to the thread that requested them. (#23236, #23241)
- Remote sessions now keep websocket connections alive and show repo-relative diff paths again instead of
/tmp/...-prefixed paths. (#23226, #23261) - Windows installs are more robust:
codex doctornow detects npm-managed installs correctly, and MSVC release binaries no longer depend on separately installed VC++ runtime DLLs. (#22967, #22905) - TUI polish fixes include immediate shutdown feedback on exit, hiding the ChatGPT usage link for non-OpenAI providers, and keeping a cleared Fast tier from reappearing after side-thread resume. (#23323, #23127, #23121)
Documentation
- The Python SDK docs, FAQ, and examples were refreshed around the new auth flow and turn APIs, with clearer setup guidance and simpler text-only examples. (#22941, #23093, #23151, #23162)
Chores
- Memory summaries are now versioned and rebuilt when the stored format is stale, which should keep long-lived memory context leaner and more predictable. (#23148)
Changelog
Full Changelog: rust-v0.131.0...rust-v0.132.0
- #20693 Preserve image detail in app-server inputs @fjord-oai
- #22891 tui: pass active permission profiles through app commands @bolinfest
- #22924 app-server-protocol: remove PermissionProfile from API @bolinfest
- #22941 [codex] Refine Python SDK user-facing docs @aibrahim-oai
- #22967 Fix Windows doctor npm root probe @etraut-openai
- #22920 core: set permission profiles from snapshots @bolinfest
- #22939 [codex] Split Python SDK helper logic @aibrahim-oai
- #22907 Improve goal completion usage reporting @etraut-openai
- #23030 test: construct permission profiles directly @bolinfest
- #22769 exec-server: support auth-backed remote executor registration @miz-openai
- #22946 [codex] preserve MCP result meta in McpToolCallItemResult @miaolin-oai
- #23069 multiagent: trim model-visible description, cap to 5 models @sayan-oai
- #22913 [1 of 4] tui: route primary settings writes through app server @etraut-openai
- #23093 sdk/python: add first-class login support @aibrahim-oai
- #23151 [codex] Return TurnResult from Python turn handles @aibrahim-oai
- #23147 Make multi-agent v2 tool namespace configurable @jif-oai
- #23036 test: reduce core sandbox policy test setup @bolinfest
- #23162 [codex] Accept string input for Python turns @aibrahim-oai
- #23226 Add exec-server websocket keepalive @starr-openai
- #23148 Densify and version memory summaries @jif-oai
- #22448 [codex] Add installed-plugin mention API @xli-oai
- #23288 chore: goal ext skeleton @jif-oai
- #23291 Make extension lifecycle hooks async @jif-oai
- #23293 feat: add extension event sink capability @jif-oai
- #23295 chore: isolate thread goal storage behind GoalStore @jif-oai
- #23301 chore: goal resumed metrics @jif-oai
- #23305 chore: make token usage async @jif-oai
- #23306 Emit goal update events from goal extension tools @jif-oai
- #23121 tui: keep cleared Fast tier from reappearing after side-thread resume @etraut-openai
- #23123 Support --output-schema for exec resume @etraut-openai
- #23128 Fix TUI stream cleanup after turn errors @etraut-openai
- #23127 Hide ChatGPT usage link for non-OpenAI status @etraut-openai
- #23175 [1 of 2] Optimize TUI startup terminal probes @etraut-openai
- #22706 [codex] Remove legacy shell output formatting paths @pakrym-oai
- #23332 nit: read prompt @jif-oai
- #22905 windows: link MSVC release binaries with static CRT @iceweasel-oai
- #23323 fix(tui): show shutdown feedback on exit @fcoury-oai
- #23261 Fix remote turn diff display roots @starr-openai
- #22569 Simplify legacy Windows sandbox ACL persistence @iceweasel-oai
- #23273 Upload rust full CI JUnit reports @starr-openai
- #22893 fix: harden plugin creator sharing validation @efrazer-oai
- #23094 goal: pause continuation loops on usage limits and blockers @etraut-openai
- #23234 Clarify resume hints for renamed threads @etraut-openai
- #23241 TUI: route elicitation responses to request thread @etraut-openai
- #23236 TUI: replay in-progress MCP calls as started @etraut-openai
- #23088 goals: keep pause transitions explicit @etraut-openai
- #23338 feat(tui): handle paste in session picker @fcoury-oai
- #23335 feat(app-server): add optional thread_id to experimentalFeature/list @owenlin0
v2.1.145
What's changed
- Added
claude agents --jsonto list live Claude sessions as JSON for scripting (tmux-resurrect, status bars, session pickers) - Added
agent_idandparent_agent_idattributes toclaude_code.toolOTEL spans, and fixed trace parenting so background subagent spans nest under the dispatching Agent tool span - Status line JSON input now includes GitHub repo and PR information when detected
/pluginDiscover and Browse screens now show a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installationclaude agentsterminal tab title now shows the awaiting-input count so an alt-tabbed window tells you when an agent needs attention- Slash command and @-mention suggestion list now supports mouse hover and click in fullscreen mode
- Stop and SubagentStop hook input now includes
background_tasksandsession_cronsfields - Fixed a permission-prompt bypass where bare variable assignments to non-allowlisted environment variables in Bash commands were auto-approved
- Fixed MCP prompt slash commands showing raw server validation errors when a required argument is omitted — the error now names the missing argument and shows expected usage
- Fixed the spinner and elapsed-time display freezing until a keypress after the terminal was resized or refocused
- Fixed the cross-project resume hint failing in default Windows PowerShell 5.1 — Windows now uses
;as the command separator - Fixed voice push-to-talk not working in the agent view's reply pane
- Fixed task lists rendering in random order when several tasks are created at once
- Fixed stale "Failed to install Anthropic marketplace" banner showing when the marketplace is already installed
- Fixed the PR badge in the footer not updating immediately after
gh pr createand other PR-state-changing commands run in-session - Fixed Agent Teams teammates with non-ASCII names failing every API call due to invalid header encoding
- Fixed
/reviewusing a deprecatedprojectCardsGraphQL query that errored on repos with Classic Projects - Fixed
claude plugin validatenot flaggingskills:entries that point at a file instead of a directory — the error now suggests the parent directory - Fixed an infinite loop where a skill using
context: forkcould repeatedly re-invoke itself instead of running - Improved the Read tool to return a truncated first page with a "PARTIAL view" notice instead of a hard error when a whole-file read exceeds the token limit
v2.1.144
What's changed
- Added
/resumesupport for background sessions — sessions started viaclaude --bgor agent view now appear alongside interactive ones, marked withbg - Added elapsed duration to background subagent completion notifications (e.g. "Agent completed · 3h 2m 5s")
- The
/pluginbrowse and discover panes now show when a plugin was last updated /modelnow changes the model for the current session only; pressdin the model picker to set a default for new sessions- Renamed "extra usage" to "usage credits" across CLI copy;
/extra-usageis now/usage-credits(old name still works) - Fixed startup hanging up to 75s when
api.anthropic.comis unreachable (captive portal, firewall, VPN issues) — side-channel API calls now time out after 15s - Fixed garbled terminal output after a missed window-resize event (e.g. dragging a VS Code split-pane divider) — now self-heals on the next frame instead of requiring Ctrl+L
- Fixed progressive terminal display corruption (stale/garbled glyphs) that could appear in very long sessions and only cleared on terminal resize or restart
- Reduced terminal rendering glitches in VS Code by reducing spinner animation color count
- Fixed macOS background sessions crashing with "exit 1 before init" when the project lives under a Full Disk Access-protected folder (regression in 2.1.143)
- Fixed an unrecoverable conversation when reading a file whose image extension doesn't match its contents (e.g. HTML saved as .png) — now falls back to text
- Fewer spurious tool errors during search:
head/tailfile views now satisfy the read-before-edit check, and a "no matches" result (exit code 1) fromegrep,fgrep,git grep, orgit diffis no longer reported as a command failure - Fixed
/branchfailing with "No conversation to branch" after entering a worktree or in some background sessions - Fixed pressing Escape in the AskUserQuestion notes field aborting the turn instead of returning to answer selection
- Fixed model selection not applying when changed via the IDE model picker or
applyFlagSettingsafter startup - Resumed sessions now keep the model they were using instead of picking up another session's
/modelchoice - Fixed Bedrock and Vertex users unable to select "Opus (1M context)" from the
/modelpicker (regression in v2.1.129) - Fixed remote-session login failing with "Can't access this organization" for users with
forceLoginMethodandforceLoginOrgUUIDset - Fixed MCP servers with paginated
tools/listresponses only returning the first page, silently dropping tools - Fixed MCP images with unsupported MIME types (e.g. SVG) breaking the conversation — now saved to disk and referenced in the tool result
- Fixed file descriptor exhaustion when a build runs inside a skill directory — non-
.mdfiles no longer trigger skill reloads - Fixed session title being generated from plugin monitor output instead of the user's first prompt
- Fixed Skill tool failing with permission error in headless mode (regression in v2.1.141)
- Fixed plugins enabled in your own settings showing "not cached" errors after first load on a fresh machine; plugins enabled only by a project's
.claude/settings.jsonnow show an actionableclaude plugin installhint - Fixed
claude mcp listsilently reporting no servers when.mcp.jsoncan't be parsed (e.g. using VS Code's"servers"key instead of"mcpServers") — now shows configuration errors - Fixed background side-queries on custom
ANTHROPIC_BASE_URLsetups and Bedrock Mantle not using Haiku — now falls back correctly when a first-party API key is configured or no Haiku model is set - Fixed scrolling in attached background sessions on Windows — PgUp/PgDn, mouse wheel, and Ctrl+O transcript navigation now work
- Fixed a crash when closing the terminal while attached to a background session
- Fixed
! <cmd>exec sessions not responding to Ctrl+C while attached — now interrupts the running command - Fixed agent view shell-command rows lingering under Working after completion, and pressing Enter on a completed row re-running the command after its output expired
- Fixed on Windows, pressing ← in
claude agentsleaving the list unresponsive to keyboard input - Fixed ghost characters at the left edge when switching panes in Agent View on Windows Terminal with CJK content
/bgand←-detach now preserve directories added via/add-dir- Fixed Edit/Write refusing with "background session hasn't isolated its changes yet" right after detaching a session that was already editing in place
- Fixed
claude respawn <id>on a stopped background session showing "stopped" instead of running - Fixed
/resumepicker not showing sessions forked from a background session - Fixed opening a session from
claude agentsor runningclaude logs <id>hanging when the background service is unresponsive — now times out after 10s with a recovery hint - Fixed background Bash tasks spawned by subagents staying "Running" in SDK task panels after the process exits
- Fixed completed or stopped background sessions briefly failing to wake being permanently marked as a startup crash
- Fixed markdown links in
claude agentsattached sessions rendering as plain text instead of clickable hyperlinks - Fixed custom
spinnerVerbsapplying to the post-turn duration message — past-tense built-ins like "Worked for 5s" are restored there claude agents/--bgrejection messages now name the specific gate (non-TTY, env var, or setting) instead of a generic messageclaude --bg --name <label>now echoes the name in the post-spawn confirmationclaude agents: renaming a background session with Ctrl+R now updates the attached session's banner immediately- Background session worktree isolation guard now applies for non-git VCS users with
WorktreeCreatehooks configured - Plugin marketplace add/update now respects
CLAUDE_CODE_PLUGIN_PREFER_HTTPS /pluginnow returns to the Installed list after enabling, disabling, or uninstalling a plugin/doctornow shows an exec-form example when a command hook is missing thecommandfield- Skill-listing truncation is no longer shown as a startup notification — run
/doctorfor the full breakdown - Improved recovery from rare pre-response stream stalls — now retries streaming once instead of falling back to a slower non-streaming request
- Improved SDK/headless MCP startup: pre-wait now overlaps startup instead of blocking before the first turn (up to 2s faster with slow MCP servers)
- The post-survey follow-up hint now appears after every non-dismiss survey response with context-aware copy, making it easier to share more detail via /feedback.
Cursor in Jira
Cursor is now available in Jira.
Assign work items to Cursor, or mention `@Cursor` in a comment to kick off a cloud agent. Cursor uses the work item title, description, comments, and your team's repository settings to scope the task.
You can ask Cursor to fix bugs, add features, update tests, or investigate something described in the ticket. When the agent finishes, Jira shows completion updates and includes a link to the pull request.
Install the integration from Cursor integrations. You need Cursor admin access and Jira Commercial Cloud with Rovo enabled. Learn more in our docs.
Composer 2.5
Composer 2.5 is now available in Cursor.
It's a substantial improvement in intelligence and behavior over Composer 2. It is better at sustained work on long-running tasks, follows complex instructions more reliably, and is more pleasant to collaborate with.
Composer 2.5 benchmark results
- **Standard:** \$0.50/M input, \$2.50/M output tokens
- **Fast** (default): \$3.00/M input, \$15.00/M output tokens
Composer 2.5 includes double usage for the first week. See our model docs for full details.
Read more in our announcement.

Codex CLI Release: 0.131.0
New Features
-
The TUI now offers richer session controls and display: data-driven service-tier commands, blended token usage, permissions/approval mode, effective workspace roots, and responsive Markdown tables. (#21745, #21906, #21991, #21669, #21677, #22052, #22612)
-
@mentions now search files, directories, plugins, and skills in one picker, backed by app-server plugin metadata. (#19068, #22375) -
Plugin workflows gained marketplace CLI commands, version-aware sharing, share checkout, clearer shared-workspace buckets, and default-enabled plugin hooks. (#21396, #22397, #22425, #22435, #22549)
-
Remote workflows now support daemon-managed
codex remote-control, runtime enable/disable APIs, status reads, and registry-backed/configured remote environments. (#20718, #22218, #22562, #22578, #22877, #20667, #21323) -
The Python SDK moved to
openai-codex/openai_codex, with pinned runtime-generated types, concurrent turn routing, approval modes, and integration coverage. (#21778, #21891, #21893, #21896, #21905, #21910, #22014) -
Added
codex doctorfor support-ready diagnostics across runtime, auth, terminal, network, config, and local state. (#22336)
Bug Fixes
-
Fixed several TUI interaction and rendering issues, including URL wrapping, light-mode selection contrast, Shift+Enter in tmux,
/reviewMCP startup status,/sideEsc handling, and network approval history text. (#21760, #21950, #21943, #21624, #22710, #22229) -
Hardened Windows sandbox behavior around deny-read rules, scoped write roots, ineffective firewall policy, and PowerShell edge cases. (#18202, #21479, #22353, #21400, #22643)
-
Preserved managed read restrictions during permission escalation and cleaned up workspace-root permission profile resolution. (#15977, #22624, #22683)
-
Made app-server and local state startup safer by preserving SQLite data, failing closed when state cannot open, adding recovery paths, and softening optional metadata sync failures. (#21831, #21847, #22580, #22734, #22899)
-
Improved Git and auth reliability by using root worktree hooks consistently, ignoring repo hook/fsmonitor config in helper commands, binding local MCP OAuth callbacks, and revoking superseded login tokens. (#21969, #22843, #22652, #20237, #21747)
-
Reduced remote and Windows cleanup friction with longer exec-server transport timeouts, quieter
taskkillcleanup, and non-queued plugin reads. (#21825, #21759, #22058, #22703)
Documentation
-
Clarified that general Codex product docs should not be added to this repo, while app-server API docs remain in scope. (#21772)
-
Updated plugin-creator guidance for the simplified local plugin handoff links. (#22240)
-
Documented new app-server/API contracts for remote environments and the desktop-owned config namespace. (#21323, #22584)
Chores
-
Improved CI and release reliability across Rust CI, exact PR-head checkout, Windows Bazel sharding, unsigned macOS artifacts, and signed macOS promotion. (#21604, #21628, #21835, #22408, #22559, #22649, #22737, #22788, #22900)
-
Split large TUI ChatWidget, history, and composer code into focused modules without intended behavior changes. (#21866, #22269, #22407, #22433, #22518, #22537, #22704, #22581, #22656)
-
Continued extracting extension and tool internals, including shared tool contracts plus guardian and memory extension plumbing. (#21736, #21737, #21738, #22138, #22147, #22216, #22258, #22344, #22476, #22480, #22485, #22498)
-
Removed obsolete tool paths, feature flags, config gates, and legacy hooks as defaults stabilized. (#21651, #21805, #22173, #22246, #22565, #22711, #22717, #22724, #22730)
Changelog
Full Changelog: rust-v0.130.0...rust-v0.131.0
-
#21550 [codex] make shutdown pending-touch test deterministic @jif-oai
-
#21697 Allow string service tiers in config TOML @aibrahim-oai
-
#21687 [codex] Enable apply_patch freeform by default @aibrahim-oai
-
#19896 Update models.json @github-actions
-
#21669 Display blended token count in status line @etraut-openai
-
#21677 Show permissions and approval mode in the TUI status line @etraut-openai
-
#21757 api: send hyphenated session and thread headers @jif-oai
-
#21749 codex-otel: validate provider span attributes consistently @bbrown-oai
-
#21443 [sandboxing] Remove Darwin user cache write from Seatbelt network policy @evawong-oai
-
#21604 Fix
rust-ci-fullfailures due to missingbwrap@zanie-oai -
#21628 Use
CARGO_NET_GIT_FETCH_WITH_CLIinrust-ci-fullfor more reliable git fetches @zanie-oai -
#21745 [codex] Generalize service tier slash commands @aibrahim-oai
-
#21772 Clarify docs folder guidance in AGENTS.md @etraut-openai
-
#21662 feat: Use installation ID in remote enrollments @ddr-oai
-
#20667 Load configured environments from CODEX_HOME @starr-openai
-
#21776 Update models.json @github-actions
-
#21787 Support resource binaries in Python runtime staging @aibrahim-oai
-
#21784 Publish Python runtime wheels on release @aibrahim-oai
-
#21601 Emit accepted line fingerprint analytics @alexsong-oai
-
#21465 Remove ToolName display helper @pakrym-oai
-
#20619 [codex] request desktop attestation from app @jiamingz42
-
#21810 Revert "Publish Python runtime wheels on release" @aibrahim-oai
-
#21651 [codex] Delete function-style apply_patch @pakrym-oai
-
#21805 [codex] Remove legacy after tool use hooks @pakrym-oai
-
#21616 Enable
--deny-warningsforcargo shear@charliemarsh-oai -
#21497 Using cached connector directory for discoverable tools list @mzeng-openai
-
#21835 ci: check out PR head commits in workflows @bolinfest
-
#21794 Make environment provider snapshots path-free @starr-openai
-
#21831 app-server: support daemon-safe restart handling @euroelessar
-
#21323 [codex] support executor registry remote environments @miz-openai
-
#21825 Increase exec-server environment transport timeouts @starr-openai
-
#20718 [daemon] Add app-server daemon lifecycle management @euroelessar
-
#21840 feat: add Bedrock Mantle client agent header @celia-oai
-
#21652 Reapply "Move skills watcher to app-server" @pakrym-oai
-
#21290 Move file watcher out of core @pakrym-oai
-
#21867 feat: Add role-aware plugin share context APIs @xl-openai
-
#21875 [codex] compact network context rendering @sayan-oai
-
#21778 Route Python SDK turn notifications by ID @aibrahim-oai
-
#21906 [codex] Lowercase TUI service tier commands @aibrahim-oai
-
#21819 tests: cover sandbox link write behavior @bolinfest
-
#21760 fix(tui): preserve wrapped prose beside URLs @fcoury-oai
-
#21950 fix(tui): improve light-mode selection contrast @fcoury-oai
-
#21755 Improve hooks trust flow in TUI @abhinav-oai
-
#21870 Avoid blocking TUI on agent metadata hydration @etraut-openai
-
#21866 Split ChatWidget state into focused modules @etraut-openai
-
#21991 Persist 'priority' service tier as fast in config @aibrahim-oai
-
#21943 fix(tui): preserve Shift+Enter in tmux csi-u panes @fcoury-oai
-
#21759 fix(tui): suppress taskkill output for MCP teardown on Windows @fcoury-oai
-
#22039 Deduplicate issue digest interactions by user @etraut-openai
-
#22052 feat(tui): render responsive Markdown tables in TUI @fcoury-oai
-
#20825 Read cached metadata for installed Git plugins @xli-oai
-
#21737 extension: wire extension registries into sessions @jif-oai
-
#21738 extension: move git attribution into an extension @jif-oai
-
#22138 refactor: extract executable tool contracts into codex-tool-api @jif-oai
-
#22143 [codex] default unknown contributed tools to mutating @jif-oai
-
#21860 Persist /goal commands in history @etraut-openai
-
#22141 [codex] Harden overflow auto-compaction recovery @aibrahim-oai
-
#22170 Revert "[codex] Harden overflow auto-compaction recovery" @aibrahim-oai
-
#22106 Fix side conversation config inheritance @etraut-openai
-
#22045 Improve goal continuation based on feedback @etraut-openai
-
#21981 Use goal preview metadata for goal-first threads @etraut-openai
-
#21843 app-server: remove TCP websocket listener @euroelessar
-
#21954 Fix goal update and add
/goal editcommand in TUI @etraut-openai -
#22110 Make auto-review denial short-circuit use a rolling review window @won-openai
-
#21431 [codex-analytics] add turn tool counts to turn events @rhan-oai
-
#19068 Unified mentions in TUI @canvrno-oai
-
#20305 fix(exec-policy) use is_known_safe_command less @dylan-hurd-oai
-
#22058 fix(exec-server): suppress Windows taskkill output @fcoury-oai
-
#22178 fix(app-server): thread history redaction for remote clients @owenlin0
-
#15977 fix(permissions): preserve managed deny-read during escalation @viyatb-oai
-
#21061 feat(connectors): support managed app tool approval requirements @viyatb-oai
-
#22188 [elicitation] Advertise new url elicitation capability when auth_elicitation is enabled. @mzeng-openai
-
#22192 config: accept
minusin TUI keymap config @fcoury-oai -
#21853 daemon: refresh updater after validated binary rollout @euroelessar
-
#21747 [login] revoke superseded auth tokens on relogin @cooper-oai
-
#20147 feat: add network proxy feature flag @viyatb-oai
-
#21891 [1/8] Pin Python SDK runtime dependency @aibrahim-oai
-
#21893 [2/8] Generate Python SDK types from pinned runtime @aibrahim-oai
-
#21895 [3/8] Run Python SDK tests in CI @aibrahim-oai
-
#21896 [4/8] Define Python SDK public API surface @aibrahim-oai
-
#21905 [5/8] Rename Python SDK package to openai-codex @aibrahim-oai
-
#21910 [6/8] Add high-level Python SDK approval mode @aibrahim-oai
-
#22014 [7/8] Add Python SDK app-server integration harness @aibrahim-oai
-
#22021 [8/8] Add Python SDK Ruff formatting @aibrahim-oai
-
#18748 [codex-analytics] emit terminal review events @rhan-oai
-
#22159 Add Windows hook command overrides @abhinav-oai
-
#22218 Update codex remote-control to start the daemon @owenlin0
-
#22180 Stop uploading accepted line fingerprints @alexsong-oai
-
#21617 Support multi-environment apply_patch selection @starr-openai
-
#22198 Add production startup and TTFT telemetry @mzeng-openai
-
#21963 [exec-server] serve websocket listener via HTTP upgrade @euroelessar
-
#21946 fix(tui): handle hidden app git directives @fcoury-oai
-
#21595 Simplify MCP tool handler plumbing @pakrym-oai
-
#22221 feat(skills): default plugin creator to personal share flow @efrazer-oai
-
#21861 Apply sandbox context to local view_image reads @starr-openai
-
#20527 Support PreToolUse updatedInput rewrites @abhinav-oai
-
#22243 [codex] Filter legacy warning messages during compaction @pakrym-oai
-
#22254 [codex] Make handlers own parallel tool support @pakrym-oai
-
#18202 feat(sandbox): add Windows deny-read parity @viyatb-oai
-
#22265 feat: Normalize remote plugin summary identities. @xl-openai
-
#22216 feat: guardian as an extension (contributors part) @jif-oai
-
#22311 [rollout-trace] Add x-codex-inference-call-id header to inference calls. @cassirer-openai
-
#21206 feat(tui): add ambient terminal pets @fcoury-oai
-
#22207 [codex] Tighten unified exec sandbox setup @bookholt-oai
-
#22382 tools: remove is_mutating dispatch gating @pakrym-oai
-
#22383 chore(config) include_collaboration_mode_instructions @dylan-hurd-oai
-
#22377 code-mode: carry nested tool kind through runtime @pakrym-oai
-
#22392 test(tui): relax configured pet load timeout @fcoury-oai
-
#22343 feat(exec-server): use protobuf relay frames @apanasenko-oai
-
#20509 [codex] Remove workspace owner usage nudge gate @richardopenai
-
#22256 Refactor namespaced tool spec registration @pakrym-oai
-
#22280 code-mode: Add pending-aware code mode execution @cconger
-
#22266 core: box multi-agent handler futures @bolinfest
-
#22398 [codex] Add search term coverage for tool_search @pakrym-oai
-
#22236 Unify thread metadata updates above store @wiltzius-openai
-
#22269 Refactor chatwidget state into modules @etraut-openai
-
#22381 [codex] Remove tool search bucket limit override @sayan-oai
-
#22240 docs(skills): simplify plugin creator deeplink shape @efrazer-oai
-
#22397 feat: Expose plugin versions and gate plugin sharing @xl-openai
-
#22404 Restore app-server websocket listener with auth guard @etraut-openai
-
#22258 feat: route guardian review model selection through providers @celia-oai
-
#22268 hooks: use new session IDs instead of thread IDs for hooks, apply parent's session ID to subagents' hooks @eternal-openai
-
#20319 Add allow_managed_hooks_only hook requirement @eternal-openai
-
#22413 Remove CODEX_RS_SSE_FIXTURE test hook @pakrym-oai
-
#22406 tools: infer code-mode namespace descriptions from specs @pakrym-oai
-
#22261 Encapsulate tool search entries in handlers @pakrym-oai
-
#22425 feat: Split shared workspace plugins by discoverability @xl-openai
-
#22414 Add support for UDS in
codex --remote@etraut-openai -
#22407 Refactor chatwidget input flow into modules @etraut-openai
-
#22439 Remove unavailable MCP placeholder tool backfill @sayan-oai
-
#21969 Use root repo hooks in linked worktrees @abhinav-oai
-
#21768 add --dangerously-bypass-hook-trust CLI flag @abhinav-oai
-
#22435 feat: Add plugin share checkout @xl-openai
-
#22355 chore: Keep view_image sandbox test in temp dir @jif-oai
-
#22344 extension-api: add approval review contributor flow @jif-oai
-
#22359 feat: extract shared tool executor interface @jif-oai
-
#22369 Refactor extension tools onto shared ToolExecutor @jif-oai
-
#22338 [app-server] Gate login issuer override constant @cassirer-openai
-
#22437 [codex] isolate plugin/list from config serialization queue @xli-oai
-
#22476 feat: add thread lifecycle contributor hooks @jif-oai
-
#22482 fix: emit thread stop lifecycle on implicit shutdown @jif-oai
-
#22443 Scope macOS signing secrets to release environment @shijie-oai
-
#22490 feat: move extension scope ids into ExtensionData @jif-oai
-
#22214 feat(tui): remove Zellij TUI workarounds @fcoury-oai
-
#22139 Add service tier overrides to spawned agents @aibrahim-oai
-
#22488 feat: add config-change extension contributor @jif-oai
-
#22347 feat(tui): standardize picker navigation keys @fcoury-oai
-
#22500 refactor: split memories extension crate modules @jif-oai
-
#22433 Refactor chatwidget protocol flows into modules (phase 3) @etraut-openai
-
#22505 fix: prevent fmt from updating Python SDK lockfile @jif-oai
-
#22326 [rollout-trace] Add a trace ID to MCP calls. @cassirer-openai
-
#20559 config: add strict config parsing @bolinfest
-
#22489 Introduce tool exposure for deferred registration @jif-oai
-
#22246 [codex] Remove unused legacy shell tools @pakrym-oai
-
#22520 revert: mark Feature::RemoteControl as removed @owenlin0
-
#22513 Revert "Scope macOS signing secrets to release environment" @shijie-oai
-
#22514 feat: expose multi-agent v2 as model-only tools @jif-oai
-
#22366 Pass Codex product SKU to ChatGPT backend @ericning-o
-
#22519 Deprecate TurnContext cwd and resolve_path @pakrym-oai
-
#22518 Refactor chatwidget settings surfaces into modules (phase 4) @etraut-openai
-
#21479 [codex] Scope Windows sandbox write-root capability SIDs @adrianbravo-oai
-
#22353 windows-sandbox: fail elevated setup when firewall policy is ineffective @iceweasel-oai
-
#22527 [codex] Reuse Apps MCP path override for plugin-service rollout @adaley-openai
-
#22412 chore(config) rm Feature::CodexGitCommit @dylan-hurd-oai
-
#22501 chore(config) rm tools.view_image @dylan-hurd-oai
-
#22533 fix: prevent codex-backend from stealing originator @owenlin0
-
#22408 Shard Bazel Windows tests across jobs @starr-openai
-
#22542 Use selected environment cwd for filesystem helpers @pakrym-oai
-
#20237 Add callback ids to local MCP OAuth redirects @stevenlee-oai
-
#22549 Enable plugin hooks by default @abhinav-oai
-
#22375 Use plugin/list to get list of plugins for mentions @canvrno-oai
-
#21235 [codex] Fix TUI wrapping for external borrowed slices @canvrno-oai
-
#22336 feat(cli): add codex doctor diagnostics @fcoury-oai
-
#22543 clean up instructions @sayan-oai
-
#21400 Avoid PowerShell profiles in elevated Windows sandbox @iceweasel-oai
-
#22528 Make multi_agent_v2 wait_agent timeouts configurable @andmis
-
#22529 Spill oversized PreToolUse additionalContext @abhinav-oai
-
#22535 Remove resurrected
/collabslash command @etraut-openai -
#22537 Refactor chatwidget orchestration into modules (phase 5) @etraut-openai
-
#22564 [codex] Canonicalize shared workspace plugin IDs @xl-openai
-
#22559 Add unsigned macOS release artifacts @shijie-oai
-
#22574 Deprecate issue labeler @maxb-openai
-
#22555 Remove connector_openai prefix filtering @ericning-o
-
#22580 fix: Block appserver startup if state db can't be opened @ddr-oai
-
#22565 chore(config) rm experimental_use_freeform_apply_patch @dylan-hurd-oai
-
#22578 enable/disable remote control at runtime, not via features @owenlin0
-
#22573 Simplify TUI startup test coverage @etraut-openai
-
#22587 Defer startup NUX impressions until startup succeeds @etraut-openai
-
#22494 Wire turn item contributors into stream output @jif-oai
-
#22643 [codex] treat PowerShell stop-parsing forms as unsupported @bookholt-oai
-
#22624 permissions: canonicalize workspace_roots and danger-full-access names @bolinfest
-
#22649 Chore: better published unsigned artifacts @shijie-oai
-
#22581 tui: split composer attachment and popup state @etraut-openai
-
#21396 [codex] add plugin marketplace CLI commands @caseychow-oai
-
#22576 tests: avoid ambient temp sandbox roots @starr-openai
-
#22652 [codex] Ignore fsmonitor config in Git metadata reads @bookholt-oai
-
#22229 fix(tui): render network approval history by target @fcoury-oai
-
#22547 Prefer the model list fetched from the backend for SIWC users @jeevnayak
-
#22666 [codex] fix plugin CLI active user layer compile @caseychow-oai
-
#22575 Support explicit MCP OAuth client IDs @mzeng-openai
-
#22512 test: isolate exec review policy config test @bolinfest
-
#22572 Fix remote environment test fixtures @starr-openai
-
#22563 tests: isolate codex home for live cli @starr-openai
-
#18161 [codex] Support multiple forced ChatGPT workspaces @rreichel3-oai
-
#22702 make rust-release-prepare use env secret @sayan-oai
-
#22687 Fix Windows sandbox clippy clones @starr-openai
-
#22711 chore(features) rm Feature::ApplyPatchFreeform @dylan-hurd-oai
-
#22717 chore(config) rm windows_wsl_setup_acknowledged @dylan-hurd-oai
-
#22695 Trim TUI legacy core helper usage @etraut-openai
-
#21624 Fix /review mode MCP startup render issue @canvrno-oai
-
#22684 Remove SSE fixture loaders @pakrym-oai
-
#22730 [codex] Group removed feature flags @dylan-hurd-oai
-
#22724 [codex] Remove experimental instructions file config @dylan-hurd-oai
-
#22237 Add
user_input_requested_during_turnto MCP turn metadata @mchen-oai -
#22737 ci: support signed macOS release promotion @bolinfest
-
#22303 Stabilize compact rollback follow-up test @dylan-hurd-oai
-
#22683 permissions: resolve profile identity with constraints @bolinfest
-
#22734 tui: recover local state db startup failures @etraut-openai
-
#22584 [codex] Add opaque desktop config namespace @guinness-oai
-
#22710 Prevent Esc from dismissing or rewinding
/side@etraut-openai -
#22704 TUI: split history cells into focused modules @etraut-openai
-
#22611 app-server: use permission ids and runtime workspace roots @bolinfest
-
#22612 tui/exec: show effective workspace roots in summaries @bolinfest
-
#22788 Fix signed macOS release promotion follow-up jobs @shijie-oai
-
#22647 Reject legacy [profiles] when using profile-v2 @jif-oai
-
#22809 [codex] Use compaction_trigger item for remote compaction v2 @jif-oai
-
#22636 Simplify tool executor and registry plumbing @jif-oai
-
#22841 Move memory prompt injection to app-server extension @jif-oai
-
#22789 guardian: use permission profile for review sandbox @bolinfest
-
#22656 tui: split remaining composer draft and footer state @etraut-openai
-
#22843 Ignore configured hooks in git helpers @bookholt-oai
-
#22790 context: remove legacy permissions instructions helper @bolinfest
-
#22791 telemetry: tag sandboxes from permission profiles @bolinfest
-
#22872 Forward apps MCP product SKU from Codex config @kumquatexpress
-
#22582 Workflow updates @viyatb-oai
-
#22792 app-server: stop returning thread permission profiles @bolinfest
-
#22795 core: construct test permission profiles directly @bolinfest
-
#22900 Disable DMG staging for signed macOS promotion @shijie-oai
-
#22877 feat(app-server): update remote control APIs for better UX @owenlin0
-
#22899 [codex] Soften SQLite metadata sync failures @wiltzius-openai
May 17, 2026
Collapsible Session Folders
Sessions in the left sidebar can now be organized into collapsible folders. Click the chevron to expand or collapse a folder, and your preference is persisted per organization.
Archive All Sessions
A new "Archive all" option in the sidebar menu lets you archive all sessions or asks at once, with a confirmation dialog and undo support. Child sessions skip the confirmation step for faster cleanup.
Sub-Devin Session Filter
The sessions page now includes a "Sub-Devin" filter that lets you view child sessions independently, with support for combined parent and child filtering.
Default Member Roles
Enterprise admins can now configure default roles that are automatically assigned to new organization members on join, with badge display in the members list and safeguards against accidental deletion of roles in use.
GHES App Registration Restriction
GitHub Enterprise Server app registration is now restricted to one app per account and host combination, preventing duplicate registrations with a clear error message when a conflict is detected.
Copyable Organization ID
Your Organization ID is now displayed with a one-click copy button on both the Settings → General and Settings → Devin API pages, making it easy to share with support or use in API calls.
Admin-Enforced Settings Lock Icon
Settings that have been locked by an admin now display a lock icon with an explanatory tooltip, replacing the previous banner-style callout for a cleaner interface.
MCP OAuth Client Credentials
When installing MCP integrations that don't support Dynamic Client Registration (such as Salesforce), you can now supply your own OAuth client credentials directly in the configuration flow.
Tavily MCP in Marketplace
Tavily web search is now available in the MCP marketplace, providing AI-optimized real-time web search and content extraction capabilities for your Devin sessions.
PR Actions & Auto-Review Settings
The PR actions menu in Devin Review has been restored with an auto-review toggle and personal settings popover, giving you quick access to review preferences without leaving the review interface.
Checks Tab Always Visible
The Checks tab is now always visible in the embedded PR review experience, and the merge-status popover properly restores the checks UI so you can always see CI status at a glance.
Improved @-Mention Search
The @-mention search in the chat input now uses fuzzy bag-of-words matching, so queries like "setup-dev" will find "setup-windsurf-dev". Repositories are also ranked first in the dropdown for faster access.
Slack Improvements
This release includes several Slack integration improvements: channel names now resolve correctly even for channels you haven't joined, mentions display as styled blue pill badges, unmapped channel messaging is clearer, the Watch channel option appears at the top of the trigger submenu, stale channel lists are fixed, and duplicate webapp-to-Slack thread posts are suppressed.
Slack Security Hardening
Enterprise channel isolation for Slack thread-attach has been hardened with runtime authorization that validates channels against enterprise channel preferences, preventing cross-organization channel access.
Video Recording Download
You can now download session recording videos directly from the video player controls.
Miscellaneous Improvements
This release also includes: file re-upload fix, archived chip now clickable for non-owners with unarchive permission, network config available for finished sessions, test recording viewer close button visibility fix, settings search improvements, back buttons on MCP marketplace and knowledge detail pages, deep mode callout hidden when disabled, repo name truncation so filter stays visible, mobile agent selection single-tap fix, Devin Review file scroll and merge status fixes, skills link fix, Slack support channel in help popover, and wait tool rendered as standalone worklog event.
v2.1.143
What's changed
- Added plugin dependency enforcement:
claude plugin disablenow refuses when another enabled plugin depends on the target (with a copy-pasteable disable-chain hint), andclaude plugin enableforce-enables transitive dependencies - Added projected context cost (per-turn and per-invocation token estimates) to the
/pluginmarketplace browse pane - Added
worktree.bgIsolation: "none"setting to let background sessions edit the working copy directly withoutEnterWorktree, for repos where worktrees are impractical - PowerShell tool now passes
-ExecutionPolicy Bypass. Opt out withCLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1 - Background sessions now preserve the model and effort level you set after waking from idle
- Shift+Tab in attached agent sessions now includes auto mode in the cycle
- Fixed a corrupt
.credentials.jsonwith a non-arrayscopesvalue hanging the CLI on startup or silently aborting OAuth token refresh - Fixed right-click paste in
claude agentson Windows Terminal and WSL - Fixed stop hooks that block repeatedly looping forever — the turn now ends with a warning after 8 consecutive blocks (override via
CLAUDE_CODE_STOP_HOOK_BLOCK_CAP) - Fixed Esc/Ctrl+C not cancelling a pending
/loopwakeup while Claude is idle between iterations - Fixed
/goalevaluator firing while background shells or delegated subagents are still running - Fixed
NO_COLOR/FORCE_COLORin settings.jsonenvstripping Claude Code's own UI colors — they now apply to subprocesses only - Fixed agent view spawning repeated PowerShell processes on Windows when listing sessions
- Fixed
/bgwithout a prompt sending "continue" to the forked session — the fork now waits for input - Fixed
--agent <name>not finding plugin-contributed agents without theplugin:prefix - Fixed deleting a session from agent view not removing its transcript file
- Fixed stale-fragment rendering when scrolling in attached background sessions on Windows Terminal
- Fixed background agents false-positive worker-stall detection storm after host sleep or macOS App Nap
- Fixed 5xx error messages pointing at status.claude.com instead of naming the configured gateway or cloud provider
- The PowerShell tool is now enabled by default on Windows for Bedrock, Vertex, and Foundry users. Opt out with
CLAUDE_CODE_USE_POWERSHELL_TOOL=0. claude agentsnow accepts--add-dir,--settings,--mcp-config, and--plugin-dirand applies them to the dashboard and to background sessions dispatched from itclaude agentsaccepts--permission-mode,--model,--effort, and--dangerously-skip-permissionsto set defaults for sessions dispatched from the viewclaude --bg --dangerously-skip-permissionsnow persists across retire→wake- Fixed background sessions silently capturing IDE file references into the warm spare's input, which caused the reference to be prepended to the next prompt dispatched from
claude agents - Worktree cleanup no longer falls back to
rm -rfwhengit worktree removefails, preventing loss of gitignored or in-progress files - Fixed background-job sessions on macOS getting "Operation not permitted" errors when reading files under
~/Documents,~/Desktop, or~/Downloads, even with Full Disk Access granted. /bgnow preserves--mcp-config,--settings,--add-dir,--plugin-dir, and--strict-mcp-config, so backgrounded sessions keep their MCP servers and settings across respawn.- Background sessions launched from
claude agentsnow honorpermissions.defaultModefrom settings.json (was previously overridden to auto mode) - Fixed: on Windows, pressing ← in
claude agentswhile a response was streaming could leave the agents list unresponsive to all input /bgand←-detach now preserve--fallback-model, so backgrounded workers degrade to the fallback model on overload instead of hard-failing./bgand←-detach now preserve--allow-dangerously-skip-permissions, so the forked worker keeps bypass-permissions available in its Shift+Tab cycle.- Fixed: background daemon spawn now falls back to the running binary when the
~/.local/bin/claudelauncher is missing or non-executable - Fixed
claude agents --allow-dangerously-skip-permissionsdefaulting dispatched sessions to bypass mode instead of making it available in the permission cycle
v2.1.142
What's changed
- Added new
claude agentsflags:--add-dir,--settings,--mcp-config,--plugin-dir,--permission-mode,--model,--effort, and--dangerously-skip-permissionsto configure dispatched background sessions - Fast mode now uses Opus 4.7 by default (previously Opus 4.6). Set
CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1to pin fast mode to Opus 4.6 - Plugins with a root-level
SKILL.mdand noskills/subdirectory are now surfaced as a skill - The
/plugindetails pane andclaude plugin detailsnow show LSP servers a plugin provides /web-setupwarns before replacing an existing GitHub App connection- Fixed
MCP_TOOL_TIMEOUTnot raising the per-request fetch timeout for remote HTTP and SSE MCP servers, which capped tool calls at 60 seconds regardless of the configured value - Fixed background sessions not recognizing pre-existing git worktrees, blocking Edit while EnterWorktree refused to create a duplicate
- Fixed background sessions disappearing and daemon reconnect failing after macOS sleep/wake — the daemon now detects clock jumps instead of treating them as elapsed idle time
- Fixed daemon not exiting cleanly after the binary is upgraded (e.g.
brew upgrade), causing dispatched agents to crash-loop on the deleted path - Fixed background agents crash-looping when the Claude-in-Chrome extension is connected without a shared tab
- Fixed clicking links in an attached
claude agentssession — the background worker's headless browser shim no longer applies while attached - Fixed
claude agents"v to open in editor" using the daemon's default editor instead of your shell's$EDITOR/$VISUAL - Fixed
claude agentsdeadlocking on Windows with network-drive working directories; Ctrl+C now works during startup - Fixed background-color bleed when attaching to a
claude agentssession from Apple Terminal or other 256-color-only terminals - Fixed
claude --bg --dangerously-skip-permissionsnot persisting across retire/wake - Fixed session titles being derived from the URL when the first message is a link
- Fixed redundant
set_modelrequests from remote clients injecting duplicate/modelbreadcrumbs into the transcript - Fixed plugins using
skills: ["./"]showing a false "path escapes plugin directory" error - Fixed plugin cache cleanup deleting the active plugin version directory when no installation metadata is present
- Fixed
/pluginbrowse pane showing "0 installs" for newly published plugins - Fixed plugin advisories not naming every
plugin.jsonkey that shadows a default folder - Improved reactive compaction: the first summarize attempt now seeds from the original request's overflow size, avoiding a wasted near-full-context retry
- Improved hook configuration error: configuring a prompt- or agent-type hook for
SessionStart/Setup/SubagentStartnow shows a clear "use a command-type hook instead" error - Removed stale
/model claude-sonnet-4-20250514suggestion from Usage Policy refusal messages
May 13, 2026
Snapshot Build Delete
You can now delete snapshot builds directly from the build history menu or detail page, with a confirmation dialog to prevent accidental removal. This makes it easier to clean up old or failed builds without navigating away from your environment settings.
MCP Multiline Environment Variables
When configuring MCP server connections in the marketplace, you can now enter multiline values for environment variables — such as PEM private keys, JSON service account credentials, and Snowflake key passphrases — without needing to escape or flatten them first.
Sub-Devin Sidebar Improvements
Sub-Devin sessions spawned by automations can now be pinned and reordered independently in the sidebar, and they appear expanded by default so you can see their status at a glance without clicking to expand.
Voice Recording While Devin Is Working
The microphone button now appears alongside the stop button while Devin is actively working, allowing you to record and send voice follow-ups without waiting for Devin to finish its current task.
Settings Redesign
Settings pages have been redesigned with a hub-style layout, improved search across all settings, and a streamlined navigation structure. An announcement dialog introduces the new experience on first visit, and legacy settings URLs automatically redirect to their new locations.
Archive Active Session Warning
When you archive a session that is still actively working, a warning dialog now informs you that archiving will put both the session and any child sessions to sleep before proceeding.
Share Session on Mobile
A new "Share session" action is available in the sidebar session menu on mobile devices, making it easy to share session links directly from your phone.
Devin Review Mobile Improvements
On mobile, tapping "Ask Devin" on a comment now opens the chat panel directly, pull-to-refresh is available on the review scroll container, and bug/flag tap targets have been fixed so they open on the first tap and reveal the associated comment.
V3 API Enhancements
The V3 API now supports filtering sessions by repository name via the repo_names parameter, filtering by archive status via is_archived, specifying devin_mode when creating sessions, and setting folder_id and is_enabled when creating or updating knowledge notes.
Enterprise Member Invite Acknowledgement
When inviting new members to an enterprise organization from the admin panel, an acknowledgement modal now confirms the invitation details before it is sent.
Rename Context to Skills & Rules
The "Context" section in settings has been renamed to "Skills & Rules" to better describe its purpose of managing Devin's skill definitions and behavioral rules for your organization.
Blueprint Migration Improvements
The blueprint migration page now displays per-repo session counts, supports filtering by repository, and shows a completed state when all migrations are finished, making it easier to track progress across large organizations.
Miscellaneous Improvements
This release also includes: autofocus on confirmation buttons in archive dialogs, plan artifact button polish, configurable CI status in search results, debounced enterprise snapshot builds, server-side event deduplication to prevent duplicate delivery, pinned sessions remaining visible when automations are hidden in the sidebar, removal of the misleading "Action required" label for Python sessions awaiting instructions, schedule list cap raised from 50 to 200, monitor trigger cleanup when adding new Slack triggers, repo setup status fix for Dynamic Repo Setup organizations, "Approve session" visibility in the sidebar even after all PRs are merged, inline image deduplication by URL, streaming scroll stability fix, high-resolution home screen icon for Android, beta Vite mode build fix, fast mode loading indicator reset on session switch, and sidebar hover cards on expanded non-active sections.
v2.1.141
What's changed
- Added
terminalSequencefield to hook JSON output so hooks can emit desktop notifications, window titles, and bells without a controlling terminal - Added
CLAUDE_CODE_PLUGIN_PREFER_HTTPSto clone GitHub plugin sources over HTTPS instead of SSH, for environments without a GitHub SSH key - Added
ANTHROPIC_WORKSPACE_IDenvironment variable for workload identity federation — scopes the minted token to a specific workspace when the federation rule covers more than one - Added
claude agents --cwd <path>to scope the session list to a directory /feedbackcan now include recent sessions (last 24 hours or 7 days) for issues spanning more than the current session- Rewind menu: added "Summarize up to here" to compress earlier context while keeping recent turns intact
- Auto mode permission dialog now explains when a
permissions.askrule caused the prompt - Restored the "view diff in your IDE" option on file-edit permission prompts when an IDE is connected
- Background agents launched via
/bgor←←now preserve the current permission mode instead of reverting to default claude agents: agents that finish work but leave a background shell running now move to Completed instead of staying under Working- Improved spinner feedback during long thinking periods — the spinner now warms to amber after 10 seconds to signal Claude is still working
- Improved plugin menu navigation:
→/Tab switch tabs,↑moves to the tab strip, and tab headers and search box are clickable in fullscreen mode - Fixed background side-queries sending an unavailable Haiku model ID on Bedrock/Vertex/Foundry/gateway when no
ANTHROPIC_SMALL_FAST_MODELoverride is set — now falls back to the main-loop model - Fixed
claude daemon statusand/doctoron Windows throwing when the daemon pipe key file is locked or unreadable — now shows the underlying error instead of an opaque failure - Fixed
claude agentsshowing the agent-type list instead of the dashboard when launched through a wrapper that adds flags - Fixed
claude agentsopening a crashed session firing redundant dispatches when the working directory was deleted - Fixed background jobs on a custom
ANTHROPIC_BASE_URLgateway not getting auto-named — the namer now uses the main model when no Haiku model is configured - Fixed
/modelin one session silently changing the autocompact threshold in other concurrent sessions - Fixed switching permission mode while a tool-permission prompt is open not auto-dismissing the prompt when the new setting permits the tool
- Fixed pressing Enter while a permission/dialog prompt is open also submitting text in the input box
- Fixed hooks receiving a non-existent
transcript_pathafterEnterWorktreeswitches the working directory - Fixed markdown tables with cell wrapping falling back to the vertical key-value layout instead of rendering as a bordered grid (regression in 2.1.136)
- Fixed cancelled prompts being removed from Up-arrow history when auto-restored into the input box, avoiding duplicate entries
- Fixed prompts cancelled with Ctrl+C/Esc before any response being dropped from Up-arrow history
- Fixed Ctrl+C not interrupting a running turn while in vim INSERT/VISUAL mode
- Fixed alternative
chat:submitkeybindings (e.g.meta+enter,ctrl+enter) not working whenenteris rebound tochat:newline - Fixed prompt suggestions being silently disabled when an output style was configured
- Fixed
spinnerVerbssetting not being honored in turn-completion messages - Fixed AskUserQuestion popup hiding the last line of preceding chat content
- Fixed Web Search status showing "Did 0 searches" when searches returned errors
- Fixed multi-line statusline output dropping or corrupting rows when any line exceeds terminal width
- Fixed light-ansi theme using invisible white for diff context lines on light backgrounds — now uses black
- Fixed error overlay dumping minified bundle source that hid the original error message
- Fixed pressing Enter after typing a feedback survey rating digit submitting it as a chat message instead of the rating
- Fixed pressing
xon a selected subagent in the agent panel typing into the prompt instead of stopping the agent - Fixed session title being derived from plugin monitor notifications before the user's first prompt
- Fixed "Allowed by PermissionRequest hook" repeating once per tool call under a collapsed read/search group
- Fixed
/tuisilently dropping running background shells and subagents — now refuses and asks to wait for them to finish - Fixed welcome banner showing "API Usage Billing" on Bedrock, Vertex, Foundry, and other third-party providers — now shows the provider name
- Fixed
/mcpserver list not keeping the focused server visible in short terminals in fullscreen mode - Fixed redaction in
/feedbackbundles producing invalid JSON for quoted values like session IDs - Fixed desktop and third-party provider sessions incorrectly inheriting
apiKeyHelper/ANTHROPIC_AUTH_TOKENfrom host managed-settings - Fixed early analytics events being silently dropped when fired before logger initialization
- Fixed
claude plugin installfailing for plugins whose marketplacerefno longer exists upstream when ashais also pinned - Fixed plugin details pane showing 0 MCP servers for plugins that declare them via
.mcp.json - Fixed plugin MCP servers with unset config variables showing a generic connection failure instead of a "config issue" message with a fix-it hint; malformed
.mcp.jsonentries no longer drop other MCP servers - Fixed MCP server configs using POSIX shell parameter expansions (e.g.
${var%pattern}) being incorrectly flagged as missing environment variables - Fixed MCP HTTP/SSE servers returning 403 on connect showing as "failed" instead of "needs auth"
- Fixed remote MCP servers disconnecting unnecessarily when the optional server-events stream failed to reconnect — tool calls continue over POST
- Fixed Remote Control MCP connectors all failing with 401 when the worker session token rotated mid-session
- Fixed Remote Control automatically re-enrolling a trusted device when the server rejects a stale token, instead of looping through
/login - Fixed a race where early OTel spans could be silently dropped in SDK/headless mode with beta tracing enabled
- Fixed custom
voice:pushToTalkkeybindings and"space": nullunbinds being silently ignored - Fixed Windows Alt+V image paste reporting "no image found" when the clipboard contains a screenshot
- Fixed SDK "Claude Code native binary not found" on Linux when both glibc and musl platform packages are installed
- Bedrock:
awsCredentialExportnow always runs when configured instead of being skipped when ambient AWS credentials resolve, fixing auth for cross-account access - [VSCode] Fixed in-chat mic showing no feedback when the microphone produced only silence — now shows "No audio detected"
- [VSCode] Voice mode: the WSL error now suggests installing
sox libsox-fmt-pulsefor WSLg users claude agents: launching a session no longer fails when the pre-warmed background worker is unhealthy — now falls back to a fresh launchclaude agentsno longer shows empty placeholder sessions left over from backgrounding a fresh REPL, and shows onboarding text when entered via ← with no other agents- Empty idle background sessions left over from
←are now automatically retired by the daemon after 5 minutes
Full-screen Tabs and Compact Chats
This release introduces quality-of-life improvements to the Agents Window.
Full-screen tabs
Full screen maximizes the right panel so you can focus on a single tab.
Files, changes, canvases, PRs, browsers, and terminals can expand to fill the entire working area. This replaces the agent chat with a floating prompt bar.
Enter and exit full screen by clicking on the expand/contract button in the panel header, using the command palette, or pressing `Cmd/Ctrl+Shift+M`.
Compact chat responses
Compact chats give you a tighter view of your agent conversations so you can read threads more quickly without losing important context.
Customize tool call density to control how much of the agent's tool activity is shown in each response:
- Compact: shows concise results with minimal tool traces
- Balanced: includes important intermediate steps
- Detailed: provides near-complete step-by-step context
Improvements (8)
- Improved PR tabs by adding clearer review states, better reviewer/thread visibility, and more predictable PR tab actions.
- Improved long-chat scrolling to make it smoother, added better undo grouping in prompt input, and improved behavior while streaming.
- Added clearer status text for background/resumed tasks.
- Added cleaner environment/repo selection and better persistence when switching contexts.
- Improved MCP auth token lifecycle handling.
- Removed noisy in-app terminal notifications and improved shortcut behavior.
- Clarified model naming and selection behavior in the model picker and added stronger fallback handling.
- Improved search and navigation to make it faster and more reliable in large workspaces.
Bug Fixes (9)
- Fixed PR tab bugs affecting branch lookup, header state, and diff loading.
- Fixed background task reliability issues like resume failures, interrupt edge cases, and incorrect status scoping on resumed subagents.
- Fixed cloud agents bugs blocking setup, state merge/persistence bugs, and multi-repo identity issues.
- Fixed MCP/OAuth reliability bugs like transient 401/stale-token cases and large-token handling edge cases.
- Fixed edge cases around slash menu + approval regressions, ask-question flow issues, and paste-chunk handling.
- Fixed keyboard shortcuts bugs in modals, vim/emacs caret style leakage, and other key handling.
- Fixed hook invocation/path-length issues and Git prompt-related regressions.
- Fixed model-routing mismatches, proxy body normalization, and thought-chunk forwarding issues.
- Fixed webhook auth/hostname resolution, GHES installation persistence, and mirrored-repo behavior.
Development environments for cloud agents
To take engineering tasks from start to finish, agents need a development environment similar to the setup on your laptop: cloned repositories, installed dependencies, credentials for internal toolchains, and access to build systems.
This release introduces new tools for teams to configure development environments for their agents. Cursor also can use these tools to set up and maintain environments for you. Together, this makes it easier for teams to run fleets of parallelized agents that handle tasks from end-to-end, inside development environments you fully control.
Multi-repo environments
Cloud agents and automations now support multi-repo environments, building off our work on multi-root workspaces. You can configure a single environment with all the repositories an agent needs for its work, with re-use across sessions.
Environment configuration as code
To make it easier to change, debug, and review environment definitions, we have improved Dockerfile-based configuration.
This includes support for build secrets, making it easy to securely access private package registries directly from your Dockerfiles. Build secrets are scoped to the build step and aren't passed to the running agent's environment.
We've also upgraded layer caching, so that only the updated layers of your image rebuild when you change the Dockerfile. Builds that hit the cache run 70% faster.
Improved agent-led environment setup
As Cursor configures your environment, it will ask you questions, flag missing credentials, and validate that your environment is set up properly.
Cursor will always show you the version of the environment your agent is running in. If your environment configuration fails, it will default to a base image with clear warning signs so that your cloud agents can keep running instead of immediately failing.
Environment governance and security controls
Every development environment now has its own version history that users can review and roll back. Admins can also restrict rollback permissions to admins only. An audit log captures every action team members take on environments, giving security teams full visibility into who changed what.
Egress and secrets can now be scoped at the development environment level. Secrets configured for one environment aren't accessible from any other.
Learn more about agent development environments in our announcement and docs.

Codex mobile documentation
Codex mobile documentation
Added documentation for using Codex from the ChatGPT mobile app, including setup steps, connected-host behavior, security requirements, and troubleshooting for common connection issues.