claude-code - 💡(How to fix) Fix [FEATURE] Match terminal spinner verb behavior in VS Code (one verb per turn)

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fix / Workaround

The only workaround today is patching webview/index.js in the installed extension to rewrite the hardcoded interval array. That gets overwritten on every extension update.

RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet
  • This is a single feature request (not multiple features)

Problem Statement

The Claude Code VS Code extension and terminal CLI behave differently with spinnerVerbs. The terminal picks one random verb per Claude turn and keeps it on screen until the turn ends. The VS Code webview rotates through a shuffled list on a hardcoded [2000, 3000, 5000] ms schedule.

If you customize spinnerVerbs.verbs to multi-word phrases, the terminal shows them long enough to read. The VS Code webview swaps them out before you finish reading. The same setting produces a noticeably worse experience in one of the two surfaces.

Proposed Solution

Make the VS Code webview match the terminal: select one verb per turn and keep it for the duration of that turn, instead of rotating on an interval.

If continuous rotation is desired in the webview, expose the schedule in settings.json, for example:

"spinnerVerbs": { "mode": "replace", "verbs": ["..."], "rotationIntervals": [4000, 6000, 8000] } A rotationCadence: "match-terminal" | "fast" | "slow" enum would also work.

Alternative Solutions

The only workaround today is patching webview/index.js in the installed extension to rewrite the hardcoded interval array. That gets overwritten on every extension update.

Priority

Low - Nice to have

Feature Category

Configuration and settings

Use Case Example

  1. I customize spinnerVerbs.verbs in ~/.claude/settings.json with a long themed list of multi-word phrases.
  2. In the terminal CLI, each Claude turn shows one verb that stays put until the turn ends. Readable.
  3. In the VS Code extension, the same verbs cycle every 2-5 seconds and most are unreadable before they're replaced.
  4. With matching behavior (or a rotationIntervals setting), the customization works in both surfaces.

Additional Context

Verified by reading both bundles.

Terminal CLI: the verb is set once per Claude turn via something equivalent to spinnerVerb = sample(verbs), stored in a React useState lazy initializer that never resets. No rotation timer.

VS Code webview: the spinner component runs a setInterval that cycles through a shuffled copy of the verb list on a hardcoded [2000, 3000, 5000] ms schedule.

Related but distinct: #56453, #52532, #48807 cover which verbs are shown, not how often (or whether) they rotate.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [FEATURE] Match terminal spinner verb behavior in VS Code (one verb per turn)