skill
Claude Squad
UnreviewedLaunch and manage 4 concurrent Claude Code remote control sessions via tmux. Includes a Gallia Viewer management dashboard with live status, start/restart/stop controls, watchdog auto-restart, and aut
{
"schema_version": 1,
"type": "skill",
"slug": "claude-squad",
"title": "Claude Squad",
"brief": "Launch and manage 4 concurrent Claude Code remote control sessions via tmux. Includes a Gallia Viewer management dashboard with live status, start/restart/stop controls, watchdog auto-restart, and aut",
"version": "1.0.1",
"tags": [],
"license": "MIT",
"source_path": "SKILL.md",
"readme": "Claude Squad launches 4 concurrent Claude Code **remote control** sessions in named tmux sessions (`alpha`, `beta`, `gamma`, `delta`). Each session runs `claude --dangerously-skip-permissions rc`, generating a session URL controllable from the Claude phone app.\n\n## Why tmux?\n\ntmux provides persistent terminal sessions that survive disconnects. Each Claude RC session runs inside its own tmux session, which means:\n\n- **Sessions persist** even if you close your browser or lose connection\n- **Output can be captured** programmatically (`tmux capture-pane`) for monitoring\n- **Sessions can be controlled** by sending keystrokes (`tmux send-keys`)\n- **Multiple sessions coexist** independently without interfering with each other\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────┐\n│ Adom Container │\n│ │\n│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐\n│ │ tmux │ │ tmux │ │ tmux │ │ tmux │\n│ │ alpha │ │ beta │ │ gamma │ │ delta │\n│ │ │ │ │ │ │ │ │\n│ │ claude │ │ claude │ │ claude │ │ claude │\n│ │ --skip │ │ --skip │ │ --skip │ │ --skip │\n│ │ rc │ │ rc │ │ rc │ │ rc │\n│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘\n│ │ │ │ │\n│ └──────────────┴──────┬───────┴──────────────┘\n│ │\n│ ┌──────────────────────────┴───────────────────┐\n│ │ Gallia Viewer (GV) │\n│ │ - Live status dashboard │\n│ │ - Start / Restart / Stop controls │\n│ │ - Watchdog auto-restart (15s interval) │\n│ │ - Per-session chat output viewer │\n│ │ - Auto-start on boot │\n│ └───────────────────────────────────────────────┘\n│ │\n└─────────────────────────────┼───────────────────┘\n │\n ┌─────────┴─────────┐\n │ Claude Phone App │\n │ (Remote Control) │\n └───────────────────┘\n```\n\n## Gallia Viewer Dashboard\n\nThe squad has a full management UI built into Gallia Viewer. Features include:\n\n- **Live status** — green/yellow/red indicator showing how many sessions are running, auto-refreshes every 5 seconds\n- **Start / Restart / Stop** — buttons to launch all 4 sessions, restart the entire squad, or stop everything\n- **Per-session restart** — click the restart icon on any card to restart just that session\n- **Chat output** — click a session card to view its full tmux pane output (last 1000 lines), auto-scrolls to bottom\n- **Watchdog** — toggle to auto-restart any dead sessions every 15 seconds; shows restart count and recent restart log\n- **Start on boot** — checkbox (default ON) that auto-launches the squad when the GV server starts\n- **Explainer tooltip** — hover the `?` icon for a quick overview of why tmux is used\n\n## Phone App Experience\n\nOn the Claude phone app, each RC session appears as \"Remote Control session\" with the container ID. Currently the Claude CLI `rc` subcommand doesn't support custom session naming, so all 4 sessions look identical on the phone — differentiated only by their start timestamp. The GV dashboard compensates by clearly labeling each channel (Alpha, Beta, Gamma, Delta) with color-coded badges.\n\n## Session Naming\n\nSessions use the pattern `{repo}-{greek}`:\n\n| Session | Example tmux name |\n|---------|-------------------|\n| **Alpha** | `gallia-alpha` |\n| **Beta** | `gallia-beta` |\n| **Gamma** | `gallia-gamma` |\n| **Delta** | `gallia-delta` |\n\nThe repo name is derived from the container's `VSCODE_PROXY_URI` environment variable.\n\n## Commands\n\n| Action | How |\n|--------|-----|\n| Launch squad | `/claude-squad` or click \"Start Squad\" in GV |\n| Check status | GV dashboard (auto-refreshes) or `tmux list-sessions` |\n| Stop all | Click \"Stop Squad\" in GV |\n| Restart one | Click restart icon on individual card in GV |\n| Send prompt | `tmux send-keys -t {repo}-alpha \"your prompt\" Enter` |\n| View output | Click a session card in GV, or `tmux capture-pane -t {repo}-alpha -p -S -500` |\n| Enable watchdog | Toggle switch in GV dashboard |\n\n## Capabilities\n\n- Launch 4 concurrent Claude Code RC sessions in one click\n- Monitor session status with color-coded cards (green = running, red = dead)\n- View live chat output from any session\n- Auto-restart dead sessions with built-in watchdog (15-second check interval)\n- Auto-launch squad on container boot (configurable)\n- Restart individual sessions without affecting others\n- Send prompts to sessions via tmux\n- Full programmatic API via WebSocket and HTTP",
"author": {
"id": "695820315b5f1e4db2fcf602",
"name": "Kyle Bergstedt",
"email": "[email protected]"
},
"visibility": {
"public": true
},
"hero": null,
"sample_prompts": [],
"discovery_triggers": [],
"discovery_pitch": null,
"metadata": {},
"created_at": "2026-05-28T05:30:20.492Z",
"updated_at": "2026-05-28T05:30:20.493Z",
"sub_skills": [],
"parent_app": null
}