Claude Code v2.1.169: Safe Mode, /cd Command, and a Pile of Bug Fixes
Claude Code v2.1.169 adds --safe-mode for clean troubleshooting sessions, a /cd command that preserves prompt cache, and fixes for Windows, background agents, and enterprise MCP policies.
Claude Code v2.1.169 landed on June 8, 2026 with 30 CLI changes, and while the headline features are small in number, they solve some genuinely frustrating problems. If you use Claude Code on Windows, run it in an enterprise environment, or have ever spent time wondering whether a weird bug was caused by your config or the tool itself, this release has something for you.
A Clean Slate for Troubleshooting: --safe-mode
The new --safe-mode flag (also available as the CLAUDE_CODE_SAFE_MODE environment variable) starts a session with every customization layer stripped out. That means no CLAUDE.md, no plugins, no skills, no hooks, and no MCP servers.
If you have ever hit a confusing error and spent twenty minutes working out whether it was your project config, a plugin, or Claude Code itself causing the problem, this flag cuts straight to the answer. Start with --safe-mode, reproduce the issue, and you know it is a tool bug. Does not reproduce? Start re-enabling layers one at a time until you find the culprit.
It is the kind of thing that sounds obvious once it exists, but was genuinely missing before.
Changing Directory Without Breaking Your Session: /cd
The new /cd command lets you switch working directories mid-session while preserving the prompt cache.
That second part matters. Normally, changing context in a session would invalidate the cached prompts, forcing the model to re-process everything it has already seen. Claude Code’s /cd implementation is engineered specifically to avoid that, so you can move between directories in a long session without paying a performance penalty or losing the context the model has already built up.
For developers working across monorepos or projects with multiple sub-directories, this is a practical quality-of-life improvement. Previously, switching directory mid-session was awkward enough that starting a fresh session was often the easier choice.
Hiding Built-in Skills: disableBundledSkills
A new disableBundledSkills setting (with a matching CLAUDE_CODE_DISABLE_BUNDLED_SKILLS env var) hides Claude Code’s bundled skills, workflows, and built-in slash commands from the model entirely.
This is primarily aimed at teams deploying Claude Code in controlled or minimal configurations, where you want precise control over what the model can do and do not want it reaching for built-in behaviours that might not suit your environment. Enterprise platform teams building on top of Claude Code will likely find this useful for standardising deployments.
Background Agent and Enterprise Fixes Worth Knowing About
The bug fix list is long, but a few items stand out depending on how you use Claude Code.
Background agents ignoring project settings. When a background agent was dispatched onto a pre-warmed worker, it was ignoring project-level env values, including things like ANTHROPIC_MODEL. So your carefully configured settings were silently not applying. That is now fixed.
Enterprise MCP policy enforcement. If your organisation uses allowedMcpServers or deniedMcpServers to manage MCP access, those policies were not consistently enforced in several situations: on reconnect, with IDE-entered configs, with --mcp-config servers during the first session after install, and before remote settings had finished loading. All of those gaps are closed in this release. There was also a cold-start performance issue for organisations without remote settings configured, which is fixed too.
Remote Control reconnection. A specific but annoying bug where Remote Control would get stuck showing “reconnecting” after a session resumed at the same time as an OAuth token refresh has been resolved.
Windows claude -p hang. A regression introduced in v2.1.161 was causing claude -p to slow down or appear to hang on Windows because it was waiting on slash-command and skill scans. Fixed.
macOS UI stall. Users logged in with claude.ai credentials on macOS were seeing a 30-50ms UI stall at the start of each turn. Small, but noticeable if you are sensitive to responsiveness. Fixed.
WSL/Windows Terminal display glitch. The agents view was leaving a stale or garbled frame after navigating back from an agent on WSL in Windows Terminal. Also fixed: the MCPB plugin cache was being spuriously invalidated on Windows, causing unnecessary re-extraction on startup.
A Security Fix Worth Noting
One item in the security category: untrusted project settings could previously set OpenTelemetry client certificate paths without requiring trust confirmation. That is now blocked. It is a narrow attack surface, but the kind of thing that matters in environments where project files might come from external or untrusted sources.
What Changed for claude agents
The claude agents --json command got a quiet but useful update. It now omits blocked and just-dispatched background sessions from the default output to reduce noise, and a new --all flag brings back completed sessions when you need the full picture. The output also gains id and state fields, making it more useful for scripting and automation on top of Claude Code.
The Bigger Picture
This release does not introduce anything that will change how most people think about Claude Code. What it does is make the tool more reliable in the places where it was quietly misbehaving: Windows environments, enterprise policy enforcement, background session management, and session handling edge cases.
The --safe-mode flag is the kind of feature that will save disproportionate amounts of time when you actually need it. The /cd command removes a small but real friction point. And the enterprise MCP fixes address gaps that would have been difficult to even diagnose without knowing exactly what to look for.
For the full changelog, the Claude Code releases page on GitHub has the complete list of changes.