名称: claude-code-wingman
描述: 您的 Claude Code 助手 - 跨项目编排多个 Claude Code 会话,并通过 WhatsApp 监控所有会话
元数据: {"clawdbot":{"emoji":"🦅","requires":{"anyBins":["claude","tmux"]}}}
您的多会话编排器 - 同时管理多个在不同项目中工作的 Claude Code 实例,一切操作皆可通过 WhatsApp 完成。
GitHub: https://github.com/yossiovadia/claude-code-orchestrator
当用户消息匹配以下模式时,立即运行相应命令:
| 用户消息模式 | 要运行的命令 |
|---|---|
approve <会话名> |
~/code/claude-code-orchestrator/lib/handle-approval.sh approve <会话名> |
always <会话名> |
~/code/claude-code-orchestrator/lib/handle-approval.sh always <会话名> |
deny <会话名> |
~/code/claude-code-orchestrator/lib/handle-approval.sh deny <会话名> |
示例:
- 用户:"approve vsr-bugfix" → 运行:~/code/claude-code-orchestrator/lib/handle-approval.sh approve vsr-bugfix
- 用户:"always heartbeat-test" → 运行:~/code/claude-code-orchestrator/lib/handle-approval.sh always heartbeat-test
- 用户:"deny proxy-refactor" → 运行:~/code/claude-code-orchestrator/lib/handle-approval.sh deny proxy-refactor
运行后,请回复命令输出(例如:"✓ 会话 'vsr-bugfix' 已批准(单次)")
为何关键: 当 Claude Code 会话需要审批时,主监控守护进程会发送 WhatsApp 通知。用户从手机回复这些命令。快速响应 = 会话不被阻塞。
| 用户消息 | 要运行的命令 |
|---|---|
sessions 或 status |
~/code/claude-code-orchestrator/lib/session-status.sh --all --json |
status <会话名> |
~/code/claude-code-orchestrator/lib/session-status.sh <会话名> --json |
解析 JSON 并以人类可读的摘要形式回复。
并行编排多个 Claude Code 会话,每个会话在不同的目录中处理不同的任务。您可以通过 WhatsApp/聊天远程监控和控制一切。
愿景:
- 多个 tmux 会话 同时运行
- 每个会话 = 一个 Claude Code 实例,位于其专属目录
- 并行处理不同任务(VSR 修复、Clawdbot 功能、代理重构)
- 您通过 Clawdbot(本助手)从 WhatsApp 编排一切
- 实时仪表板 显示所有活动会话及其状态
早晨 - 您(通过 WhatsApp): "开始处理 VSR 问题 #1131、Clawdbot 身份验证功能,并重构代理"
Clawdbot 启动 3 个会话:
✅ 会话:vsr-issue-1131 (~/code/semantic-router)
✅ 会话:clawdbot-auth (~/code/clawdbot)
✅ 会话:proxy-refactor (~/code/claude-code-proxy)
午餐期间 - 您: "给我看看仪表板"
Clawdbot:
┌─────────────────────────────────────────────────────────┐
│ 活跃的 Claude Code 会话 │
├─────────────────┬──────────────────────┬────────────────┤
│ vsr-issue-1131 │ semantic-router │ ✅ 工作中 │
│ clawdbot-auth │ clawdbot │ ✅ 工作中 │
│ proxy-refactor │ claude-code-proxy │ ⏳ 等待审批 │
└─────────────────┴──────────────────────┴────────────────┘
您: "VSR 问题进展如何?"
Clawdbot 捕获会话输出:
"快完成了 - 修复了模式验证错误,正在运行测试。10 个测试通过了 8 个。"
您: "告诉 proxy-refactor 接下来运行测试"
Clawdbot 向该特定会话发送命令。
结果: 3 个并行任务,完全通过手机远程控制。🎯
clawdbot skill install claude-code-wingman
或访问:https://clawdhub.com/skills/claude-code-wingman
cd ~/code
git clone https://github.com/yossiovadia/claude-code-orchestrator.git
cd claude-code-orchestrator
chmod +x *.sh lib/*.sh
claude CLI (Claude Code)tmux (终端复用器)jq (JSON 处理器)关键: 与 Claude Code 会话交互时,始终使用 wingman 脚本 (claude-wingman.sh)。切勿直接运行原始 tmux 命令。
原因:
- ✅ 确保正确处理 Enter 键 (C-m)
- ✅ 一致的会话管理
- ✅ 为仪表板/跟踪功能提供未来支持
- ✅ 避免手动 tmux 命令导致的错误
错误做法(切勿如此):
tmux send-keys -t my-session "Run tests"
# ^ 可能忘记 C-m,不会被仪表板跟踪
正确做法(务必如此):
~/code/claude-code-orchestrator/claude-wingman.sh \
--session my-session \
--workdir ~/code/myproject \
--prompt "Run tests"
当用户请求编码工作时,启动 Claude Code:
~/code/claude-code-orchestrator/claude-wingman.sh \
--session <会话名称> \
--workdir <项目目录> \
--prompt "<任务描述>"
向已运行的会话发送新任务:
~/code/claude-code-orchestrator/claude-wingman.sh \
--session <现有会话名称> \
--workdir <相同目录> \
--prompt "<新任务>"
注意: 脚本会检测会话是否存在,如果存在则向其发送命令,而不是创建重复会话。
tmux capture-pane -t <会话名称> -p -S -50
解析输出以确定 Claude Code 的状态:
- 工作中(显示工具调用/进度)
- 空闲(显示提示符)
- 错误状态(显示错误)
- 等待审批(显示"允许此工具调用?")
用户: "修复 api.py 中的错误"
Clawdbot:
正在为此任务启动 Claude Code 会话...
[运行 wingman 脚本]
✅ 会话已启动:vsr-bug-fix
📂 目录:~/code/semantic-router
🎯 任务:修复 api.py 中的错误
用户: "状态如何?"
Clawdbot:
tmux capture-pane -t vsr-bug-fix -p -S -50
然后总结:"Claude Code 正在运行测试,10 个通过了 8 个"
用户: "告诉它提交更改"
Clawdbot:
~/code/claude-code-orchestrator/claude-wingman.sh \
--session vsr-bug-fix \
--workdir ~/code/semantic-router \
--prompt "提交更改并附上描述性消息"
~/code/claude-code-orchestrator/claude-wingman.sh \
--session <名称> \
--workdir <目录> \
--prompt "<任务>"
~/code/claude-code-orchestrator/claude-wingman.sh \
--session <现有会话> \
--workdir <相同目录> \
--prompt "<新命令>"
tmux capture-pane -t <会话名称> -p -S -100
tmux ls
过滤 Claude Code 会话:
tmux ls | grep -E "(vsr|clawdbot|proxy|claude)"
cat /tmp/auto-approver-<会话名称>.log
tmux kill-session -t <会话名称>
tmux attach -t <会话名称>
# 分离:Ctrl+B,然后按 D
计划功能:
wingman dashboard显示所有活动的 Claude Code 会话:
┌─────────────────────────────────────────────────────────┐
│ 活跃的 Claude Code 会话 │
├─────────────────┬──────────────────────┬────────────────┤
│ 会话 │ 目录 │ 状态 │
├─────────────────┼──────────────────────┼────────────────┤
│ vsr-issue-1131 │ ~/code/semantic-... │ ✅ 工作中 │
│ clawdbot-feat │ ~/code/clawdbot │ ⏳ 等待审批 │
│ proxy-refactor │ ~/code/claude-co... │ ❌ 错误 │
└─────────────────┴──────────────────────┴────────────────┘
总计:3 个会话 | 工作中:1 | 等待中:1 | 错误:1
wingman status <会话名>特定会话的详细状态:
会话:vsr-issue-1131
目录:~/code/semantic-router
启动时间:2 小时 15 分钟前
最后活动:30 秒前
状态:✅ 工作中
当前任务:运行 pytest 测试
进度:10 个测试通过了 8 个
目前: 直接使用 tmux 命令,但发送命令时务必通过 wingman 脚本!
在新目录中运行时,Claude Code 会询问:
"您信任此文件夹中的文件吗?"
首次运行: 用户必须附加并批准(按 Enter)。之后将自动处理。
处理方法:
用户,Claude Code 需要您批准文件夹信任(一次性操作)。请运行:
tmux attach -t <会话名称>
按 Enter 批准,然后按 Ctrl+B 再按 D 分离。
✅ 适用于:
- 大量代码生成/重构
- 多文件更改
- 长时间运行的任务
- 重复性编码工作
❌ 不适用于:
- 快速文件读取
- 简单编辑
- 需要对话时
- 规划/设计讨论
使用描述性名称:
- vsr-issue-1131 - 特定问题处理
- vsr-feature-auth - 功能开发
- project-bugfix-X - 错误修复
编排器会发送两次 Enter 键并带有延迟。如果卡住,用户可以手动附加并按 Enter。
检查日志:cat /tmp/auto-approver-<会话名称>.log
应看到:"检测到审批提示!导航至选项 2..."
终止它:tmux kill-session -t <名称>
成功完成任务后,更新 TOOLS.md:
### 最近的 Claude Code 会话
- 2026-01-26: VSR AWS 检查 - 已验证 vLLM 服务器正在运行 ✅
- 会话模式:vsr-* 用于 semantic-router 工作
当会话需要审批时,主监控守护进程会发送 WhatsApp 通知。使用以下命令处理:
当您收到审批通知时,回复:
Clawdbot 解析您的消息并运行:
# 批准一次
~/code/claude-code-orchestrator/lib/handle-approval.sh approve <会话名称>
# 批准所有类似操作(始终)
~/code/claude-code-orchestrator/lib/handle-approval.sh always <会话名称>
# 拒绝
~/code/claude-code-orchestrator/lib/handle-approval.sh deny <会话名称>
收到通知:
🔒 会话 'vsr-bugfix' 需要审批
Bash(rm -rf ./build && npm run build)
回复:
• approve vsr-bugfix - 允许一次
• always vsr-bugfix - 允许所有类似操作
• deny vsr-bugfix - 拒绝
您回复: "approve vsr-bugfix"
Clawdbot:
~/code/claude-code-orchestrator/lib/handle-approval.sh approve vsr-bugfix
响应: "✓ 会话 'vsr-bugfix' 已批准(单次)"
# 开始监控所有会话(从 ~/.clawdbot/clawdbot.json 读取配置)
~/code/claude-code-orchestrator/master-monitor.sh &
# 使用自定义间隔
~/code/claude-code-orchestrator/master-monitor.sh --poll-interval 5 --reminder-interval 120 &
# 检查是否正在运行
cat /tmp/claude-orchestrator/master-monitor.pid
# 查看日志
tail -f /tmp/claude-orchestrator/master-monitor.log
# 停止守护进程
kill $(cat /tmp/claude-orchestrator/master-monitor.pid)
无需环境变量 - 手机和 webhook 令牌从 Clawdbot 配置中读取。