Feature Request: Add environment variable to disable cursor shape changes

Resolved 💬 3 comments Opened Oct 29, 2025 by errordnk Closed Nov 1, 2025

Problem:
Claude Code changes the terminal cursor shape during execution using DECSCUSR escape sequences. This overrides user's terminal configuration (e.g., Windows Terminal profile settings with cursorShape: "vintage").

Even with PROMPT_COMMAND='echo -en "\e[3 q"' in bash, the cursor changes are visible during Claude's execution, which can be distracting for users who prefer a consistent cursor appearance.

Proposed Solution:
Add an environment variable to control cursor behavior:

  • CLAUDE_CODE_CURSOR_SHAPE=default - Don't emit any cursor shape escape sequences
  • CLAUDE_CODE_CURSOR_SHAPE=bar - Use bar cursor (current behavior)
  • CLAUDE_CODE_CURSOR_SHAPE=block - Use block cursor
  • CLAUDE_CODE_CURSOR_SHAPE=underscore - Use underscore cursor

Or simpler:

  • CLAUDE_CODE_DISABLE_CURSOR_CHANGES=true - Completely disable cursor modifications

Environment:

  • OS: Windows 11
  • Terminal: Windows Terminal
  • Shell: bash

Workarounds Tried:

  • Setting cursorShape in Windows Terminal profile (overridden by VT sequences)
  • Using PROMPT_COMMAND to reset cursor (only works between prompts, not during execution)

Similar Setting:
Claude Code already has CLAUDE_CODE_DISABLE_TERMINAL_TITLE for similar terminal control, this would follow the same pattern.

View original on GitHub ↗

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