claudekit / updates / claude-code-2-1-157
[ PATCH · ]

Claude Code 2.1.157

Claude Code 2.1.157 auto-loads plugins from `.claude/skills` directories with no marketplace required, adds `claude plugin init <name>` to scaffold a new plugin in place, and ships autocomplete for `/plugin` arguments. `claude agents` dispatched sessions now honor the `agent` field in `settings.json`, `EnterWorktree` can switch between Claude-managed worktrees mid-session, and worktrees are left unlocked when the agent finishes. The release also fixes a broad set of bugs across background sessions, `--resume`, worktrees, the `/model` picker, terminal rendering, WSL image paste, and the VS Code / Cursor / Windsurf integrated terminals.

Official announcement →

This article is a summary based on official documentation.

What changed

Claude Code 2.1.157 shipped on May 29, 2026. The focus is making plugin development and management lighter: plugins in .claude/skills directories are auto-loaded with no marketplace required, claude plugin init <name> scaffolds a new plugin in place, and /plugin arguments now get autocomplete. claude agents dispatched sessions honor the agent field in settings.json, and EnterWorktree can switch between Claude-managed worktrees mid-session. The release also fixes a broad set of bugs across background sessions, --resume, the /model picker, terminal rendering, WSL image handling, and the IDE integrated terminals.

New features

  • Auto-loaded plugins in .claude/skills

    Local plugins required a marketplace entry before they would load, which made quick experimentation awkward. Plugins in .claude/skills directories are now automatically loaded — no marketplace required.

  • claude plugin init <name> scaffolding

    Starting a new plugin meant creating the directory layout and metadata files by hand. claude plugin init <name> scaffolds a new plugin in .claude/skills in one step.

  • Autocomplete for /plugin arguments

    Subcommands, installed plugin names, and plugins from known marketplaces all had to be typed from memory. /plugin arguments now autocomplete across all three.

  • agent field honored in claude agents dispatched sessions

    The agent field in settings.json was ignored for dispatched sessions, so the agent had to be set manually each time. It is now honored for dispatched sessions, with --agent <name> to override it.

  • Mid-session worktree switching with EnterWorktree

    There was no way to move between Claude-managed worktrees without ending the session. EnterWorktree can now switch between Claude-managed worktrees mid-session.

  • Worktrees left unlocked when the agent finishes

    Claude-managed worktrees stayed locked after use, blocking git worktree remove / prune. They are now left unlocked when the agent finishes so the standard cleanup commands work.

  • tool_parameters in tool_decision telemetry

    Tool-call analysis lacked the actual command arguments, leaving gaps for debugging. With OTEL_LOG_TOOL_DETAILS=1, tool_decision events now include tool_parameters (bash commands, MCP/skill names).

  • Workflow keyword trigger setting

    The word “workflow” in a prompt could trigger a dynamic workflow even when that wasn’t the intent. A new “Workflow keyword trigger” setting in /config lets you turn the keyword trigger off.

Key improvements

  • Faster long and resumed conversations

    Long and resumed conversations slowed down because message rendering was recomputed redundantly. Eliminating the redundant work improves performance across long sessions.

  • /terminal-setup disables GPU acceleration in VS Code-family terminals

    GPU acceleration in the VS Code, Cursor, and Windsurf integrated terminals caused garbled-text rendering. /terminal-setup now disables GPU acceleration in those terminals to prevent it.

  • Substring slash-command autocomplete in claude agents

    Dispatch-input autocomplete was prefix-only, which made commands hard to find when you only remembered a middle keyword. It now matches substrings.

  • Feature of the Week credit-claim moved into the status area

    The Feature of the Week credit-claim status used to sit on its own line above the prompt. It now appears as a notification in the status area instead.

  • Cleaner startup

    Removed the “bash commands will be sandboxed” startup banner and the “/ide for …” startup hint toast. Sandbox status still shows in /status and when a command is blocked.

  • Backspace after workflow trigger dismisses the request

    Pressing backspace right after a workflow trigger keyword used to delete a character. It now dismisses the workflow request, the same as alt+w.

Bug fixes

Permissions & sandbox

  • Sandbox network permission prompts appearing in auto and bypass-permissions mode when using the desktop app, IDE extensions, or SDK — fixed.
  • Terminal freezing after approving the managed-settings security dialog at startup — fixed.
  • Unprocessable images (zero-byte, corrupt) attached via paste, MCP, or dialog crashing the request — they now become a text placeholder instead.

claude agents

  • Completed sessions not retiring when an idle subagent was still parked or had leaked a backgrounded shell — fixed.
  • Pressing Esc not cancelling a slow “opening…”, leaving the list unresponsive — fixed.
  • Copy-on-select not reaching the system clipboard inside tmux with set-clipboard on (regression in 2.1.153) — fixed.

Session resume & worktrees

  • --resume not reporting background subagents that were running when the previous Claude Code process exited — fixed.
  • The --resume session picker leaving its contents on the terminal after exiting in fullscreen mode — fixed.
  • --worktree and --worktree --tmux returning to the canonical repo root instead of the current linked worktree — fixed.
  • Background-agent worktrees under .claude/worktrees/ being orphaned after the 30-day job retention sweep — fixed.
  • Background sessions re-attached after a sleep/wake not telling the model the correct date — fixed.

Model picker & rendering

  • The /model picker showing an incorrect “Newer version available” hint when the selected model is already the newest in its family — fixed. The pinned-model row now shows the model’s description instead of its raw ID.
  • Literal markdown markers (backticks, asterisks) appearing in the in-progress message text in fullscreen mode — fixed.
  • A rare duplicate line appearing in scrollback after the terminal UI redraws — fixed.

IDE integrated terminals & WSL

  • Right-click paste duplicating the clipboard in the VS Code, Cursor, and Windsurf integrated terminals — fixed.
  • [WSL] Fixed image paste (alt+v keybinding) and screenshot paste on Windows 11, and added support for dragging images from Windows Explorer.
  • [IDE] Clicking Stop while a background subagent is running not actually stopping it — fixed.
  • [VSCode] Fast mode indicator not appearing on Opus 4.8 — fixed.

Notes

  • Skipped versions — 2.1.155 has no public release; 2.1.156 was a single-fix hotfix for an Opus 4.8 issue where thinking blocks were modified, leading to API errors. Neither is covered separately here.
  • .claude/skills auto-loading pairs with claude plugin init — you can now run local plugins purely from a .claude/skills directory without a marketplace entry, and start new ones in place with claude plugin init <name>.
  • Turning off the workflow keyword trigger — to stop the word “workflow” from triggering a dynamic workflow, toggle the “Workflow keyword trigger” setting in /config.
  • OTEL_LOG_TOOL_DETAILS=1 is opt-intool_decision telemetry only includes tool_parameters (bash commands, MCP/skill names) when that environment variable is set.