Claude Code v2.1.118 adds Vim visual mode, custom themes, and MCP improvements

What's new in Claude Code v2.1.118
Claude Code v2.1.118 includes several significant feature additions and bug fixes focused on editor functionality, customization, and MCP server stability.
Key features and changes
- Vim visual modes: Added
v(visual mode) andV(visual-line mode) with selection, operators, and visual feedback - Usage command consolidation: Merged
/costand/statsinto/usage— both remain as typing shortcuts that open the relevant tab - Custom theme management: Create and switch between named custom themes from
/theme, or hand-edit JSON files in~/.claude/themes/; plugins can also ship themes via athemes/directory - MCP tool invocation: Hooks can now invoke MCP tools directly via
type: "mcp_tool" - Update blocking: Added
DISABLE_UPDATESenv var to completely block all update paths including manualclaude update— stricter thanDISABLE_AUTOUPDATER - WSL settings inheritance: WSL on Windows can now inherit Windows-side managed settings via the
wslInheritsWindowsSettingspolicy key - Auto mode customization: Include
"$defaults"inautoMode.allow,autoMode.soft_deny, orautoMode.environmentto add custom rules alongside the built-in list instead of replacing it - Auto mode prompt: Added a "Don't ask again" option to the auto mode opt-in prompt
- Plugin tagging: Added
claude plugin tagto create release git tags for plugins with version validation - Session continuation:
--continue/--resumenow find sessions that added the current directory via/add-dir - Color sync:
/colornow syncs the session accent color to claude.ai/code when Remote Control is connected - Model picker overrides: The
/modelpicker now honorsANTHROPIC_DEFAULT_*_MODEL_NAME/_DESCRIPTIONoverrides when using a customANTHROPIC_BASE_URLgateway - Plugin update visibility: When auto-update skips a plugin due to another plugin's version constraint, the skip now appears in
/doctorand the/pluginErrors tab
Bug fixes
The release includes numerous fixes, primarily focused on MCP authentication stability and user experience improvements:
- Fixed
/mcpmenu hiding OAuth Authenticate/Re-authenticate actions for servers configured withheadersHelper - Fixed HTTP/SSE MCP servers with custom headers being stuck in "needs authentication" after a transient 401
- Fixed MCP servers whose OAuth token response omits
expires_inrequiring re-authentication every hour - Fixed MCP step-up authorization silently refreshing instead of prompting for re-consent when the server's
insufficient_scope403 names a scope the current token already has - Fixed an unhandled promise rejection when an MCP server's OAuth flow times out or is cancelled
- Fixed MCP OAuth refresh proceeding without its cross-process lock under contention
- Fixed macOS keychain race where a concurrent MCP token refresh could overwrite a freshly-refreshed OAuth token
- Fixed OAuth token refresh failing when the server revokes a token before its local expiry time
- Fixed credential save crash on Linux/Windows corrupting
~/.claude/.credentials.json - Fixed
/loginhaving no effect in a session launched withCLAUDE_CODE_OAUTH_TOKEN— the env token is now cleared so disk credentials take effect - Fixed unreadable text in the "new messages" scroll pill and
/pluginbadges - Fixed plan acceptance dialog offering "auto mode" instead of "bypass permissions" when running with
--dangerously-skip-permissions - Fixed agent-type hooks failing with "Messages are required for agent hooks" when configured for events other than
StoporSubagentStop - Fixed
prompthooks re-firing on tool calls made by an agent-hook verifier subagent - Fixed
/forkwriting the full parent conversation to disk per fork — now writes a pointer and hydrates on read - Fixed Alt+K / Alt+X / Alt+^ / Alt+_ freezing keyboard input
- Fixed connecting to a remote session overwriting your local
modelsetting in~/.claude/settings.json - Fixed typeahead showing "No commands match" error when pasting file paths that start with
/ - Fixed
plugin installon an already-installed plugin not re-resolving a dependency installed at the wrong version - Fixed unhandled errors from file watcher on invalid paths or fd exhaustion
- Fixed Remote Control sessions getting archived on transient CCR initialization blips during JWT refresh
- Fixed subagents resumed via
SendMessagenot restoring the explicitcwdthey were spawned with
This release is particularly relevant for developers using Vim keybindings, customizing their Claude Code environment, or working with MCP servers that require OAuth authentication.
📖 Read the full source: GitHub Claude-Code
👀 See Also

Claude Code System Prompts v2.1.53-2.1.55: Memory Selection Added, Command Execution Removed
Claude Code system prompts versions 2.1.53 to 2.1.55 add memory selection instructions (156 tokens), remove command execution specialist (109 tokens), and reorganize prompts into ~70 atomic files. Background agents now auto-notify on completion instead of providing output file paths.

The Need for Relational Governance in Multi-Agent AI Systems
Current governance frameworks focus on identity, permissions, and kill switches, but fail to address coordination between agents. Salesforce's research shows agent-to-agent interactions require purpose-built solutions, while studies reveal warmth outperforms dominance in negotiations.

Claude Code v2.1.147: Pinned Sessions, /code-review, and Dozens of Fixes
Claude Code v2.1.147 introduces pinned background sessions, renames /simplify to /code-review with effort levels and --comment, plus fixes for PowerShell, MCP, Windows, and more.

Decoupled DiLoCo: Resilient Distributed Training Across Data Centers with Low Bandwidth
Google DeepMind's Decoupled DiLoCo trains LLMs across distant data centers using 2-5 Gbps WAN, with self-healing islands of compute that isolate hardware failures without degrading ML performance.