Skip to main content

Claude Code v2.1.265: --plugin-dir Plugin Folders, a 1 GB Tool-Result Cap, and Gateway Telemetry Changes

Claude Code v2.1.265 lets --plugin-dir load a folder of plugins, caps tool results saved to disk at 1 GB, changes Claude apps gateway login and telemetry, and fixes prompt-cache and resume issues.

Claude Code v2.1.265 is a large release with 50 changelog entries. It lets --plugin-dir load a whole folder of plugins, caps tool results saved to disk at 1 GB, and changes how Claude apps gateway sessions sign in and export telemetry. Most of the remaining changes are fixes for prompt-cache reuse, session resume, plugin path checks, MCP connections, and Remote Control.

What’s New

Load a Folder of Plugins with --plugin-dir

--plugin-dir can now point at a folder of plugins: each child folder with a manifest loads, and children added or removed while Claude Code is running are picked up.

1 GB Cap on Tool Results Saved to Disk

Tool results saved to disk are now capped at 1 GB, and the in-conversation preview says when a saved file was truncated.

Claude Apps Gateway Login and Telemetry

  • Machines with forceLoginGatewayUrl in managed settings are now Claude apps gateway sessions from startup, like forceLoginMethod: "gateway"; a leftover claude.ai login or API key is not used.
  • Claude apps gateway sessions now export OpenTelemetry directly to a collector that the gateway’s managed settings name in OTEL_EXPORTER_OTLP_ENDPOINT, instead of through the gateway’s relay; sessions without a named collector still use the relay.
  • Telemetry that Claude Desktop and Cowork send through a Claude apps gateway now includes user.email and user.groups, matching terminal sessions.

--worktree Startup and Mid-Prompt Slash Commands

  • --worktree startup on large repositories is improved: the new worktree is now checked out in parallel (git 2.32+).
  • Slash commands typed mid-prompt now show matches in a list (Tab opens it outside fullscreen) instead of a single suggestion, and a plugin skill is now found by its bare name.

Other Changes

  • Plugin display metadata on the Installed tab and in claude plugin details now prefers the marketplace entry over plugin.json, filling gaps from plugin.json.
  • Image processing now uses the runtime’s built-in image support, so the CLI no longer extracts a native image module to the temp directory.
  • The .claude folder permission option now says what it actually allows: editing files in the project’s .claude folder (or ~/.claude) for the session.

VS Code: Automatic Session Archiving

A new “Archive inactive sessions” setting automatically archives sessions that have been inactive for a set period, with a default of 14 days.

Fixes and Improvements

Security and permissions

  • A plugin path containing a backslash no longer bypasses the symlink containment check on macOS and Linux.
  • Claude Code’s own git status and diff probes no longer run clean filters configured by a nested repository inside the working tree.
  • Windows: Read, Write, and Edit no longer refuse every file (“symlink resolution changed after permission was checked”) when running inside an AppContainer or restricted-token sandbox.
  • For remote MCP servers that need sign-in, Claude Code no longer registers an OAuth client with them until you actually authenticate.
  • When the Artifact tool reads an artifact someone else wrote, the summary now treats the page as untrusted content and flags embedded instructions rather than relaying them.

Prompt cache and resume

  • Resuming a foreground-spawned subagent no longer changes its tool list and system prompt prefix, which had broken prompt-cache reuse for that agent. Agent teammates and resumed subagents also no longer move SubagentStart hook context and preloaded skills out of the prompt prefix on later turns.
  • Resuming after the previous process died while a tool was running no longer rewrites the last prompt; the interrupted tool call is kept and marked interrupted.
  • Resuming long sessions that read many files now takes less time.

Sessions and commands

  • Non-interactive sessions (-p with stream-json input, Agent SDK, cloud sessions) no longer reset the shell working directory at each new user message; a cd now persists across turns.
  • /model opusplan[1m] is no longer rejected with “Model not found”.
  • /model no longer claims a model was “saved as your default” when the settings file couldn’t be written; it now says the save failed and why.
  • Two-key keyboard shortcuts no longer cancel silently when the second key arrives more than a second later, as happens inside tmux; they now wait 3 seconds and show a notice when they time out.
  • Background (--bg) sessions are no longer occasionally retired mid-turn when a message arrives just before the idle timeout.
  • Resuming a workflow run after its container restarted no longer reruns every agent when the run journal is missing; it now fails with a clear error.

MCP, connectors, and Remote Control

  • MCP servers configured as http that only speak the legacy HTTP+SSE transport now connect, because Claude Code falls back to SSE as the MCP spec describes.
  • Some claude.ai connectors in cloud sessions no longer show as needing authentication even though they are connected in claude.ai.
  • Remote Control sessions no longer send the end-of-turn signal before the reply’s last message, which could show a reply as finished in the Claude app before its last part arrived.
  • VS Code and SDK sessions no longer occasionally require re-login when a session is closed while refreshing its token.

Gateway telemetry

  • The Claude apps gateway’s OTLP telemetry relay no longer pauses all forwarding to a collector for 30 seconds after the collector rejects a few payloads as malformed or too large.

v2.1.265 contains 50 changes in total; see the full changelog for the complete list.

How to Update

  1. Check your installed version: claude --version
  2. Update in place: claude update
  3. If you run non-interactive sessions (-p with stream-json input, Agent SDK, or cloud sessions), note that a cd now persists across turns instead of resetting at each new user message.