TL;DR

Claude Code 2.1.118 landed roughly 27 hours after 2.1.117 with a mix of editor UX and plugin-ecosystem work. Biggest headline items: vim visual mode (v / V) in the prompt, a new claude plugin tag command for cutting validated release tags, a stricter DISABLE_UPDATES env var that blocks even manual claude update, merged /cost+/stats into /usage, named custom themes in ~/.claude/themes/, and hooks that can invoke MCP tools directly via type: "mcp_tool". Bundle size up +263.6 kB (+0.7%), prompt token count unchanged.

What's new

  • Vim visual mode in the prompt — character selection with v, line selection with V, operators, visual feedback.
  • /usage replaces /cost and /stats. Old names still work as shortcuts to the right tab.
  • Named custom themes — create and switch via /theme, or hand-edit JSON in ~/.claude/themes/. Plugins can ship a themes/ directory.
  • Hooks can invoke MCP tools directly with type: "mcp_tool" — no more shelling out.
  • claude plugin tag — new CLI command to create release git tags for plugins, with version validation.
  • DISABLE_UPDATES env var — stricter than DISABLE_AUTOUPDATER, blocks claude update too.
  • WSL policy: wslInheritsWindowsSettings lets WSL inherit Windows-side managed settings.
  • Auto mode: include "$defaults" in autoMode.allow / soft_deny / environment to extend the built-in list instead of replacing it. "Don't ask again" option added to the auto-mode opt-in prompt.
  • --continue/--resume now find sessions that added the current directory via /add-dir.
  • /color now syncs the session accent to claude.ai/code when Remote Control is connected.

Technical facts

CLI surface deltas pulled from the public changelog mirror:

SurfaceBefore (2.1.117)After (2.1.118)Delta
Commands3334+1 (tag)
Options7278+6
Env vars560563+3
Models9596+1 (claude-desktop-3p)
Bundle size+263.6 kB (+0.7%)
Prompt files+0
Prompt tokens+0 (100% system-reminder)

New options: --dry-run, -m, --message <msg>, --push, --remote <name>, -f, --force. New env vars: CLAUDE_BRIDGE_REATTACH_SEQ, CLAUDE_BRIDGE_REATTACH_SESSION, DISABLE_UPDATES. The claude-desktop-3p model entry isn't separately documented — likely a desktop-app integration model, not a general inference target.

Why it matters

2.1.117 was an infrastructure polish release — concurrent MCP connects, reactive OAuth refresh, a native bfs/ugrep swap-in for Glob/Grep on macOS and Linux, and a fix for Opus 4.7 computing context against a 200K window instead of its native 1M. 2.1.118 pivots to plugin-ecosystem ergonomics and editor UX. If you write plugins, the claude plugin tag command with --push, --remote, --dry-run, -m, and -f replaces the usual git tag + git push --tags dance with one validated step. If you deploy Claude Code in managed environments, DISABLE_UPDATES=1 now locks the version hard — no more users running claude update to bypass your pin.

Use cases

  • Plugin authors: claude plugin tag -m "v1.2.0" --push --remote origin to cut a release. --dry-run previews before pushing.
  • Enterprise / managed deploys: set DISABLE_UPDATES=1 to pin a specific version. Combine with WSL wslInheritsWindowsSettings so Windows and WSL share the same policy.
  • Terminal power users: V + d to cut a line in the prompt, v + c to change a selection — real modal editing.
  • Theme tweakers: ship a themed plugin, or just drop JSON into ~/.claude/themes/.
  • Hook authors: fire MCP tools from hooks directly with type: "mcp_tool".

Notable fixes

2.1.118 also closes a long tail of OAuth and plugin bugs: MCP OAuth refresh without cross-process lock, macOS keychain race overwriting refreshed tokens, credential-save crash on Linux/Windows corrupting ~/.claude/.credentials.json, /login being a no-op when launched with CLAUDE_CODE_OAUTH_TOKEN, /fork writing the full parent conversation per fork (now a pointer), and subagents resumed via SendMessage losing their explicit cwd.

What's next

Sub-daily release cadence is normal now — the community mirror has logged 159+ versions since 2.0.14. Expect 2.1.119 within a day or two, likely with follow-up fixes for anything reported on vim visual mode or the new plugin tag flow. Update with claude update (or npm i -g @anthropic-ai/claude-code), unless you've already set DISABLE_UPDATES=1.

Sources: anthropics/claude-code CHANGELOG, marckrenn CLI-surface diff, release v2.1.118.