{"skill":{"slug":"vibe-switch","displayName":"Vibe-Switch","summary":"tmux for AI Agents — Orchestrate multiple AI coding agents in parallel with one command. Run Claude Code, Codex CLI, and Gemini CLI simultaneously on isolate...","description":"---\nname: Vibe-Switch\ndescription: \"tmux for AI Agents — Orchestrate multiple AI coding agents in parallel with one command. Run Claude Code, Codex CLI, and Gemini CLI simultaneously on isolated Git branches with seamless context handoff.\"\nversion: 1.0.2\ntags:\n  - ai\n  - agent\n  - orchestrator\n  - multi-agent\n  - cli\n  - vibe-coding\n  - tmux\n  - codex\n  - gemini\n  - claude\ninstall:\n  method: npm\n  command: \"npm install -g vibe-switch\"\n  registry: https://www.npmjs.com/package/vibe-switch\n  note: \"Installation requires network access to pull the package from npm. After installation, vibe-switch itself runs entirely locally.\"\nrequires:\n  binaries:\n    - node (>= 18)\n    - npm\n    - git\n  optional_binaries:\n    - claude (Claude Code CLI — requires ANTHROPIC_API_KEY)\n    - codex (Codex CLI — requires OPENAI_API_KEY)\n    - gemini (Gemini CLI — requires Google Cloud auth)\n  env:\n    - ANTHROPIC_API_KEY (only if using Claude agent — managed by Claude CLI, not by vibe-switch)\n    - OPENAI_API_KEY (only if using Codex agent — managed by Codex CLI, not by vibe-switch)\n    - GOOGLE_APPLICATION_CREDENTIALS (only if using Gemini agent — managed by Gemini CLI, not by vibe-switch)\nconfig_paths:\n  - ~/.vibe-switch/tasks.json (task state store)\n  - ~/.vibe-switch/logs/ (agent output logs)\n  - ~/.vibe-switch/snapshots/ (handoff context snapshots)\n  - .vibeswitch.json (project-level config, optional)\ncredentials:\n  vibe-switch: none — vibe-switch itself does not read, store, or transmit any API keys or secrets\n  agent_clis: each spawned agent CLI manages its own authentication independently; vibe-switch passes only the task prompt as an argument\nnetwork_access:\n  install: true — npm install requires network\n  runtime: false — vibe-switch itself makes no network requests at runtime\n  spawned_agents: varies — Claude and Gemini CLIs may access the network; Codex CLI runs in a sandbox with no network access\npermissions:\n  - filesystem: read/write to ~/.vibe-switch/ for task state, logs, and snapshots\n  - filesystem: create/remove Git worktrees in sibling directories of the repository\n  - process: spawns agent CLI subprocesses (claude, codex, gemini) and manages their PIDs\n  - network: vibe-switch makes zero network requests at runtime; network behavior of spawned agents is controlled by each agent's own configuration\nsource: https://github.com/brianjhang/vibe-switch\nnpm: https://www.npmjs.com/package/vibe-switch\nlicense: MIT\n---\n\n# Vibe-Switch — tmux for AI Agents\n\nOrchestrate multiple AI coding agents in parallel with one command. Each agent runs in its own isolated Git worktree and branch. When one agent finishes, hand off the context seamlessly to another.\n\n## Install\n\n```bash\nnpm install -g vibe-switch\n```\n\n## Quick Start\n\n```bash\n# Start agents in parallel\nvibe run \"Implement JWT auth middleware\" --agent gemini\nvibe run \"Build responsive login page\" --agent codex\n\n# Monitor all agents\nvibe status\nvibe watch\n\n# Hand off context between agents\nvibe handoff vibe/gemini-c3d5 --to codex -m \"API is ready at /api/auth\"\n\n# Cleanup\nvibe stop --all\nvibe clean\n```\n\n## Command Reference\n\n| Command | Description |\n|---------|-------------|\n| `vibe run \"<task>\" --agent <agent>` | Start an agent on an isolated Git branch + worktree |\n| `vibe status` | Display all tasks, status, and branches |\n| `vibe watch` | Real-time multi-agent output streaming |\n| `vibe log <branch> [-f]` | View or follow logs for a specific task |\n| `vibe stop [branch\\|--all]` | Stop one or all agents |\n| `vibe handoff <branch> --to <agent>` | Transfer context to another agent |\n| `vibe summary <branch>` | View task summary, logs, and diff stat |\n| `vibe clean` | Clean up completed tasks, logs, and worktrees |\n| `vibe agents` | List installed agent adapters |\n| `vibe doctor` | Diagnose environment and agent availability |\n| `vibe init` | Create project config `.vibeswitch.json` |\n| `vibe config [key] [value]` | View or set project config |\n\n## Supported Agents\n\n| Agent | Command | Sandbox | Best For |\n|:------|:--------|:-------:|:---------|\n| **Claude Code** | `claude` | No | Architecture, code review, broad reasoning |\n| **Codex CLI** | `codex` | Yes | Implementation, refactors, test-driven changes |\n| **Gemini CLI** | `gemini` | No | Exploration, cross-checking, documentation |\n| **Antigravity** | `antigravity` | No | Full-stack development, complex tasks |\n| **OpenClaw** | `openclaw` | No | General purpose AI coding |\n\n## Architecture\n\n- **Git Worktree Isolation:** Each agent runs in a dedicated branch and directory — no file conflicts.\n- **Adapter Pattern:** Modular design for easy integration of new AI agent CLIs.\n- **JSON File Storage:** Task metadata persisted locally at `~/.vibe-switch/` — no database needed.\n\n## Common Workflow Patterns\n\n### Parallel Development\n\n```bash\nvibe run \"Implement auth API and migration\" --agent claude --branch vibe/auth-api\nvibe run \"Build auth UI and form validation\" --agent codex --branch vibe/auth-ui\nvibe run \"Write integration tests for login\" --agent gemini --branch vibe/auth-tests\nvibe status\nvibe watch\n```\n\n### Context Handoff\n\n```bash\n# Gemini finished the API → hand off to Codex for the frontend\nvibe handoff vibe/auth-api --to codex -m \"API complete. Build the client-side integration.\"\n```\n\n### Agent Capability Matrix\n\n| Agent | Local Files | Network/SSH | Sandbox |\n|:------|:-----------:|:-----------:|:-------:|\n| claude | ✅ | ✅ | No |\n| codex | ✅ | ❌ | Yes |\n| gemini | ✅ | ✅ | No |\n\n> **Important:** Codex runs in a strict sandbox — no SSH, no external APIs. Do not assign deployment or network-dependent tasks to Codex.\n\n## Key Constraints\n\n- Must be run from inside a Git repository.\n- Worktrees are based on the current branch HEAD — **uncommitted changes are NOT visible to spawned agents**. Always `git add && git commit` before dispatching.\n- Right-size your tasks: if it takes less than 5 minutes and touches one file, do it yourself.\n\n## Links\n\n- npm: https://www.npmjs.com/package/vibe-switch\n- GitHub: https://github.com/brianjhang/vibe-switch\n- Author: Brian Jhang (https://brianjhang.com)\n- License: MIT\n","topics":["Claude","CLI","Codex","Gemini","Tmux"],"tags":{"ai-agent":"1.0.2","cli":"1.0.2","latest":"1.0.2","multi-agent":"1.0.2","orchestrator":"1.0.2","vibe-coding":"1.0.2"},"stats":{"comments":0,"downloads":454,"installsAllTime":17,"installsCurrent":0,"stars":0,"versions":3},"createdAt":1775911607720,"updatedAt":1778492530120},"latestVersion":{"version":"1.0.2","createdAt":1775914257415,"changelog":"Fixed security metadata  - declared install method, network access scope, agent credential requirements, and detailed permissions to resolve ClawHub scan concerns.","license":"MIT-0"},"metadata":{"setup":[{"key":"ANTHROPIC_API_KEY (only if using Claude agent — managed by Claude CLI, not by vibe-switch)","required":true},{"key":"OPENAI_API_KEY (only if using Codex agent — managed by Codex CLI, not by vibe-switch)","required":true},{"key":"GOOGLE_APPLICATION_CREDENTIALS (only if using Gemini agent — managed by Gemini CLI, not by vibe-switch)","required":true}],"os":null,"systems":null},"owner":{"handle":"brianjhang","userId":"s17dv8x01ak7c3xgnzjp8j7rdn84cng5","displayName":"Brian Jhang","image":"https://avatars.githubusercontent.com/u/239308?v=4"},"moderation":null}