crewmux
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@crewmuxtell the coder agent to submit a review of the latest changes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
crewmux
Run Claude Code, Codex, Grok and other agent CLIs side by side in tmux — each in its own native UI — and let them hand work to each other through one small MCP server.
crewmux is a thin wrapper, not a new agent UI: every agent keeps its vendor's own interface, permissions and conversation history. crewmux only opens them, adds a sidebar and a tab bar, and delivers messages between them.
Full manual: docs/usage.md · guide for AI agents: docs/agent-guide.md
crewmux-myrepo ≡ 0:harness ● 1:planner claude ● 2:coder codex ✉1 ? 1 question(s) · C-b a
┌ harness ───────────────────┐┌ planner · claude ──────────────────────────────────────────────────┐
│AGENTS ││ Claude Code (the real CLI, untouched) │
│● planner claude ◀ here ││ │
│● coder codex ││ ❯ │
│ASKING YOU (1) ││ │
│coder: merge now? ││ │
│MESSAGES ││ │
│14:31 planner→coder req ✓ ││ │
└────────────────────────────┘└────────────────────────────────────────────────────────────────────┘Features
One command per project —
crewmuxcreates.crewmux/on first use and opens the team.Agents talk to each other — MCP tools
send_message,submit_review,report_artifact,ask_user,list_agents,update_board; a message is pasted into the recipient's terminal.Resume — close and reopen, each role continues its own conversation (Claude, Codex, Grok).
Add / remove agents while running —
crewmux open <role>/crewmux close <role>(orCtrl-b n/Ctrl-b X);roles.yamlis re-read on open.Any CLI via YAML — describe how to pass the prompt, session id, resume and MCP in
cli:; no code change needed. Grok support is just such a preset.Built-in help for agents — the
guideMCP tool lets an agent answer "how do I configure…" and do it for you.Status boards in the browser —
Ctrl-b B/crewmux board [name](127.0.0.1, a new token every run):teamis generated from what the agents do,planfollows yourplan.md(- [x]/- [~]/- [!]+ 🟢🟡🟠⚪), and agents writerelease(GO / NO-GO),review,debugandhandoffboards withupdate_board.crewmux board export <name>saves one self-contained HTML file to attach to a PR.Isolated — one private tmux server per project (
tmux -L crewmux-<project>); your own tmux and your CLIs' global configs are never modified.
Related MCP server: xtalk
Requirements
Linux or WSL, Node.js ≥ 22, tmux ≥ 3.2, and the agent CLIs you want to use, already logged in
(claude, codex, grok, …). pnpm is only needed to build from source.
Install
npm i -g crewmux
crewmux helpFrom source: git clone https://github.com/wasuza12345/crewmux && cd crewmux && pnpm install && pnpm build && npm link.
Uninstall: npm uninstall -g crewmux.
Use
cd ~/projects/<your-repo>
crewmux # create .crewmux/ if missing → open planner (claude) + coder (codex)
crewmux open reviewer # add a role while running
crewmux status # who is running
crewmux down # stop everything (conversations resume next time)Key | Action |
| switch agent |
| add / remove an agent |
| all messages (popup) |
| jump to the agent that asked you something |
| open the team board in the browser |
| leave; agents keep running |
VS Code's terminal takes Ctrl+B for its sidebar — set "terminal.integrated.sendKeybindingsToShell": true.
Configure
.crewmux/ in your project:
config.yaml roles.yaml agents/<id>.yaml prompts/<role>.md rules/*.md policy.yaml state/ (not committed)# roles.yaml — a role is an address other agents send messages to
roles:
planner: { agent: claude, prompt: planner.md }
coder: { agent: codex, prompt: coder.md }
grok: { agent: grok, autostart: false }# agents/grok.yaml
id: grok
kind: grok # claude | codex | grok | custom
# args: ["--always-approve"]Or simply ask any agent: "add Grok as a new role" — it calls the guide tool and does it.
Every field is documented in docs/agent-guide.md.
Security
The MCP server listens on
127.0.0.1only; each agent session gets its own bearer token, and the sender of every message is taken from that token. Board pages are served on the same 127.0.0.1 port and need a separate per-run view token (stored 0600, never logged).Permission prompts stay with each vendor CLI. Bypass flags are opt-in per agent — read SECURITY.md before enabling them (agents can prompt-inject each other).
Development
pnpm typecheck && pnpm test # vitest, including end-to-end tests on a private tmux serverArchitecture and code rules: CLEAN-CODE.md.
Disclaimer
crewmux is an independent project, not affiliated with or endorsed by Anthropic, OpenAI or xAI. Claude, Codex and Grok are trademarks of their respective owners. crewmux only starts their official CLIs with your own accounts. It is provided "as is" (see LICENSE); agents you run through it can modify files and execute commands — review what they do.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
Agent communication platform for agent to agent messaging via MCP. Messages, channels, skills.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA real-time inter-agent switchboard, delivered as one centralized streamable-HTTP MCP server. Any MCP-capable agent can message, coordinate, and stay ambiently aware of others.AGPL 3.0
- AlicenseBqualityBmaintenanceCross-agent messaging for MCP clients, enabling agents to discover one another, exchange threaded messages, and resume work in a persistent project room.191MIT
- AlicenseAqualityAmaintenanceEnables real-time cross-machine communication for Claude Code agents using a shared MCP relay server.1382 PyPI12MIT
- FlicenseNot gradedqualityCmaintenanceEnables agents to connect to remote MCP servers once, access their tools through a compact MCP endpoint, pair a CLI inside sandboxes, and create watches that turn command or tool output into pollable structured events.2-