TL;DR

Claude Code CLI 2.1.118 ra mắt 23/04/2026. Bản này vừa thêm vim visual mode (v/V), DISABLE_UPDATES env var chặt hơn DISABLE_AUTOUPDATER, hợp nhất /cost + /stats thành /usage, thêm custom themesMCP tool hooks — vừa chạy một đợt quét bug dày đặc, chủ yếu quanh MCP OAuth, /fork, credential storage và hooks. Đây là một trong những bản 2.1.x có nhiều fix nhất, hưởng lợi lớn cho ai dùng nhiều MCP server đồng thời.

What's new

  • Vim visual mode — thêm v (visual) và V (visual-line) với selection, operators (y/d/c) và visual feedback. Bổ sung mảnh ghép còn thiếu sau normal + insert mode.
  • DISABLE_UPDATES env var — chặn toàn bộ update paths bao gồm cả claude update chạy tay. Chặt hơn DISABLE_AUTOUPDATER (cái cũ chỉ chặn background update).
  • /usage thay cho /cost/stats — cả hai tên cũ còn alias như shortcut mở đúng tab, không break script.
  • Custom themes — tạo & switch theme tên tuỳ ý từ /theme, hand-edit JSON ở ~/.claude/themes/, plugin ship được theme qua folder themes/.
  • Hooks gọi thẳng MCP tool — hỗ trợ type: "mcp_tool", không cần wrap shell.
  • claude plugin tag — command mới tạo release git tag cho plugin kèm version validation.
  • WSL inherit Windows settings — policy key wslInheritsWindowsSettings cho Claude Code chạy trong WSL kế thừa managed settings bên Windows.
  • Auto mode $defaults — thêm "$defaults" vào autoMode.allow / soft_deny / environment để cộng rule custom vào built-in thay vì replace.
  • /color sync Remote Control — accent màu session tự sync sang claude.ai/code khi Remote Control kết nối.
  • /model picker — honor ANTHROPIC_DEFAULT_*_MODEL_NAME / _DESCRIPTION overrides khi dùng custom ANTHROPIC_BASE_URL gateway.
  • --continue/--resume giờ tìm được session đã thêm thư mục hiện tại qua /add-dir.

Why it matters

Hai nhóm user hưởng lợi rõ rệt nhất:

  • Enterprise / DevOps: kết hợp DISABLE_UPDATES + wslInheritsWindowsSettings giúp pin version CLI trên fleet, không cho dev tự upgrade lệch pha giữa các máy — vấn đề DISABLE_AUTOUPDATER cũ không giải được vì vẫn cho claude update tay.
  • MCP power user: ai kết nối GitHub / Linear / Notion / Gmail MCP song song sẽ đỡ hẳn prompt “Please run /login” bất thường, đỡ “needs authentication” sau 401 thoáng qua, và không còn re-auth mỗi giờ nếu OAuth response thiếu expires_in.

Technical facts

Điểm nhấn kỹ thuật đáng chú ý từ danh sách fix:

  • Keychain race (macOS): concurrent MCP token refresh có thể ghi đè OAuth token vừa refresh xong, gây prompt /login vô lý — đã fix.
  • OAuth cross-process lock: refresh MCP OAuth giờ giữ đúng lock dưới contention, tránh double-refresh.
  • Token revoke trước expiry: refresh không còn crash khi server revoke token sớm hơn local expiry.
  • Credential save: fix crash trên Linux/Windows làm corrupt ~/.claude/.credentials.json.
  • /fork: trước đây ghi toàn bộ parent conversation lên disk cho mỗi fork — giờ chỉ ghi pointer và hydrate khi đọc. Giảm disk footprint lớn cho user fork nhiều lần.
  • Agent-type hooks: fail với “Messages are required for agent hooks” khi config cho event khác Stop/SubagentStop — đã fix.
  • Prompt hooks: không còn re-fire trên tool call của verifier subagent thuộc agent-hook.
  • Subagent resume: subagent resume qua SendMessage giờ khôi phục đúng cwd nguyên gốc lúc spawn.
  • Remote Control: session không còn bị archive vì CCR initialization blip thoáng qua khi JWT refresh.
  • CLAUDE_CODE_OAUTH_TOKEN: session launch với env token này thì /login từng no-op — giờ env token bị clear để disk credentials có hiệu lực.

Comparison — DISABLE_UPDATES vs DISABLE_AUTOUPDATER

Env varChặn auto-update nềnChặn claude update tayUse case
DISABLE_AUTOUPDATERKhôngGiữ version ổn định tạm thời, dev vẫn upgrade thủ công được
DISABLE_UPDATES (mới)Locked-down enterprise fleet, version do MDM/package manager quản lý

Use cases

  • Enterprise locked-down: set DISABLE_UPDATES=1 ở machine scope, update qua apt/brew/MDM có kiểm soát.
  • WSL + Windows domain: bật wslInheritsWindowsSettings để policy bên Windows áp xuống CLI chạy trong WSL, không phải config hai nơi.
  • Plugin author: dùng claude plugin tag để bump version + tạo git tag đồng bộ, tránh lệch plugin.json với git tag.
  • Vim editing: chỉnh prompt dài trong textarea — V select cả dòng, d cắt, p dán; v + motion cho selection nhỏ hơn.
  • Auto mode custom rules: thêm rule riêng mà vẫn giữ defaults, ví dụ autoMode.allow: ["$defaults", "Bash(npm test)"].

Limitations & pricing

  • Pricing: miễn phí — Claude Code CLI nằm trong plan Claude hiện tại (Pro/Max/Team); chi phí tính theo usage của model.
  • Upgrade: npm i -g @anthropic-ai/claude-code@latest hoặc pnpm add -g @anthropic-ai/claude-code@latest. Auto-update sẽ tự pull nếu chưa tắt.
  • Breaking: không có. /cost/stats còn alias.
  • Caveats: DISABLE_UPDATES chặn cả claude update — cần kênh deploy ngoài (MDM, package manager) để kiểm soát version. Visual mode mới, có thể còn edge case với wide/composed characters.

What's next

Cadence gần đây của Claude Code là xấp xỉ một bản minor mỗi ngày, với 2.1.x nghiêng về polish thay vì feature lớn. Bản 2.1.118 đóng đinh phần MCP OAuth đã gây đau đầu suốt vài tuần; nhiều khả năng track 2.1 sẽ chốt sớm để nhường chỗ cho một bản minor mới với feature lớn hơn.

Nguồn: anthropics/claude-code CHANGELOG, code.claude.com changelog, @ClaudeCodeLog trên X.