Setting to hide built-in vim mode indicator when custom statusLine renders it

Resolved 💬 3 comments Opened Jun 8, 2026 by sindrehenriksen Closed Jul 15, 2026

Problem Statement

Since v2.1.119 the statusLine JSON exposes vim.mode, so custom statusLine scripts can render vim mode in their preferred style and position. However, Claude Code still renders its built-in -- INSERT -- / -- NORMAL -- indicator below the prompt unconditionally. This produces visible duplication when a custom statusLine already shows the same information.

Example:

[I] t:1.8k (12%) | main | opus 4.8 th:high   ← my custom statusLine
-- INSERT --                                  ← built-in, unhideable

Proposed Solution

A boolean setting in settings.json such as hideVimModeIndicator: true (default false) that suppresses the built-in vim mode indicator. Users who want to render vim mode themselves via the vim.mode field can opt in; everyone else keeps the current behavior.

Alternative Solutions

  • Always render the built-in indicator alongside the custom statusLine (current behavior) — accepts duplication.
  • Remove the built-in indicator entirely once vim.mode is in JSON — breaks users who haven't migrated their statusLine scripts.

A user-controlled opt-in setting avoids both downsides.

Use Case Example

  1. I run Claude Code with editorMode: "vim" and a custom statusLine that prefixes [N] / [I] / [V] based on .vim.mode.
  2. The built-in -- INSERT -- line below the prompt repeats the same information.
  3. Setting hideVimModeIndicator: true would let my single statusLine be the canonical display, freeing the row below the prompt for system messages and reducing visual noise.

Additional Context

Re-file of #53556, auto-closed by the stale bot for inactivity ("Please open a new issue if this is still relevant"). The data-exposure half of this area shipped in v2.1.119 (vim.mode in statusLine JSON); this issue narrowly targets the still-missing setting to hide the built-in indicator. Prior related: #19185, #18917, #16788.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗