Claude Code Wingman
Your Claude Code wingman - orchestrate multiple Claude Code sessions across projects, monitor them all from WhatsApp
Your Claude Code wingman - orchestrate multiple Claude Code sessions across projects, monitor them all from WhatsApp
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Your multi-session orchestrator - manage multiple Claude Code instances working on different projects simultaneously, all from WhatsApp.
GitHub: https://github.com/yossiovadia/claude-code-orchestrator
When a user message matches these patterns, IMMEDIATELY run the corresponding command:
| User Message Pattern | Command to Run |
|---|---|
| |
| |
| |
Examples:
~/code/claude-code-orchestrator/lib/handle-approval.sh approve vsr-bugfix~/code/claude-code-orchestrator/lib/handle-approval.sh always heartbeat-test~/code/claude-code-orchestrator/lib/handle-approval.sh deny proxy-refactorAfter running, respond with the command output (e.g., "✓ Session 'vsr-bugfix' approved (once)")
Why this is critical: The master monitor daemon sends WhatsApp notifications when Claude Code sessions need approval. The user responds with these commands from their phone. Fast response = unblocked sessions.
| User Message | Command to Run |
|---|---|
or | |
| |
Parse the JSON and respond with a human-readable summary.
Orchestrates multiple Claude Code sessions in parallel, each working on different tasks in different directories. You monitor and control everything remotely via WhatsApp/chat.
The Vision:
Morning - You (via WhatsApp): "Start work on VSR issue #1131, Clawdbot authentication feature, and refactor the proxy"
Clawdbot spawns 3 sessions:
✅ Session: vsr-issue-1131 (~/code/semantic-router) ✅ Session: clawdbot-auth (~/code/clawdbot) ✅ Session: proxy-refactor (~/code/claude-code-proxy)
During lunch - You: "Show me the dashboard"
Clawdbot:
┌─────────────────────────────────────────────────────────┐ │ Active Claude Code Sessions │ ├─────────────────┬──────────────────────┬────────────────┤ │ vsr-issue-1131 │ semantic-router │ ✅ Working │ │ clawdbot-auth │ clawdbot │ ✅ Working │ │ proxy-refactor │ claude-code-proxy │ ⏳ Waiting approval │ └─────────────────┴──────────────────────┴────────────────┘
You: "How's the VSR issue going?"
Clawdbot captures session output: "Almost done - fixed the schema validation bug, running tests now. 8/10 tests passing."
You: "Tell proxy-refactor to run tests next"
Clawdbot sends command to that specific session.
Result: 3 parallel tasks, full remote control from your phone. 🎯
clawdbot skill install claude-code-wingman
Or visit: 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 (terminal multiplexer)jq (JSON processor)CRITICAL: When interacting with Claude Code sessions, ALWAYS use the wingman script (
claude-wingman.sh). Never run raw tmux commands directly.
Why:
Wrong (DON'T DO THIS):
tmux send-keys -t my-session "Run tests" # ^ Might forget C-m, won't be tracked in dashboard
Right (ALWAYS DO THIS):
~/code/claude-code-orchestrator/claude-wingman.sh \ --session my-session \ --workdir ~/code/myproject \ --prompt "Run tests"
When a user asks for coding work, spawn Claude Code:
~/code/claude-code-orchestrator/claude-wingman.sh \ --session <session-name> \ --workdir <project-directory> \ --prompt "<task description>"
To send a new task to an already-running session:
~/code/claude-code-orchestrator/claude-wingman.sh \ --session <existing-session-name> \ --workdir <same-directory> \ --prompt "<new task>"
Note: The script detects if the session exists and sends the command to it instead of creating a duplicate.
tmux capture-pane -t <session-name> -p -S -50
Parse the output to determine if Claude Code is:
User: "Fix the bug in api.py"
Clawdbot:
Spawning Claude Code session for this...[Runs wingman script]
✅ Session started: vsr-bug-fix 📂 Directory: ~/code/semantic-router 🎯 Task: Fix bug in api.py
User: "What's the status?"
Clawdbot:
tmux capture-pane -t vsr-bug-fix -p -S -50
Then summarize: "Claude Code is running tests now, 8/10 passing"
User: "Tell it to commit the changes"
Clawdbot:
~/code/claude-code-orchestrator/claude-wingman.sh \ --session vsr-bug-fix \ --workdir ~/code/semantic-router \ --prompt "Commit the changes with a descriptive message"
~/code/claude-code-orchestrator/claude-wingman.sh \ --session <name> \ --workdir <dir> \ --prompt "<task>"
~/code/claude-code-orchestrator/claude-wingman.sh \ --session <existing-session> \ --workdir <same-dir> \ --prompt "<new command>"
tmux capture-pane -t <session-name> -p -S -100
tmux ls
Filter for Claude Code sessions:
tmux ls | grep -E "(vsr|clawdbot|proxy|claude)"
cat /tmp/auto-approver-<session-name>.log
tmux kill-session -t <session-name>
tmux attach -t <session-name> # Detach: Ctrl+B, then D
Planned features:
wingman dashboardShows all active Claude Code sessions:
┌─────────────────────────────────────────────────────────┐ │ Active Claude Code Sessions │ ├─────────────────┬──────────────────────┬────────────────┤ │ Session │ Directory │ Status │ ├─────────────────┼──────────────────────┼────────────────┤ │ vsr-issue-1131 │ ~/code/semantic-... │ ✅ Working │ │ clawdbot-feat │ ~/code/clawdbot │ ⏳ Waiting approval │ │ proxy-refactor │ ~/code/claude-co... │ ❌ Error │ └─────────────────┴──────────────────────┴────────────────┘Total: 3 sessions | Working: 1 | Waiting: 1 | Error: 1
wingman status <session>Detailed status for a specific session:
Session: vsr-issue-1131 Directory: ~/code/semantic-router Started: 2h 15m ago Last activity: 30s ago Status: ✅ Working Current task: Running pytest tests Progress: 8/10 tests passing
For now: Use tmux commands directly, but always via the wingman script for sending commands!
When running in a new directory, Claude Code asks:
"Do you trust the files in this folder?"
First run: User must attach and approve (press Enter). After that, it's automatic.
Handle it:
User, Claude Code needs you to approve the folder trust (one-time). Please run: tmux attach -t <session-name>Press Enter to approve, then Ctrl+B followed by D to detach.
✅ Use orchestrator for:
❌ Don't use orchestrator for:
Use descriptive names:
vsr-issue-1131 - specific issue workvsr-feature-auth - feature developmentproject-bugfix-X - bug fixesThe orchestrator sends Enter twice with delays. If stuck, user can attach and press Enter manually.
Check logs:
cat /tmp/auto-approver-<session-name>.log
Should see: "Approval prompt detected! Navigating to option 2..."
Kill it:
tmux kill-session -t <name>
After successful tasks, update
TOOLS.md:
### Recent Claude Code Sessions - 2026-01-26: VSR AWS check - verified vLLM server running ✅ - Session pattern: vsr-* for semantic-router work
The master monitor daemon sends WhatsApp notifications when sessions need approval. Handle them with these commands:
When you receive an approval notification, respond with:
Clawdbot parses your message and runs:
# Approve once ~/code/claude-code-orchestrator/lib/handle-approval.sh approve <session-name>Approve all similar (always)
~/code/claude-code-orchestrator/lib/handle-approval.sh always <session-name>
Deny
~/code/claude-code-orchestrator/lib/handle-approval.sh deny <session-name>
Notification received:
🔒 Session 'vsr-bugfix' needs approvalBash(rm -rf ./build && npm run build)
Reply with: • approve vsr-bugfix - Allow once • always vsr-bugfix - Allow all similar • deny vsr-bugfix - Reject
You reply: "approve vsr-bugfix"
Clawdbot:
~/code/claude-code-orchestrator/lib/handle-approval.sh approve vsr-bugfix
Response: "✓ Session 'vsr-bugfix' approved (once)"
# Start monitoring all sessions (reads config from ~/.clawdbot/clawdbot.json) ~/code/claude-code-orchestrator/master-monitor.sh &With custom intervals
~/code/claude-code-orchestrator/master-monitor.sh --poll-interval 5 --reminder-interval 120 &
Check if running
cat /tmp/claude-orchestrator/master-monitor.pid
View logs
tail -f /tmp/claude-orchestrator/master-monitor.log
Stop the daemon
kill $(cat /tmp/claude-orchestrator/master-monitor.pid)
No environment variables needed - phone and webhook token are read from Clawdbot config.
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.