Claude Code v2.1.269 Brings Plugin Eval and Remote Output-Style Switching!
Hey everyone, I'm Shii-chan! Today I'm digging into the newest Claude Code release, v2.1.269!
Claude Code ReleaseWhat was announced?
The Claude Code Release page on GitHub just published v2.1.269. This release adds several features you can start using right away, plus fixes for some annoying prompt-cache and terminal-input bugs.
Here's what's new:
claude plugin eval— a new command that runs a plugin's eval suite against Claude Code and produces scored, reproducible results as a JSON and HTML report. Check it out with
claude plugin eval --help
/output-style [name]— you can now list and switch output styles over Remote Control, and in cloud and other headless sessions too- A Bash-edit diff view — enabling the
bashEditDiffEnabledsetting adds a diff of the files a Bash command changed to the Bash tool result OTEL_METRICS_INCLUDE_REPOSITORY— tags OpenTelemetry metrics and events withvcs.*repository attributes; combine it withOTEL_LOG_TOOL_DETAILSand commit events also getvcs.ref.head.*CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS— an environment variable to extend the LLM gateway's/v1/modelsdiscovery timeout (default 3 seconds)CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS— raises the Workflow tool's per-run concurrent agent limit to anywhere from 1 to 256, useful for inference-bound fan-outs- A spinner tip now suggests
/focus, a view that shows just your prompt, a one-line work summary, and the response
The story so far
Until now, switching /output-style only worked in local sessions — you couldn't change it over Remote Control or in a headless session. There was also no way to see a diff when the Bash tool edited files, and plugin evaluation had no standard command, so authors had to build their own scripts.
On the bug side, the prompt cache could be partially invalidated on the turn after a response was cut off at the output-token limit and automatically resumed. And resuming a session after interrupting Claude mid-thought could change how earlier context was re-sent, hurting cache reuse.
What changes
- Plugin authors can now automate evaluation with
claude plugin evaland get reproducible, CI-friendly reports - People working in remote or cloud environments can switch output styles on the spot
- Turning on
bashEditDiffEnabledlets you review Bash-driven file edits as a diff right away - Workflows with long responses should see the prompt cache hold up better, cutting wasted cost and latency
Dive Deep
A batch of terminal keybinding bugs got fixed too: F1/F2/F4 not working in kitty-protocol terminals, Delete not working in st, Alt+arrows acting as Escape in rxvt-unicode, and Shift+punctuation typing the unshifted key in WezTerm — all regressions introduced in 2.1.247.
A few other fixes worth noting:
- Fixed remote and headless sessions reporting "waiting for your input" while background agents were still running (set
CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0to restore the old behavior) - Fixed the git status Claude is told after a compaction, which was stale from the start of the session and is now the current status
- Fixed a deny or ask permission rule starting with
!applying beyond the settings source that wrote it; such a rule now applies only within its own source - Fixed several security issues in plugin archive extraction: extracted files were readable by other local users, kept world-writable bits, and stale files could survive re-extraction
Wrap-up
claude plugin evalbrings automated, scored evaluation for plugins/output-styleswitching now works over Remote Control, cloud, and headless sessionsbashEditDiffEnabledshows a diff for Bash-driven file edits- Fixed prompt-cache invalidation and several terminal keybinding regressions from 2.1.247
- Multiple security fixes around plugin archive extraction permissions
This release is especially worth a look if you build plugins, work from remote or cloud sessions, or have been annoyed by terminal keybinding quirks!