Add a setting to disable the hard-coded "Thinking" sub-line status messages during extended thinking

Resolved 💬 3 comments Opened Apr 18, 2026 by yanivprusman Closed Apr 22, 2026

What I see

During extended thinking, Claude Code renders a sub-line under the Thinking spinner with timed, whimsical status strings:

Thinking
  ⎿  Cross-referencing seventeen theories…

I'd like to disable just these sub-line messages, globally, without turning off extended thinking.

What's already configurable (and not sufficient)

In ~/.claude/settings.json:

  • spinnerTipsEnabled: false — disables the helper-tip system ("Use /clear to start fresh…", "Use /btw…"). Does not affect the "Cross-referencing…" sub-line. Already set to false in my config.
  • spinnerVerbs: { mode: "replace", verbs: ["Thinking"] } — locks the top-line verb. Does not affect the sub-line.
  • autoDreamEnabled — controls background memory consolidation (per the binary's own schema description: "Enable background memory consolidation (auto-dream)"). Unrelated.
  • alwaysThinkingEnabled: false — the only working "off switch" today, but it disables extended thinking entirely, which is a heavy tradeoff for users on Opus with effortLevel: "xhigh".

Where the messages come from

In the Claude Code binary (v2.1.114), a React component renders the sub-line. The messages are a hard-coded array:

[
  { afterMs:   1000, text: "Hmm…" },
  { afterMs:   6000, text: "This one needs a moment…" },
  { afterMs:  12000, text: "Working through it…" },
  { afterMs:  20000, text: "Untangling some thoughts…" },
  { afterMs:  28000, text: "Weighing a few approaches…" },
  { afterMs:  36000, text: "Consulting the rubber duck…" },
  { afterMs:  48000, text: "Cross-referencing seventeen theories…" },
  { afterMs:  60000, text: "Double-checking the double-checks…" },
  { afterMs:  80000, text: "Almost there…" },
  { afterMs: 108000, text: "Pacing in small circles…" },
  ...
]

The component gates only on isLoading + a store check that the mode is "thinking". There is no settings check.

Proposal

Add a user setting, e.g.:

"thinkingStatusMessagesEnabled": false

When false, the component returns null (or renders the Thinking verb without the sub-line). Default: true to preserve current behaviour.

Why this matters

Users who keep extended thinking on (for real capability reasons — high effortLevel, complex tasks) currently have no way to suppress the whimsical sub-line. spinnerTipsEnabled: false + spinnerVerbs: replace strongly signals the user's preference for a quiet UI, but the thinking sub-line bypasses both. A dedicated toggle respects that preference.

Environment

  • Claude Code v2.1.114
  • Linux, terminal UI
  • Relevant settings already in place: spinnerTipsEnabled: false, spinnerVerbs: { mode: "replace", verbs: ["Thinking"] }, prefersReducedMotion: true, effortLevel: "xhigh", autoDreamEnabled: true

View original on GitHub ↗

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