AI Frontier Labs Release Notes Podcast

Claude Code v2.1.118 — Vim visual mode, hooks call MCP tools, /usage consolidation


Listen Later

What's new in Claude Code v2.1.118

A meaty release. Vim users finally get visual mode (v) and visual-line mode (V) in the prompt editor. Hooks can now invoke MCP tools directly via a new type: "mcp_tool" action — a real declarative-pipeline unlock. /cost and /stats merge into /usage, and there's a real custom theme system that plugins can ship into. Plus a stricter DISABLE_UPDATES env var, WSL inheriting Windows-side managed settings, an auto-mode $defaults sentinel that fixes a common config footgun, a claude plugin tag command for plugin authors, smarter --continue/--resume for monorepo subprojects, /color sync to Remote Control, and gateway model-name overrides honored by /model.

Vim visual mode (v) and visual-line mode (V) land in the prompt editor

Why: Vim-mode users had motions and operators but no selection primitive, so half of vim's real power was missing from the prompt editor.

What: Adds visual mode (v) and visual-line mode (V) with selection, operators, and visual feedback to the built-in vim editor.

How: Enable vim mode, then press v or V in the prompt editor to start a selection.

/usage merges /cost and /stats

Why: Two overlapping commands for billing and session stats made users hunt for the right one.

What: Merges /cost and /stats into a single /usage command; both old names remain as typing shortcuts that open the relevant tab.

How: Type /usage for the consolidated view; /cost and /stats still work and jump straight to their tab.

Named custom themes plus plugin-shipped themes

Why: Theme customization was limited to a fixed set, and plugin authors couldn't ship branded styling.

What: Adds named custom themes via /theme, hand-editable JSON files in ~/.claude/themes/, and a themes/ directory plugins can ship themes from.

How: Run /theme, create a named theme, or drop JSON into ~/.claude/themes/; plugin authors add a themes/ directory.

Hooks can invoke MCP tools directly

Why: Hooks wanting to call an MCP tool had to shell out to a command or HTTP request, breaking declarative hook config.

What: Adds a new hook action type: "mcp_tool" that invokes an MCP tool directly from a hook definition.

How: In your hook config, set type: "mcp_tool" with the target server and tool name.

DISABLE_UPDATES env var blocks all update paths

Why: DISABLE_AUTOUPDATER stopped background updates but claude update could still run, leaving change-controlled environments exposed.

What: Adds a new DISABLE_UPDATES env var that blocks all update paths including manual claude update.

How: export DISABLE_UPDATES=1 in your shell profile or deployment environment.

WSL inherits Windows-side managed settings

Why: Enterprise admins had to apply managed settings twice — once for Windows, once for each WSL distro — doubling policy drift risk.

What: Adds wslInheritsWindowsSettings policy key so WSL on Windows can inherit Windows-side managed settings.

How: Set wslInheritsWindowsSettings: true in the managed-settings policy.

Auto mode $defaults sentinel

Why: Adding a single custom rule to autoMode.allow/soft_deny/environment silently replaced the entire built-in list — a common footgun.

What: Adds a "$defaults" sentinel you can include in autoMode.allow, autoMode.soft_deny, or autoMode.environment to preserve the built-in list alongside your custom rules.

How: Include "$defaults" in the array to keep built-ins; omit it to replace them.

"Don't ask again" on the auto mode opt-in prompt

Why: Users re-approving auto mode on every launch got prompt fatigue.

What: Adds a "Don't ask again" option to the auto mode opt-in prompt.

How: Check "Don't ask again" when prompted.

claude plugin tag for plugin authors

Why: Plugin authors had to create release tags manually, and version validation was ad-hoc.

What: Adds claude plugin tag which creates release git tags for plugins with version validation.

How: Run claude plugin tag in the plugin directory.

--continue / --resume finds sessions added via /add-dir

Why: Monorepo users pulling subprojects with /add-dir couldn't resume those sessions from elsewhere in the tree.

What: --continue and --resume now find sessions that added the current directory via /add-dir, not only sessions natively rooted there.

How: claude --continue or claude --resume from any directory that was added to a prior session via /add-dir.

/color syncs accent color to Remote Control

Why: Remote Control sessions on mobile/web didn't match the accent color set in the terminal.

What: /color now syncs the session accent color to claude.ai/code when Remote Control is connected.

How: Run /color in a Remote Control-connected session; the color propagates to the web/mobile view.

/model picker honors gateway default overrides

Why: Enterprise users on a custom ANTHROPIC_BASE_URL gateway had the default model names/descriptions show as upstream defaults instead of their overrides.

What: /model picker now honors ANTHROPIC_DEFAULT_*_MODEL_NAME and ANTHROPIC_DEFAULT_*_MODEL_DESCRIPTION overrides when using a custom ANTHROPIC_BASE_URL.

How: Set the env vars alongside ANTHROPIC_BASE_URL; /model reflects them.

Plugin auto-update skips surface in /doctor and /plugin Errors

Why: When auto-update skipped a plugin because another plugin's version constraint blocked it, users had no way to see what got held back.

What: When auto-update skips a plugin due to another plugin's version constraint, the skip now appears in /doctor and the /plugin Errors tab.

How: Check /doctor or the /plugin Errors tab to see skip reasons.

Hosts: Alex Chen & Sarah Kim · Generated from the official Claude Code CHANGELOG.

Full changelog: github.com/anthropics/claude-code/CHANGELOG.md

Claude Code docs: code.claude.com/docs

  • (00:00) - Vim visual mode lands in the prompt editor
  • (00:57) - /usage merges /cost and /stats
  • (01:18) - Custom themes plus plugin theme surface
  • (01:43) - Hooks can invoke MCP tools...
  • ...more
    View all episodesView all episodes
    Download on the App Store

    AI Frontier Labs Release Notes PodcastBy Andrei