Claude Code 2.1.118 adds Vim visual mode, MCP hooks, and DISABLE_UPDATES
Anthropic shipped Claude Code 2.1.118 with Vim v and V selection, hooks that can invoke MCP tools, merged usage commands, and an environment variable that blocks updates. The CLI gains tighter terminal editing and better fleet control for teams that pin versions or manage plugin and MCP behavior.

TL;DR
- ClaudeCodeLog's release post says Claude Code 2.1.118 ships 34 CLI changes, led by Vim visual mode, a stricter
DISABLE_UPDATESenv var, and$defaultssupport in auto mode. - The official Claude Code changelog and ClaudeCodeLog's changelog thread show that hooks can now call MCP tools directly, which pushes more workflow logic into hook configs instead of wrapper scripts.
- LLMpsycho's summary and ClaudeCodeLog's changelog thread both note that
/costand/statsnow fold into/usage, while/themenow manages named custom themes. - The noisiest operational change is
DISABLE_UPDATES, which ClaudeCodeLog's changelog thread describes as blocking every update path, including manualclaude update, not just the auto-updater.
You can read the official changelog, skim the release diff summary, and drill into the CLI surface changes. The weirdly useful bit is that $defaults now merges custom auto-mode rules with built-ins instead of replacing them, per ClaudeCodeLog's release post. Another small but real quality-of-life ship is that plugin themes can now live in a themes/ directory, according to ClaudeCodeLog's changelog thread.
Vim visual mode
Claude Code now supports Vim visual mode with v and visual-line mode with V, plus selection operators and visual feedback.
That is a narrow feature, but it hits a daily paper cut. Claude Code already lived in terminal-heavy workflows, and this closes one of the more obvious editing gaps versus tools that lean harder into modal keyboard control.
MCP hooks and auto mode
The most consequential config change is hidden below the headline features. According to ClaudeCodeLog's changelog thread, hooks can now invoke MCP tools directly with type: "mcp_tool", and auto mode now accepts $defaults inside allow, soft_deny, and environment so teams can extend the built-in rules instead of replacing them.
This lands next to a large MCP auth cleanup in the same release. The changelog lists fixes for transient 401 loops, missing expires_in fields, step-up consent handling, refresh locking, revoked tokens, and credential corruption on Linux and Windows, all in the official changelog.
DISABLE_UPDATES and /usage
Anthropic also added a harder version-pinning switch. ClaudeCodeLog's changelog thread says DISABLE_UPDATES blocks all update paths, including manual claude update, and is stricter than DISABLE_AUTOUPDATER.
The same release merges /cost and /stats into /usage, while keeping the old commands as shortcuts, according to LLMpsycho's summary and the official changelog. Custom themes also move into first-class CLI territory through /theme, with JSON files stored under ~/.claude/themes/ and plugin-shipped themes supported in a themes/ directory, per ClaudeCodeLog's changelog thread.
CLI surface
The release also quietly expands the command surface. ClaudeCodeLog's additional updates lists a new tag command, new flags including --dry-run, --message, --push, and --remote, plus new env vars for bridge reattachment and updates.
That same diff says 2.1.118 landed about 1 day and 3 hours after 2.1.117, grew the bundle by 263.6 kB, or 0.7%, and left prompt files and prompt-token counts unchanged in the tracked metadata ClaudeCodeLog's additional updates.