Blog · October 6, 2026 · 7 min read · by Vilva Athiban P B

Claude Code Spinner Verbs Explained: What “Pondering” and “Brewing” Mean, How to Change Them, and Why You Should Stop Watching the Spinner

If you have used Claude Code for more than an afternoon you have seen the words. Pondering. Noodling. Brewing. Spelunking. A random verb next to a spinner, a timer counting up, a token count, and underneath it a one-line tip about some command you did not know existed. People search for "claude code spinner verbs" and "claude code thinking words" for two reasons: they want to know whether the word means anything, and they want to change it. This post answers both from the current documentation, and then makes the case that the spinner is the one UI element you should stop staring at.

What the spinner verb actually means

Nothing. That is the short answer, and it is the honest one. The verb is picked at random each time a turn starts and shown while Claude Code waits for the model's response. "Pondering" is not a different state from "Brewing"; neither tells you whether Claude is reading files, writing code or reasoning about your question. The built-in list is a bit of personality, in the same family as the random loading messages in a video game, and the documentation describes the setting that controls it in exactly those terms: the verbs shown while a turn runs.

What does carry information is everything around the verb. The elapsed time tells you how long the turn has been going. The token count tells you roughly how much has been read and written. The tip line under the spinner is a rotating hint about a feature. And when the spinner is replaced by a tool call line, a permission prompt or a finished response, that change of state is the thing worth noticing, which is where the rest of this post ends up.

Changing the verbs: spinnerVerbs

The verbs are a settings key, so they can be replaced in any settings file: your user settings at ~/.claude/settings.json, a project's shared .claude/settings.json, or the local .claude/settings.local.json. The value is an array of strings, and the documented example replaces the built-in verbs with your own:

{
  "spinnerVerbs": ["Pondering", "Contemplating", "Analyzing"]
}

Claude Code picks one at random each time a turn starts. That means a single-entry array gives you a fixed word, which is what most people who search for this actually want: a plain "Working" instead of a thesaurus. A longer list keeps the variety but makes it yours. The one thing the array cannot do is make the word meaningful: there is no mapping from verb to activity, so do not write verbs that look like states ("Reading files", "Running tests") or you will mislead yourself.

Because it is an ordinary setting it follows the normal precedence rules: managed settings beat the command line, which beats project local, which beats shared project, which beats user. If a teammate committed a spinnerVerbs list to the repo's shared settings and you would rather not see "Vibing" forty times a day, put your own array in .claude/settings.local.json and it wins for you alone.

The tips under the spinner: spinnerTipsEnabled and spinnerTipsOverride

The line under the spinner is a separate feature with two settings. To turn the tips off entirely:

{
  "spinnerTipsEnabled": false
}

To add your own tips to the rotation, or replace the built-in ones, use spinnerTipsOverride, which is an object with a mode and a tips array. In append mode your tips join the built-in list and one is picked at random from all of them; in replace mode only yours are shown.

{
  "spinnerTipsOverride": {
    "mode": "append",
    "tips": [
      "Run npm run check before you ask for a review.",
      "Migrations live in db/migrations; never edit a shipped one."
    ]
  }
}

That second example is the genuinely useful trick hiding in this feature. A team can put its own onboarding reminders into the shared project settings, and every engineer who runs Claude Code in that repo sees them in the dead time while a turn runs. It is a low-pressure place for the rules that otherwise live in a wiki nobody opens: branch naming, the command that must pass before a PR, where the fixtures are. Keep each tip to one line; the spinner shows one at a time and the whole point is that it is read in a glance.

A caution from the settings documentation's own worked example: a value you set can be overridden from above. If you turned tips off in your user settings and they came back, a project settings file or a --settings flag on the command line is turning them on again, and the fix is to set your preference at a higher level (project local beats shared project) rather than to keep editing the user file.

Thinking words versus thinking

The search for "thinking words" sometimes means something else: the extended thinking output, the model's reasoning that some versions of Claude Code display as it works. That is not the spinner. Extended thinking is toggled with Option+T on macOS or Alt+T on Windows and Linux, and on the current model generation (Opus 5.5, Sonnet 5.5 and the Fable models) the toggle has no effect because those models always use extended thinking. The detailed view of what Claude is doing, tool by tool with timestamps, is the transcript viewer, toggled with Ctrl+O. If you want to know what Claude is actually doing while the spinner spins, that is the answer; the verb never will be.

Why you should stop watching the spinner at all

Here is the thing about a randomly chosen verb and a counting timer: they are designed to be looked at, and looking at them is the most expensive thing you can do with a coding agent. A turn that takes four minutes is four minutes of your attention if you watch it and about five seconds if you do not. The spinner gives you no signal about when it will end, so there is nothing to wait for; the only event that matters is the change of state at the end, when Claude finishes, or stops with a permission prompt, or fails.

That event is exactly what Claude Code's notification hooks and the preferredNotifChannel setting exist for, and what AI Done Now turns into a phone or desktop notification you cannot miss. Set that up once, following our Claude Code notifications guide, and the spinner becomes decoration: you kick off the task, switch to something else, and come back when the alert fires. The verb can say whatever it likes.

If you run Claude Code inside tmux or over SSH, where terminal bells and desktop alerts do not reach you, the tmux and SSH notifications post covers the routes that do. And if you want the waiting time to be worth something physically rather than just mentally, NotchFit turns the same "Claude is done" event into the end of a guided micro-workout in your MacBook's notch.

Quick reference

  • spinnerVerbs: array of strings; replaces the built-in verbs; one is picked at random per turn. One entry means a fixed word.
  • spinnerTipsEnabled: false hides the tip line.
  • spinnerTipsOverride: object with mode (append or replace) and tips (array of strings). Good for team reminders in shared project settings.
  • The verb has no meaning. The elapsed time, token count and the end of the turn do; let a notification tell you about the last one.

Settings names are taken from the official Claude Code settings reference as of October 2026. They do change; if a key here is rejected, check the reference for the current name.

Keep reading

Desk Exercises for Programmers: 15 Moves to Do While Your AI Agent Codes

7 min read

Exercise While Coding: Turn Claude Code Wait Time Into Micro-Workouts

7 min read

Claude Code Notch Notifications on Mac: See When Claude Is Done Without Watching the Terminal

7 min read

Claude Code Tips and Tricks: 12 Ways to Use Claude Code Effectively

8 min read

Claude Code Multiple Sessions: How to Run Agents in Parallel Without Losing Track

6 min read

A Claude Code Workflow That Doesn't Involve Watching the Terminal

5 min read

Claude Code Hooks: A Practical Guide to Automating Your Agent Workflow

7 min read

Claude Code Auto Mode: Fewer Permission Prompts Without Living Dangerously

7 min read

Claude Code Subagents: How to Delegate Work to Specialized Agents

7 min read

Claude Code Context Management: Treat the Context Window Like a Budget

6 min read

Per-Subagent Model Selection: Route the Grunt Work Down, Keep the Judgment Up Top

7 min read

Skills and Plugins: How to Teach Claude Code Your Way of Working

7 min read

Claude Code Background Tasks: Run Long Commands Without Blocking Your Session

6 min read

Codex CLI Notifications: How to Get a Ding When Codex Is Done or Needs Input

7 min read

Cursor Notification When Done: Every Way to Get Notified When Cursor Finishes

6 min read

Claude Code Notifications: How to Get Notified When Claude Code Finishes or Needs Your Input

6 min read

Want to Be Notified When Claude Responds? How Claude Notifications Work on Web, Desktop, and Mobile

5 min read

Claude Code Notification Scripts: Copy-Paste Recipes for Every Platform

6 min read

Get a Ding the Moment Codex Needs Your Response

6 min read

Get Notified the Moment Claude Code Is Waiting for Your Input

6 min read

“Notifications Are Turned Off for Claude” — Here Is the Fix

6 min read

Codex Sound When Done: Make Codex CLI Play a Sound When It Finishes

6 min read

terminal-notifier + Claude Code: Native macOS Alerts When Your Agent Finishes

6 min read

Gemini CLI Notifications: How to Get a Sound or Alert When Gemini Finishes

6 min read

Get Claude Code Notifications on Your Phone

6 min read

Claude Code Remote Control, Explained

7 min read

preferredNotifChannel: Claude Code's Built-In Notification Setting

6 min read

Claude Code Notifications in tmux and Over SSH

7 min read

Claude Code Effort Levels: Why Your Setting Keeps Getting Ignored

8 min read

Codex vs Claude Code Notifications: How Each One Tells You It Is Done

8 min read

Claude Code Notifications Not Working: A Diagnostic Checklist

10 min read

Claude Code Notifications Inside Your Editor's Terminal

7 min read

CLAUDE_CODE_DISABLE_BACKGROUND_TASKS Explained

7 min read

CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP Explained

8 min read

Cursor Alerts Explained: Every Alert Cursor Raises, and How to Control Them

7 min read

Claude Code Environment Variables: The Groups That Actually Matter

10 min read

Claude Code Notifications on WSL and Windows

9 min read

Claude Code Checkpoints and /rewind

8 min read

Claude Remote Control: How It Works, Turning It Off, and Auto Mode

7 min read

Claude Code /loop: Poll a Deploy, Babysit a PR, and Get Told When It's Done

8 min read

Setting Up NotchFit With OpenAI Codex CLI: Hooks, $notchfit-plan, and the Daily Flow

7 min read

Claude Mods Explained: What the New Plugin Layer Can Do, and How to Turn On 'You Should Know'

9 min read

NotchFit vs Mac Break Reminder Apps: A Clock or a Signal From Your Coding Agent?

8 min read

Claude Code Headless Mode: Running claude -p in Scripts and CI, and the Three Signals That It Finished

10 min read

Building a Movement Habit at a Desk: Use the Agent Run as the Cue, One Set as the Unit, and Streaks Carefully

8 min read

Claude Code MCP Servers Explained: Adding Servers, Choosing a Scope, Handling Secrets, and Why Long Tool Calls Go to the Background

10 min read

/notchfit:plan Explained: How Claude Code or Codex Writes a Weekly Workout Plan the Notch Can Actually Run

8 min read

Why NotchFit's Done and Permission Alerts Wait Until Your Set Ends, When That Costs You, and How to Turn the Workout Off

7 min read