What changed
v2.1.163 adds managed settings for version range enforcement (new fields: requiredMinimumVersion, requiredMaximumVersion), a /plugin list command with filter flags, hook output enrichment via hookSpecificOutput.additionalContext, propagation of CLAUDE_CODE_SESSION_ID to stdio MCP servers on --resume, and a \$ escape in skill command bodies; plus fixes for claude -p, Bash commands on Windows, permission rules, background sessions, and terminal rendering.
TL;DR
Claude Code v2.1.163 brings enterprise-grade version pinning (refuse to start if outside an allowed version range), a new plugin/skill management command, and a hook feedback mechanism that lets Stop/SubagentStop hooks inject context back to Claude without triggering a hook error — plus a batch of bug fixes across CLI, MCP, and Windows compatibility.
Developer signal
Three things worth acting on immediately. (1) Version pinning: If you deploy Claude Code at an organization level, set requiredMinimumVersion and requiredMaximumVersion in your managed settings JSON now. Claude Code will refuse to start if the installed version falls outside the range and will direct users to an approved version — preventing teams from running incompatible versions after a breaking update. Without this, background auto-updates can silently change behavior. (2) Hook additionalContext: If you have Stop or SubagentStop hooks that need to give Claude feedback (e.g., "this output failed a quality check, retry with these notes"), you can now return hookSpecificOutput.additionalContext from the hook to keep the turn going. Previously, hooks that returned output were treated as hook errors; now it's a first-class feedback channel. (3) MCP CLAUDE_CODE_SESSION_ID on --resume: If you use stdio MCP servers and want your server to correlate multiple resume sessions to the same original session, the session ID is now propagated through --resume. This is essential for stateful MCP servers that need session continuity. Update via npm i -g @anthropic-ai/claude-code@latest.