claude-code-wingmanYour Claude Code wingman - orchestrate multiple Claude Code sessions across projects, monitor them all from WhatsApp
Install via ClawdBot CLI:
clawdbot install yossiovadia/claude-code-wingmanYour 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 |
|---------------------|----------------|
| 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 |
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 |
|--------------|----------------|
| sessions or status | ~/code/claude-code-orchestrator/lib/session-status.sh --all --json |
| status | ~/code/claude-code-orchestrator/lib/session-status.sh |
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 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-
Should see: "Approval prompt detected! Navigating to option 2..."
Kill it: tmux kill-session -t
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 approval
Bash(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.
Generated Mar 1, 2026
A software development team uses the skill to manage multiple concurrent bug fixes and feature implementations across different repositories. Each developer can monitor progress and provide approvals via WhatsApp while focusing on their primary tasks, reducing context switching.
A DevOps engineer orchestrates automated testing and deployment scripts across multiple environments using Claude Code sessions. They receive real-time notifications on WhatsApp for approvals, enabling quick responses to failures or configuration changes without being tied to a terminal.
A researcher runs data analysis and simulation scripts in parallel across different datasets or models. They use the skill to track progress and approve tool calls remotely via WhatsApp, allowing them to multitask between lab work and coding tasks efficiently.
A freelance developer manages multiple client projects simultaneously by spawning separate Claude Code sessions for each. They monitor statuses and provide approvals through WhatsApp while on the go, ensuring timely delivery without constant desktop access.
An open-source maintainer uses the skill to handle pull request reviews, code refactoring, and documentation updates across different repositories. They coordinate with contributors via WhatsApp approvals, streamlining collaborative development remotely.
Offer a premium version with advanced features like detailed analytics, priority support, and integration with additional messaging platforms. Charge a monthly fee per user or team, targeting small to medium-sized development teams seeking efficient remote collaboration tools.
Provide customized deployments for large organizations with enhanced security, compliance features, and dedicated support. License the skill as part of a broader DevOps or project management suite, focusing on scalability and integration with existing enterprise systems.
Offer a free basic version for individual developers with limited sessions and notifications, then charge for higher usage limits, additional integrations, and advanced orchestration features. Upsell based on increased session counts or team collaboration needs.
š¬ Integration Tip
Ensure tmux and Claude CLI are properly configured on the host system, and set up WhatsApp integration via Clawdbot for seamless remote monitoring and approval handling.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Provides a 7-step debugging protocol plus language-specific commands to systematically identify, verify, and fix software bugs across multiple environments.
A comprehensive skill for using the Cursor CLI agent for various software engineering tasks (updated for 2026 features, includes tmux automation guide).
Write, run, and manage unit, integration, and E2E tests across TypeScript, Python, and Swift using recommended frameworks.
Control and operate Opencode via slash commands. Use this skill to manage sessions, select models, switch agents (plan/build), and coordinate coding through Opencode.
Coding style memory that adapts to your preferences, conventions, and patterns for consistent coding.