Claude Code 2.1.163 adds version pinning and in-turn Bash
Claude Code 2.1.163 adds managed min/max version enforcement, a tool that runs Bash and returns output in-turn, and exact-string replacements for Edit. It matters because teams get tighter CLI fleet control and less error-prone command and file mutation behavior in managed deployments.

TL;DR
- ClaudeCodeLog's release post says Claude Code 2.1.163 shipped 22 CLI changes, led by managed
requiredMinimumVersionandrequiredMaximumVersionsettings that block startup outside an approved range. - According to ClaudeCodeLog's changelog thread, 2.1.163 also adds
/plugin list, plus--enabledand--disabledfilters for inspecting installed plugins. - ClaudeCodeLog's release post also flagged a new tool that runs a provided bash command and returns the output in the same turn, a tighter loop than the older shell handoff pattern described in Anthropic's Bash tool docs.
- The same release makes the Edit tool perform exact string replacements, which lines up with Anthropic's text editor tool docs that describe
str_replaceas an exact match operation, and ClaudeCodeLog's summary frames it as protection against accidental pattern matches.
You can read the official GitHub release notes or the live CHANGELOG.md. Anthropic's own settings docs already treat managed settings as the highest-precedence scope, and ClaudeCodeLog's follow-up shows 2.1.163 quietly adding a new claude-empty-r model slug while removing CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS.
Version pinning
The biggest fleet-management change is startup enforcement. Per ClaudeCodeLog's detailed changelog, admins can now set managed requiredMinimumVersion and requiredMaximumVersion, and Claude Code will refuse to launch outside that window.
That fits Anthropic's settings documentation, which says managed settings sit above command-line, local, project, and user scopes and cannot be overridden. Before this release, managed settings could steer behavior. Now they can also pin the binary version itself.
Bash tool and exact edits
Two agent primitives changed in the same build.
- ClaudeCodeLog's release post says the new tool executes a provided bash command and returns its output in-turn.
- Anthropic's Bash tool docs describe the underlying pattern as a persistent shell session where command output comes back to Claude, which makes 2.1.163 look like a CLI-surface tightening around that loop.
- ClaudeCodeLog's release post also says Edit now performs exact string replacements instead of broader pattern matches.
- Anthropic's text editor docs describe
str_replacethe same way:old_strmust match exactly, including whitespace and indentation.
The practical theme is narrower mutation. Shell results come back immediately, and file edits get stricter matching semantics.
Plugins and managed-session fixes
The rest of 2.1.163 is a cleanup-heavy release, but a few items matter more than the raw count suggests.
/plugin listnow enumerates installed plugins, with--enabledand--disabledfilters, per ClaudeCodeLog's changelog thread.- Managed permission rules now apply for the whole session even when the managed-settings fetch finishes during startup on a fresh config directory, again per ClaudeCodeLog's changelog thread.
- Background agent sessions now update to a new Claude Code version in the background, so reopening a session no longer waits on a cold restart, according to ClaudeCodeLog's changelog thread.
- Stop and SubagentStop hooks can return
hookSpecificOutput.additionalContext, which lets hooks feed Claude more context without being labeled an error in the CHANGELOG.md.
That last cluster continues the pattern from LLMpsycho's 2.1.162 notes, which were already focused on agent view, startup reliability, MCP timing, and read-only boot fixes. Claude Code is still shipping features fast, but the real story in this week of releases is how much work is going into making managed and long-running sessions behave predictably.
Prompt surface changes
ClaudeCodeLog's diff account also caught a few lower-level shifts that did not make the headline bullets.
- ClaudeCodeLog's additional updates says 2.1.163 added a
claude-empty-rmodel slug. - The same post says the release removed
CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MSfrom the CLI surface. - ClaudeCodeLog's additional updates measured the bundle at +161.3 kB, with one more prompt file and 2,160 more prompt tokens.
- A couple of days earlier, ClaudeCodeLog's 2.1.161 release post and ClaudeCodeLog's system prompt note reported that Claude Code had already dropped its explicit "interactive software engineering agent" role framing.
Put together, 2.1.163 looks like a small feature release sitting on top of a still-moving prompt and runtime substrate.