
1. 当终端开始“焦糖化”Claude Code Spinner Verbs 到底是个啥如果你用过 Claude Code大概率见过命令行里那行转圈的等待提示。默认情况下它可能只是简单的Thinking…或者一个旋转符号但 Anthropic 的工程师在这套 CLI 里埋了一个相当“不务正业”的彩蛋Spinner Verbs。简单说它就是一组在模型响应期间随机滚动显示的动词用来替换掉干巴巴的“Loading”。你敲下回车之后终端可能告诉你它正在Caramelizing焦糖化中、Moonwalking太空步中甚至Flibbertigibbeting喋喋不休中。这套词表最初来自 Claude Code 源码中的src/constants/spinnerVerbs.ts社区整理后确认共有 187 条。它适合谁适合每天要在终端里等模型回复几十次的人也适合想把开发工具调成自己顺手模样的人。Claude Code 本身是一个跑在命令行里的编码代理能读文件、改代码、执行命令而 Spinner Verbs 就是它等待阶段的表情包。你可以把它理解成同样是等电梯有人给你放了一面镜子有人给你放了一段单口相声。从 v2.1.23 开始Claude Code 允许用户通过~/.claude/settings.json覆盖或追加这组动词。也就是说你不必只接受官方那 187 个词完全可以把“摸鱼中”“搬砖中”“编译中”写进去。下面我会先给出完整的 187 条词表再给出可直接复制的settings.json配置最后用一次真实请求验证它是否生效。整个过程不需要改源码也不需要重新安装 Claude Code。2. 前置准备TaoToken 接入与 Claude Code 环境确认在改 Spinner Verbs 之前得先保证 Claude Code 本身能正常跑起来。Claude Code 需要一个大模型后端来响应请求这里我用 TaoToken 作为接入入口。TaoToken 提供兼容 Anthropic 风格的 API 地址适合在 Claude Code 这类工具里做模型调用。官网入口是https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 基址是https://taotoken.net/api。你需要先拿到一个可用的 API Key。登录 TaoToken 控制台后在 API Keys 页面创建一个新 Key复制出来备用。注意不要把它提交到 Git 仓库里建议放在 shell 的环境变量中。Claude Code 读取环境变量的方式比较直接通常设置ANTHROPIC_API_KEY和ANTHROPIC_BASE_URL两个变量即可。如果你用的是 zsh可以在~/.zshrc里追加export ANTHROPIC_API_KEYsk-你的TaoToken密钥 export ANTHROPIC_BASE_URLhttps://taotoken.net/api保存后执行source ~/.zshrc再运行claude --version确认 CLI 已安装。如果提示找不到命令说明 Claude Code 还没装可以用 npm 全局安装npm install -g anthropic-ai/claude-code安装完成后进入任意一个项目目录运行claude进入交互模式。第一次启动时它会让你确认一些权限设置按提示走即可。确认能正常对话之后再退出准备改settings.json。这一步很关键如果模型后端不通Spinner Verbs 改得再花哨也只是个转圈动画看不到实际效果。3. 187 条 Spinner Verbs 全收录与 settings.json 配置Claude Code 的配置文件默认位于~/.claude/settings.json。如果这个文件不存在可以手动创建。它的结构是标准 JSON顶层可以放spinnerVerbs对象。spinnerVerbs里有两个关键字段mode和verbs。mode设为replace表示完全替换默认词表设为append表示在默认 187 条基础上追加。我建议先用replace这样你能明确看到自己写的词有没有生效。下面是一份可直接复制的配置片段我把官方 187 条词表按字母顺序整理进去并保留英文原文。你可以直接粘贴到~/.claude/settings.json{ spinnerVerbs: { mode: replace, verbs: [ Accomplishing, Actioning, Actualizing, Architecting, Baking, Beaming, Beboppin, Befuddling, Billowing, Blanching, Bloviating, Boogieing, Boondoggling, Booping, Bootstrapping, Brewing, Bunning, Burrowing, Calculating, Canoodling, Caramelizing, Cascading, Catapulting, Cerebrating, Channeling, Channelling, Choreographing, Churning, Clauding, Coalescing, Cogitating, Combobulating, Composing, Computing, Concocting, Considering, Contemplating, Cooking, Crafting, Creating, Crunching, Crystallizing, Cultivating, Deciphering, Deliberating, Determining, Dilly-dallying, Discombobulating, Doing, Doodling, Drizzling, Ebbing, Effecting, Elucidating, Embellishing, Enchanting, Envisioning, Evaporating, Fermenting, Fiddle-faddling, Finagling, Flambeing, Flibbertigibbeting, Flowing, Flummoxing, Fluttering, Forging, Forming, Frolicking, Frosting, Gallivanting, Galloping, Garnishing, Generating, Gesticulating, Germinating, Gitifying, Grooving, Gusting, Harmonizing, Hashing, Hatching, Herding, Honking, Hullaballooing, Hyperspacing, Ideating, Imagining, Improvising, Incubating, Inferring, Infusing, Ionizing, Jitterbugging, Julienning, Kneading, Leavening, Levitating, Lollygagging, Manifesting, Marinating, Meandering, Metamorphosing, Misting, Moonwalking, Moseying, Mulling, Mustering, Musing, Nebulizing, Nesting, Newspapering, Noodling, Nucleating, Orbiting, Orchestrating, Osmosing, Perambulating, Percolating, Perusing, Philosophising, Photosynthesizing, Pollinating, Pondering, Pontificating, Pouncing, Precipitating, Prestidigitating, Processing, Proofing, Propagating, Puttering, Puzzling, Quantumizing, Razzle-dazzling, Razzmatazzing, Recombobulating, Reticulating, Roosting, Ruminating, Sautéing, Scampering, Schlepping, Scurrying, Seasoning, Shenaniganing, Shimmying, Simmering, Skedaddling, Sketching, Slithering, Smooshing, Sock-hopping, Spelunking, Spinning, Sprouting, Stewing, Sublimating, Swirling, Swooping, Symbioting, Synthesizing, Tempering, Thinking, Thundering, Tinkering, Tomfoolering, Topsy-turvying, Transfiguring, Transmuting, Twisting, Undulating, Unfurling, Unravelling, Vibing, Waddling, Wandering, Warping, Whatchamacalliting, Whirlpooling, Whirring, Whisking, Wibbling, Working, Wrangling, Zesting, Zigzagging ] } }如果你不想全量替换只想加几个中文词可以把mode改成append然后在verbs数组里写自己的词。比如{ spinnerVerbs: { mode: append, verbs: [摸鱼中, 搬砖中, 卷中, 躺平中] } }这里有个细节append模式下官方 187 条仍然会参与随机滚动你追加的词只是多了一些候选。如果你希望终端里只出现中文那就用replace把上面那份英文数组换成你自己的中文数组。注意 JSON 不允许尾随逗号数组最后一个元素后面不要加逗号否则 Claude Code 启动时会报解析错误。4. 验证请求重启后 Spinner 文案是否生效改完settings.json之后不需要重新安装 Claude Code但需要完全退出当前会话再重新进入。如果你是在交互模式里改的文件先按CtrlC两次退出然后重新运行claude。为了确认配置被读取可以先用一个简单请求触发等待动画claude -p 用一句话解释什么是哈希表-p参数表示以非交互模式执行单次提示。执行后观察终端输出如果 Spinner 文案变成了你配置里的词比如Caramelizing…或摸鱼中…说明生效了。由于 Spinner 是随机滚动的单次请求可能只看到一两个词。你可以连续跑几次或者故意给一个稍微复杂点的任务让等待时间拉长claude -p 读取当前目录下的 package.json列出所有 dependencies 并解释每个包的用途这个请求会让 Claude Code 去读文件、分析内容等待时间通常比一句话问答更长Spinner 滚动的次数也更多。如果你配置的是replace模式且只放了四个中文词那看到英文词就说明配置没被读取。这时候检查三个地方文件路径是不是~/.claude/settings.jsonJSON 是否合法以及mode拼写是否正确。可以用python3 -m json.tool ~/.claude/settings.json快速校验 JSON 格式。另外Claude Code 在启动时会读取一次配置。如果你在会话中途修改了settings.json当前会话不会热加载必须退出重进。这一点和很多 CLI 工具一致别指望改完文件立刻在同一个会话里看到变化。5. 本篇常见错排查Spinner 不生效、JSON 报错、Key 不通第一个高频问题改完配置后 Spinner 还是默认英文。先确认你改的是用户级配置~/.claude/settings.json而不是项目级的.claude/settings.json。Claude Code 会合并多层配置项目级配置可能覆盖用户级。如果你在项目目录里有一个.claude/settings.json检查它里面有没有spinnerVerbs字段。如果有以项目级为准。排查时可以临时把项目级配置里的spinnerVerbs删掉只保留用户级。第二个问题启动时报 JSON 解析错误。最常见的原因是尾随逗号、中文引号、或者数组里混入了注释。JSON 不支持注释也不支持单引号。如果你从网页复制配置注意引号是否被转成了弯引号“”。用python3 -m json.tool校验一次报错行号会直接告诉你哪里有问题。另一个坑是mode的值写成了Replace或REPLACEClaude Code 对大小写敏感必须是小写replace或append。第三个问题Spinner 正常滚动但模型请求失败。这时候终端可能显示API Error或Authentication failed。先检查ANTHROPIC_API_KEY是否设置正确可以用echo $ANTHROPIC_API_KEY看前几位。再检查ANTHROPIC_BASE_URL是否指向https://taotoken.net/api注意末尾不要多加斜杠。如果 Key 是在 TaoToken 控制台新建的确认它没有被禁用或超过额度。你可以用 curl 直接测一下接口连通性curl -s -X POST https://taotoken.net/api/v1/messages \ -H x-api-key: $ANTHROPIC_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d {model:claude-sonnet-4-20250514,max_tokens:32,messages:[{role:user,content:ping}]}如果返回 JSON 里有content字段说明 Key 和网络都通。如果返回 401说明 Key 无效返回 404检查 URL 路径。这一步能快速区分是 Spinner 配置问题还是接入问题。第四个问题append模式下中文词不出现。这通常是因为等待时间太短随机没抽到你的词。官方 187 条加上你的几个词基数很大短请求可能连续几次都抽不到中文。可以临时把mode改成replace只放中文词验证配置链路是否通。确认能显示中文后再改回append。6. 把等待变成微型表演后续怎么玩Spinner Verbs 这个功能本身不复杂但它把“等模型回复”这段死时间变成了可以自定义的体验。你可以按项目类型配不同的词表写前端时用Flexing、Pixel-pushing写后端时用Compiling、Indexing写文档时用Drafting、Polishing。配置方式就是改~/.claude/settings.json里的verbs数组然后重启 Claude Code。如果你想把模型对话也调成顺手的形态可以到 TaoToken 的模型对话页面试试不同模型在编码任务上的表现入口是https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentspinner_verbsutm_campaignrewrite。长期在终端里跑编码代理的话Coding Plan 更适合按周期使用入口是https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentspinner_verbsutm_campaignrewrite。需要管理多个 Key 或查看调用量控制台在https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentspinner_verbsutm_campaignrewrite。接入文档里有更完整的参数说明地址是https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentspinner_verbsutm_campaignrewrite。我自己的做法是保留官方 187 条再追加十几个中文词这样既有“焦糖化中”的荒诞感也有“搬砖中”的亲切感。每次看到终端里蹦出一个没见过的词等待的几秒钟就没那么难熬了。