Claude Code 2.1.84: PowerShell, MCP Dedup, Voice Fixes
PowerShell tool preview, MCP deduplication, voice fixes, and 30ms startup improvement. Plus fixes for emoji rendering, IME input, and terminal cursor tracking.
TL;DR
- PowerShell tool now available as opt-in preview for Windows users
- MCP servers deduplicated when configured locally and via claude.ai connectors
- Voice push-to-talk fixed — no more character leaks into text input
- Startup performance improved ~30ms; MCP server startup no longer blocks REPL rendering
New
- PowerShell tool (Windows preview) — Opt-in shell tool for Windows alongside bash, giving you native PowerShell scripting in Claude Code.
- Environment variable overrides for model detection — `ANTHROPIC_DEFAULT_{OPUS,SONNET,HAIKU}_MODEL_SUPPORTS` env vars let you override effort/thinking capability detection for pinned default models on Bedrock, Vertex, and Foundry. Also added `_MODEL_NAME` and `_DESCRIPTION` to customize the `/model` picker.
- Streaming idle timeout configuration — New `CLAUDE_STREAM_IDLE_TIMEOUT_MS` env var to tune the streaming watchdog (default 90s).
- TaskCreated hook — Fires when a task is created via `TaskCreate`.
- WorktreeCreate hook for HTTP type — Return the created worktree path via `hookSpecificOutput.worktreePath` in the response JSON.
- Channel plugin allowlist — `allowedChannelPlugins` managed setting for team/enterprise admins to restrict which plugins can be used.
- Request ID header for debugging — API requests now include `x-client-request-id` header to help track timeout issues.
- Idle-return prompt — Users returning after 75+ minutes now see a nudge to `/clear`, reducing unnecessary token re-caching on stale sessions.
- Deep links open in preferred terminal — `claude-cli://` links now respect your terminal preference instead of using whichever terminal is detected first.
- YAML list support for rules/skills paths — The `paths:` frontmatter now accepts a YAML list of globs for more flexible path matching.
- MCP deduplication — When MCP servers are configured both locally and via claude.ai connectors, the local config wins and duplicates are removed.
- Token count formatting — Counts ≥1M now display as "1.5m" instead of "1512.6k" for readability.
- System-prompt caching with ToolSearch — Global system-prompt caching now works when `ToolSearch` is enabled, even for users with MCP tools.
Fixed
- Voice push-to-talk character leak — Holding the voice key no longer leaks characters into text input, and transcripts now insert at the correct position.
- Arrow key responsiveness — Up/down arrow keys now work when a footer item is focused.
- Ctrl+U at line boundaries — Kill-to-line-start now works correctly at line boundaries in multiline input, so repeated `Ctrl+U` clears across lines.
- Null-binding chord keys — Unbinding a default chord (e.g. `"ctrl+x ctrl+k": null`) no longer enters chord-wait mode.
- Mouse events in search — Mouse events no longer insert literal "mouse" text into transcript search input.
- Workflow subagent schema conflicts — Fixed API 400 errors when outer session uses `--json-schema` and subagent also specifies a schema.
- Emoji background rendering — Fixed missing background color behind certain emoji in user message bubbles on some terminals.
- Edit settings permission sticking — The "allow Claude to edit its own settings" permission now persists for users with `Edit(.claude)` allow rules.
- Attachment snippet generation hang — Fixed hang when generating snippets for large edited files.
- MCP tool/resource cache leak — Fixed cache leak on server reconnect.
- Partial clone repository startup — Fixed performance issue where Scalar/GVFS repositories triggered mass blob downloads on startup.
- Native terminal cursor tracking — Cursor now tracks text input caret correctly, so IME composition (CJK input) renders inline and screen readers follow input position.
- Transient keychain errors on macOS — Fixed spurious "Not logged in" errors caused by transient keychain read failures.
- Cold-start race condition — Fixed core tools being deferred without bypass active, causing Edit/Write to fail with InputValidationError.
Improved
- Startup performance — Interactive startup improved ~30ms by running `setup()` in parallel with slash command and agent loading.
- MCP server startup — `claude "prompt"` with MCP servers now renders the REPL immediately instead of blocking until all servers connect.
- Remote Control blocking messages — Now shows specific reason when blocked instead of generic "not yet enabled" message.
- Dangerous removal detection — Improved detection for dangerous removals of Windows drive roots (`C:\`, `C:\Windows`, etc.).
- Prompt cache rate — Improved p90 prompt cache rate.
- Session scrolling — Reduced scroll-to-top resets in long sessions by making the message window immune to compaction and grouping changes.
- Terminal flickering — Reduced flickering when animated tool progress scrolls above the viewport.
- Issue/PR link detection — References now only become clickable links when written as `owner/repo#123` — bare `#123` is no longer auto-linked.
- Slash command visibility — Commands unavailable for current auth setup (`/voice`, `/mobile`, `/chrome`, `/upgrade`, etc.) are now hidden instead of shown.
- VSCode rate limit warning — Added banner showing usage percentage and reset time.
- Stats screenshot performance — Ctrl+S in `/stats` now works in all builds and is 16× faster.
Update Claude Code via your extension marketplace or see the full changelog.
Source: Claude Code