用途
native-threads 用于在 Claude 桌面应用中创建并运行多个 worker 线程,每个线程对应一个原生聊天会话,出现在侧边栏中。它借鉴 Codex 的线程工具思路,改用桌面应用自带的会话管理工具实现。
前置条件
该能力需要 mcp__ccd_session_mgmt__* 和 mcp__ccd_sidebar__* 两组工具,只有桌面 Code 会话才具备。使用前需先用 ToolSearch 加载这些工具。
主要能力
- 创建线程:通过 Bash 打开新聊天链接,每个线程单独执行。链接使用 claude://code/new,带 folder(URL 编码的绝对路径)与 q(URL 编码文本)参数,URL 用 python urllib.parse.urlencode 构建。q 的内容形如“Thread setup for <title>”,要求回复仅“ready”。
- 定位新聊天:用 list_sessions(最新在前)按 cwd 与时间匹配,取得其 local_... id。
- 配置会话:用 set_session_title 设置标题(如“Thread | <title>”或“Thread | <plan> | NN <phase>”);用 set_session_model 指定选择器中的模型 id(工具报错时会列出有效 id,例如 claude-haiku-4-5-20251001、claude-sonnet-5-5、claude-opus-5-5),必要时用 set_session_effort 设置强度。二者从下一轮对话生效,因此要先发设置消息。
- 分组管理:用 create_group 创建一次分组(可复用 list_groups 中的现有分组,如 Threads 或 <plan> Build),再用 move_sessions 将新聊天移入。
- 派发任务:用 send_message 启动该聊天的一轮对话,内容应包含角色、文件夹、确切交付物;计划阶段还应包含先读取的交接路径和结束时写入的交接路径。
- 观察与等待:用 list_events(limit 10 到 20)查看事件;等待时轮询 get_session 直到 isRunning 为 false,间隔最多 10 秒,并设置总超时。
- 中途指导:用 send_message 发送消息,即使任务进行中也会以当前聊天消息的形式送达。
- 顺序计划:某阶段完成后检查其交接文件与验收检查,再创建下一阶段的聊天并发送交接路径。同时工作的聊天建议不超过 3 个。
使用流程要点
每创建一个聊天都要告知用户在新聊天中按一次 Enter:新聊天链接只会填入消息,不会自动发送;且 Claude 不得向 Claude 窗口脚本化按键。因此创建需逐个进行,应用一次只显示一个新建聊天界面,用户按 Enter 后再打开下一个链接。
限制
- 每个聊天都需用户手动按 Enter,无法自动化发送。
- 定时任务的“Run now”聊天无法被指导或分组,不应作为线程使用。
- open_session_in 仅对本次会话用 start_session 启动的聊天有效,而该功能在此账号上被禁用;应让用户在侧边栏中点击对应聊天。