Claude Code v2.1.269: Plugin Eval Suites, /output-style Switching, and Concurrent Agent Limits
Claude Code v2.1.269 landed with a plugin evaluation harness, output-style switching that works over Remote Control and headless sessions, a concurrency knob for the Workflow tool, and a long list of prompt-cache and terminal fixes.
New commands and settings
claude plugin eval runs a plugin's eval suite against Claude Code and returns scored, reproducible results as a JSON and HTML report. Run claude plugin eval --help for usage.
/output-style [name] lists and switches output styles — and it now works over Remote Control and in cloud and other headless sessions, not just interactive terminals.
When the Bash tool handles file edits, its result now includes a diff of the files the command changed. This is gated behind the bashEditDiffEnabled setting.
Two new environment variables target gateway and fan-out workloads:
CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS— extends the LLM gateway/v1/modelsdiscovery timeout (default 3s).CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS(1–256) — raises the Workflow tool's per-run concurrent agent limit for inference-bound fan-outs.
Observability got two additions: OTEL_METRICS_INCLUDE_REPOSITORY tags OpenTelemetry metrics and events with vcs.* repository attributes, and with OTEL_LOG_TOOL_DETAILS commit events pick up vcs.ref.head.*.
Prompt cache fixes
Two cache-related bugs are fixed. First, the prompt cache was being partially invalidated on the turn after a response was cut off at the output-token limit and automatically resumed. Second, resuming a session after interrupting Claude mid-thought could change how earlier context was re-sent, hurting prompt-cache reuse.
Terminal and keyboard fixes
A regression from 2.1.247 broke several keybindings. Fixed in this release: F1/F2/F4 in kitty-protocol terminals, Delete in st, Alt+arrows acting as Escape in rxvt-unicode, and Shift+punctuation typing the unshifted key in WezTerm. Also fixed stray capability-query replies (^[[?1;2c) appearing at startup, blank rows at the top or bottom of the transcript after a fullscreen resize, and synchronized output being assumed on GNOME Terminal and Konsole versions that don't support it.
Session, plugin, and permission fixes
- Deny or ask permission rules starting with
!no longer apply beyond the settings source that wrote them; a bare!negation is ignored. - The git status Claude sees after a compaction is now the current status, not the one from session start.
- Synced plugin MCP servers connect again when a remote session resumes.
- Resumed headless sessions no longer lose a turn's replies when the model was switched or a request retried mid-turn.
- Plugin LSP servers that reject
shutdownparams (e.g. rust-analyzer) now getexitsent even ifshutdownfails. - CMYK JPEGs now attach instead of failing with "cannot decode"; they're converted and resized like other JPEGs.
- The attribution reminder no longer overrides a CLAUDE.md or memory rule against commit and PR attribution — managed settings still apply.
- Prompt suggestions are no longer dropped for Japanese, Chinese, Thai, and other languages written without spaces.
permission_denialsin--output-format stream-jsonnow include Read, Edit, and Write calls blocked by path-scoped deny rules./insightsnow falls back to the session model on Bedrock, Vertex, Foundry, and gateway deployments that can't reach the default Opus model.
Headless and remote sessions that reported "waiting for your input" while background agents were still running are fixed; set CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0 to restore the old behavior. A spinner tip now suggests /focus for a view with just your prompt, a one-line work summary, and the response.
📖 Read the full source: GitHub Claude-Code
👀 See Also

Anthropic releases Claude Code Remote Control for mobile development
Anthropic has launched Remote Control, a feature that lets Claude Code users control their local development sessions from mobile devices. Available initially to Claude Max subscribers, it requires version 2.1.52 and uses a QR code to sync sessions.

PS3 Emulator Devs Ask Devs to Stop Submitting AI-Generated PRs
RPCS3 maintainers have publicly requested users stop submitting pull requests generated by AI code agents, citing low quality and maintenance burden.

Anthropic blocks third-party harnesses from Claude subscription limits, workaround available
Anthropic has restricted third-party harnesses from accessing Claude subscription limits, potentially disrupting workflows that rely on these tools. A Reddit user reports developing an open-source workaround after nearly losing months of training data.

Claude Code v2.1.153 Ships Skip LFS, MCP Fixes, and Agent Autocomplete
Claude Code v2.1.153 adds skipLfs option for Git LFS avoidance, fixes MCP server reconnect-loops, and improves agent dispatch with native slash command autocomplete.