
Claude Code v2.1.263 to v2.1.266 Major Updates - plugin-dir folder specification and MCP connection fixes
This page has been translated by machine translation. View original
This is Ishikawa from the Cloud Business Division. I'll summarize the Claude Code updates from v2.1.263 to v2.1.266 (2026-09-06 to 2026-09-08, UTC). Among the specified range, v2.1.262 and v2.1.264 were not published to npm. Today, I tried out the new folder specification for plugin-dir.
The previous update article is here.
Update Summary
This covers 3 versions (v2.1.263 to v2.1.266, 2026-09-06 to 2026-09-08, UTC). The CHANGELOG has 52 entries, with 50 of them concentrated in v2.1.265. The breakdown is: 34 fixes, 10 improvements/performance/developer experience, 4 new features, 2 security, 1 potentially compatibility-breaking specification change, and 1 documentation fix. v2.1.266 has only 1 entry, and v2.1.263 has no individual entries in the CHANGELOG.
Notable Updates
Specify a folder containing plugins with --plugin-dir (v2.1.265)
You can now specify a folder containing plugins with --plugin-dir. Child folders with a manifest are each loaded, and adding or removing child folders during execution is reflected.
For those verifying multiple plugins together or distributing a set of plugins internally, this feels like a change that reduces the effort of specification.
cd is maintained across turns in non-interactive sessions (v2.1.265)
A bug was fixed where non-interactive sessions (the -p flag with stream-json input, Agent SDK, cloud sessions) would reset the shell's working directory with each new user message. cd is now maintained across turns. This applies to the 3 types of non-interactive sessions listed in the CHANGELOG.
For those using multi-turn automated processing with -p stream-json input or the Agent SDK, it's worth checking, as procedures that assume directory changes will now work as intended.
MCP servers configured as http fall back to the legacy transport (v2.1.265)
A bug was fixed where MCP servers configured as http could not connect if they only spoke the legacy HTTP+SSE transport. They now fall back to SSE as per the MCP specification. This applies to servers configured as http that only speak legacy HTTP+SSE.
For those who couldn't connect to MCP servers configured with http and were doubting their settings, this fix may resolve the issue.
Fix for all requests failing with CLAUDE_CODE_USE_GATEWAY (v2.1.266)
The undocumented environment variable CLAUDE_CODE_USE_GATEWAY was previously ignored unless both ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN were set, but in v2.1.265 it began forcing sign-in to the Cloud gateway on its own. As a result, configurations using this variable alongside API keys, apiKeyHelper, or custom auth headers would fail all requests with "Not signed in to the Cloud gateway." In v2.1.266, this variable is once again ignored on its own, and no configuration changes are necessary.
This only affects configurations that set CLAUDE_CODE_USE_GATEWAY while also using API keys, apiKeyHelper, or custom auth headers, but if you're affected, it's worth upgrading to v2.1.266.
Fix for plugin path containment check bypass (v2.1.265)
On macOS and Linux, a bug was fixed where plugin paths containing backslashes could bypass symlink containment checks.
For those who load plugins obtained from external sources, it's worth updating.
Treat artifacts created by others as untrusted content (v2.1.265)
The handling of loading artifacts created by others with the Artifact tool has been improved. Summaries treat the page as untrusted content and flag embedded instructions rather than passing them through as-is.
For those who load artifacts created by others, this feels like a change that reduces the room for instructions to be introduced via summaries.
Target Versions and Period
| Version | Release Date (UTC) |
|---|---|
| v2.1.263 | 2026-09-06 |
| v2.1.265 | 2026-09-08 |
| v2.1.266 | 2026-09-08 |
v2.1.263 has no individual entries in the CHANGELOG, only a single line: "Bug fixes and reliability improvements."
New Features
- You can now specify a folder containing plugins with
--plugin-dir. Child folders with a manifest are each loaded, and adding or removing child folders during execution is reflected (v2.1.265) - A 1 GB limit has been added for tool results saved to disk. If a saved file is truncated, this will be indicated in the conversation preview (v2.1.265)
user.emailanduser.groupshave been added to telemetry sent by Claude Desktop and Cowork via the Claude apps gateway, bringing them in line with terminal sessions (v2.1.265)- [VS Code] A feature to automatically archive sessions that have been inactive for a certain period has been added (new setting "Archive inactive sessions," default 14 days) (v2.1.265)
Improvements
--worktreestartup has been improved for large repositories, with new worktree checkouts parallelized (git 2.32 or later) (v2.1.265)- Resume time for long sessions that have read many files has been improved (v2.1.265)
- The agent detail view in
/workflowshas been improved. Tool calls now show running/failed/completed states, sub-agents display their task lists if they have them, and you can expand inputs and results for each call with Enter (v2.1.265) - Handling of slash commands entered mid-prompt has been improved. Suggestions now appear as a list rather than a single suggestion (opened with Tab in non-fullscreen mode), and plugin skills can be found by their unqualified names (v2.1.265)
- OAuth clients are no longer registered for remote MCP servers that require sign-in until actually authenticated (v2.1.265)
- Error messages for when images exceeding the size limit cannot be decoded now indicate the cause and how to address it, rather than just showing the limit (v2.1.265)
- The description of permission options for the
.claudefolder has been updated to reflect what is actually permitted (being able to edit files in the project's.claudefolder or~/.claudeduring a session) (v2.1.265) - Image processing has changed to use runtime built-in image support, so the CLI no longer extracts native image modules to a temporary directory (v2.1.265)
- For plugin display metadata, marketplace listings now take precedence over
plugin.jsonin the Installed tab andclaude plugin details, withplugin.jsonfilling in any gaps (v2.1.265) - OpenTelemetry for Claude apps gateway sessions now sends directly to the collector specified by
OTEL_EXPORTER_OTLP_ENDPOINTin gateway managed settings. Sessions without a specified collector use the conventional relay (v2.1.265)
Fixes (Major)
A selection of fixes related to stability and usability.
- Fix for file operations being entirely rejected in sandboxed Windows environments: When running inside AppContainer or restricted token sandboxes, Read, Write, and Edit were rejecting all files with "symlink resolution changed after permission was checked" (v2.1.265)
- Fix for prompt cache reuse being broken with sub-agents: Two issues were fixed: one where resuming a foreground sub-agent would change the tool list and system prompt prefix, and another where agent teammates or resumed sub-agents would move SubagentStart hook context and pre-loaded skills outside the prompt prefix after the second turn (v2.1.265)
- Fix for resumption after a process exits during tool execution: The previous prompt is no longer overwritten, and interrupted tool calls are retained and recorded as interrupted (v2.1.265)
- Fix for
/model opusplan[1m]being rejected: It was being rejected as "Model not found" (v2.1.265) - Fix for clean filters in nested repositories being executed: The git status/diff checking performed by Claude Code itself was executing clean filters configured in nested repositories within the working tree (v2.1.265)
- Fix for
/modeldisplaying success even when saving fails: It was showing "Saved as default" even when it couldn't write to the settings file. It now displays the fact that saving failed and the reason (v2.1.265) - Fix for background sessions being terminated mid-turn: This occurred in
--bgsessions when a message arrived just before the idle timeout (v2.1.265) - Fix for VS Code sidebar going blank: After leaving a conversation open for more than 10 minutes, the sidebar chat would go blank after Reload Window or a restart (v2.1.265)
- A subtly welcome fix: The wait time for 2-key shortcuts has been extended to 3 seconds, and a notification now appears on timeout (v2.1.265). For those who experienced unresponsive-seeming operations when using tmux, this feels like a fix that subtly hits home.
- In addition, numerous minor bugs have been fixed in plugin display metadata and load-time warnings, Remote Control and cloud session connector display, dialogs for
/config,/clear, and others, syntax highlighting and transcript display,claude-apiskill error code descriptions, and more.
Breaking Changes / Deprecations
- Machines whose managed settings include
forceLoginGatewayUrlare now treated as Claude apps gateway sessions from startup, the same asforceLoginMethod: "gateway". Any remaining claude.ai logins or API keys are not used (v2.1.265)
The CHANGELOG lists this under "Changed" without explicitly marking it as Breaking. However, since the way authentication is used changes on machines with existing settings, I'm treating it separately as a potentially compatibility-breaking specification change. Below is a configuration example.
After the change (v2.1.265 onward)
# managed settings (example - settings are not changed)
{
"forceLoginGatewayUrl": "https://gateway.example.com"
}
# Behavior at startup (v2.1.265 onward)
# Same as forceLoginMethod: "gateway", treated as a
# Claude apps gateway session from startup
# Any remaining claude.ai logins or API keys are not used
Trying Out the --plugin-dir Folder Specification
I verified the folder specification introduced in v2.1.265 using Claude Code v2.1.266 in a test environment. I prepared a parent folder containing two child folders with manifests.
% tree plugin-lab
plugin-lab
├── alpha
│ └── skills
│ └── blogcheck-alpha
│ └── SKILL.md
└── beta
└── skills
└── blogcheck-beta
└── SKILL.md
I set the absolute path of plugin-lab into the environment variable LAB.
% LAB=/Users/ishikawa/projects/20260909-v2.1.266/plugin-lab
I launch claude with the environment variable LAB passed to --plugin-dir.
claude --plugin-dir "$LAB" --strict-mcp-config
I run the prompt "Please answer without using tools. List all available skills whose names begin with blogcheck."

By specifying the parent folder just once, the two plugins in the child folders were loaded and their respective skills became available. In situations where you're testing multiple plugins together, being able to just pass a single parent folder instead of listing out multiple --plugin-dir flags makes preparation easier.
Closing Thoughts
Although v2.1.265 has a large number of 50 entries, the majority feel like fixes that are effective for specific use cases. For those using plugins, MCP, or non-interactive sessions, I think it's worth checking for entries that apply to you. Since v2.1.266 is a regression fix for v2.1.265, if you've upgraded to v2.1.265, I think the safe move is to continue upgrading to v2.1.266.
If there are any changes that interest you, why not update and check them out?
References
