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.

Claude Code 2.1.84: PowerShell, MCP Dedup, Voice Fixes

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