Skip to content
Go back

Claude Code 的 spawn_task 和 show_widget 是做什么的

Edit page
Claude Code 桌面版 · 两个小工具 · 科普

一个把顺路发现的问题记成卡片,另开会话去修;一个把选项画在聊天里,让你直接点。

环境 Claude Code 桌面版 工具 spawn_task 工具 show_widget
简单说 顺路看到的问题,不塞进这次的改动;要你挑的东西,直接摆在聊天里。

spawn_task:Claude 干活时发现一件“该修、但不归这次管”的事,就在界面上放一张小卡片。你点一下,它变成一个新的独立会话去修。当前这一轮照常往下走。

show_widget:Claude 把一张图或一小段可以点的网页,直接画在回答旁边。你在里面点的选择,会像你自己打字一样发回聊天。

1 次点击卡片变成新会话
0 打断当前这一轮继续干
sendPrompt控件把你的选择发回聊天

01先打两个比方

spawn_task贴在工单上的便利贴

修车师傅给你换轮胎,发现刹车片快磨完了。他不顺手去拆刹车——那会把今天的活越搞越大。他在工单上贴一张便利贴:“刹车片该换了,要的话另开一单。”开不开,你说了算。

show_widget摆在你面前的样板

装修师傅不用嘴给你描述三种瓷砖,而是把三块样板直接摆在桌上。你用手一指:“这块。”比来回打字说“第二种偏灰那个”快得多,也不会听岔。

02spawn_task:顺路看到的事,交给你决定

它管的是“范围”。这次的改动只做这次该做的事,其他值得修的事记下来,变成一张卡片。

1
Claude 在做 A,发现了 B
B 是真问题,但跟 A 无关。比如:没人用的死代码、过期的文档、缺的测试、确认过的 TODO、顺路看到的安全问题。
2
调用 spawn_task,写好一张卡片
填标题、一两句说明,以及一份给新会话看的完整任务说明(见下表)。
3
卡片出现在你的界面上,这一轮不停
Claude 接着做 A,不跑题,也不等你。
4
你点一下,B 变成一个新会话
新会话在一个新的 git worktree(同一个仓库的另一份独立工作目录)里开工,跟你现在的改动互不干扰。
5
卡片过时了,就撤回
如果 B 在这次里已经顺手修了,或者有了更好的版本,Claude 用 dismiss_task 把卡片撤掉。你已经点过或关掉的卡片,撤不回来。

一张卡片有四样东西

字段给谁看要求
title你(卡片标题)60 个字符以内,动词开头,比如 “Fix stale README badge”。
tldr你(卡片正文)一两句大白话:为什么现在提、新会话会做什么。不放文件路径。
prompt新会话(你在界面上看不到)必须自己站得住:文件路径、背景全写进去。新会话看不到这次的聊天记录。
cwd系统可选。问题在另一个仓库时,填那个项目的根目录。
示意:一张卡片大概长这样(不是真截图)
+
Fix the 530 error on the custom domain
发这篇博客时发现,自定义域名一直返回 530,而 pages.dev 地址是好的。新会话会去查 Cloudflare 的域名绑定和 DNS。
点一下,另开会话

这个例子是真的:给这个博客发文章时,自定义域名一直打不开,但它跟“发文章”这件事无关。正确的做法就是记一张卡片,而不是在发文章的改动里顺手去改 DNS。

什么时候不该用

  • 只是觉得“代码有点丑”,说不出具体问题。
  • 一行就能顺手改好的小事——直接改就行。
  • 没把握的猜测。卡片要指向确定的问题。

它和另外两种“分活”有什么不同

谁启动结果回到哪适合
Agent 子代理Claude 自己回到 Claude,这一轮里就用上帮当前任务查资料、并行干活
WorkflowClaude(你同意之后)回到 Claude按脚本编排一大批子代理
spawn_task你点卡片一个新的独立会话跟当前任务无关、但值得修的事

一句话:前两种是“帮我把这件事做完”,spawn_task 是“这件事以后再说,先记下来交给你”。

03show_widget:把要比较的东西直接摆出来

它管的是“看”。有些东西用文字说半天,不如画出来让你看一眼、点一下。

1
先读说明书:read_me
拿到聊天界面的配色变量、字体和布局规则。按要画的东西选模块:diagram、mockup、interactive、data_viz、art、chart、elicitation(让你做选择)。平台选 desktop 或 mobile。这一步你看不到。
2
再画:show_widget
给它三样东西:widget_code(以 <svg 开头就按图画,否则按网页画)、title(下划线命名,也是下载时的文件名)、loading_messages(画出来之前显示的 1–4 句提示)。
3
控件出现在回答旁边
网页里可以有脚本,等代码全部传完才执行。不写 <html>、<body> 这些外壳;背景透明;颜色用 CSS 变量,所以深色、浅色模式都会跟着变。
4
你点,它就收到:sendPrompt(text)
控件里有一个全局函数。调用它,等于你在聊天框里打了这段字并发送。Claude 也能用 read_widget_context 读控件现在的状态。

真实例子:这个博客的图标就是这么选出来的

原来标签页上是 Astro 自带的图标。Claude 把一轮候选画成一个可以点的选择器。第一轮都不满意,于是点了“都不要,再出一轮”,还在输入框里补了一句要求。这两样被 sendPrompt 一起发回聊天,Claude 照着出了第二轮,最后选了 K。

示意:选择器大概长这样
Favicon:选一个?
K · fu 笑脸
都不要,
再出一轮
其他:
自己写要求
点完之后发回聊天的是:Favicon: 都不要,再出一轮 · Favicon (other): include element fu

K 是一个绿色的小写 f,旁边的 u 被画成一张笑脸——“fu”就是 FunFun 的 fu。现在你在浏览器标签上看到的就是它。

它和 Artifact 有什么不同

show_widgetArtifact
在哪聊天里,回答旁边claude.ai 上的一个独立网页,有自己的链接
寿命跟着这段对话一直在,可以更新,可以分享
适合当场看一眼、当场选要留下来、给别人看的成品
怎么回话sendPrompt 直接把选择发回聊天靠评论,或者页面自己声明的能力

一句话:要你当场挑,用 show_widget;要留下来给人看,用 Artifact。

04放在一起看

spawn_task · 往外分
干 A 时看到 B
↓
B 变成一张卡片
↓
你点 → 新会话修 B
A 的改动保持干净
show_widget · 往里收
要你在几样东西里挑
↓
画成能点的控件
↓
你点 → 选择发回聊天
少打字,不会听岔

共同点:两样都不替你做决定。一个把“要不要修”交给你,一个把“选哪个”交给你。Claude 只负责把选择摆清楚。

写于 2026-10-14。依据 Claude Code 桌面版里这两个工具的说明,和一次真实的给博客换图标的过程。两处“示意”是按说明画的样子,不是真截图。

Edit page
Share this post on:

Previous Post
从 You should know 插件看旁路 agent 与 Claude Code mod 实践
Next Post
一切网就断?一个 system 让 Clash 把自己锁死了