- "workflow" no longer triggers dynamic workflows; the keyword is now "ultracode". If you type "workflow" in a prompt, it won't auto-trigger a run anymore. The new trigger keyword appears highlighted in violet in the input. (more below)
grepnow counts as a Read for the Edit tool. Single-filegrep/egrep/fgrepoutput satisfies the read-before-edit prerequisite, so you can edit immediately after grepping.- New prompts guard shell startup files and build-tool configs. Writing to
.zshenv,.zlogin,.bash_login,~/.config/git/, oracceptEdits-mode build-tool configs (.npmrc,.yarnrc*,.bazelrc,.pre-commit-config.yaml,.devcontainer/) now triggers a confirmation prompt. CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDEremoved. The env var deprecated in 2.1.154 is now a no-op; clean it from your shell profile if you still have it set. (more below)
New in 2.1.160
2.1.160 (June 2, 2026)
- Added a prompt before writing to shell startup files (
.zshenv,.zlogin,.bash_login) and~/.config/git/, which could otherwise lead to unintended command execution acceptEditsmode now prompts before writing build-tool config files that grant code execution (.npmrc,.yarnrc*,bunfig.toml,.bazelrc,.pre-commit-config.yaml,.devcontainer/, etc.)- Edit no longer requires a separate Read after viewing a file with
grep: single-filegrep/egrep/fgrepcommands now satisfy the read-before-edit check - Fixed copy-on-select not writing to the Windows clipboard on WSL, now uses PowerShell interop instead of OSC 52
- Fixed restoring a completed session from
claude agentsdropping chat history and re-running the original prompt - Fixed background sessions re-attached after overnight retire losing their conversation and re-running the original prompt
- Fixed
claude --bgoccasionally failing with "socket missing" when the background daemon was cold-starting on a loaded machine - Fixed an issue on Windows where the directory a background session was started in could not be deleted after
claude rmuntil the background daemon exited - Fixed background agents that resumed work being shown under Completed in the agents list
- Fixed
claude agentsfreezing for several seconds when returning to the session list due to the auto-updater re-checking on every exit - Fixed Esc, arrow keys, and typing becoming unresponsive on Windows when attached to a background session or in the agent view while the host is under heavy CPU load
- Fixed background agents emitting terminal sync-output markers to terminals that don't support them (Apple Terminal, tmux), causing render artifacts when entering a running agent
- Fixed mouse wheel scrolling prompt history instead of the transcript right after opening a session from the agents list
- Fixed CJK IME composition appearing at the bottom-left of the screen instead of at the input caret in the
claude agentsview - Fixed valid
file:///C:/...links being rewritten to a broken path on Windows terminals with hyperlink support - Fixed voice mode failing to connect when the project directory or branch name contains non-ASCII or special characters
- Fixed the auto mode unavailability message on third-party providers (Bedrock/Vertex/Foundry) to point to
CLAUDE_CODE_ENABLE_AUTO_MODEopt-in instead of incorrectly blaming the model - Fixed
/effort ultracodeincorrectly blaming the dynamic workflows setting when the model cannot run xhigh; ultracode is no longer offered on models that do not support it - Fixed model-not-found errors suggesting
--modelwhen running via the SDK or other hosts where the CLI flag doesn't apply - Fixed Claude's past replies disappearing from scrollback when resuming a brief mode session with brief mode turned off
- Fixed vim mode
ppasting on the line below instead of at the cursor when the register was yanked withv$ - Improved performance of opening recently-inactive background agent sessions in
claude agents - Improved auto mode classifier latency by reducing reasoning on routine actions, lowering the chance of "could not evaluate this action" blocks
- Improved background-session teardown (
claude rm/stop, idle reap) to send SIGTERM to running shell subprocesses before SIGKILL, so cleanup handlers run - Removed
CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE; the environment variable is now a no-op - Removed the JetBrains plugin install suggestion from startup
- Renamed the dynamic-workflow trigger keyword from
workflowtoultracode. The word "workflow" no longer triggers a run; asking for one in your own words still works. The trigger keyword is highlighted in violet in the prompt input
Notes
The "workflow" to "ultracode" rename is the third beat of dynamic-workflow UX iteration
Dynamic workflows launched in 2.1.154 (May 29) with "workflow" as the trigger keyword. Two days later, 2.1.157 added a backspace-to-dismiss gesture and a "Workflow keyword trigger" setting in /config for users who found the word too common. 2.1.160 takes the more permanent step of renaming the trigger entirely. The pattern suggests "workflow" was colliding with normal conversation too often, since the /config opt-out was not sufficient to ship and forget. If you had disabled the keyword trigger via /config, check whether the setting carries over or resets.
CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE followed its stated timeline
2.1.154 (May 29) deprecated the env var with a stated removal date of June 1. 2.1.160 (June 2) makes it a no-op, one day past the published deadline. If you set it in .zshrc, .bashrc, or a CI config, it is dead weight now. The replacement path is /model claude-opus-4-6[1m] followed by /fast on.