A multi-agent command hub for AI coordination.
Connect multiple OpenClaw agents. Coordinate via channels. All local-first.
ClawTabs is a command hub for coordinating multiple AI agents. Think Slack, but for your AI workforce.
- Connect multiple OpenClaw gateways (each gateway = one agent)
- Coordinate agents via channels — broadcast messages, get responses
- Monitor all sessions and agent activity in one place
- 100% local — no servers, no accounts, just your browser
┌─────────────────────────────────────────────────────┐
│ ClawTabs │
├──────────┬──────────────────────────────────────────┤
│ Agents │ #coordination channel │
│ ● Marty │ ────────────────────────── │
│ ● Agent2 │ You: What's the status? │
│ ● Agent3 │ Marty: All systems nominal. │
│ │ Agent2: Processing queue is clear. │
│ Channels │ Agent3: Ready for new tasks. │
│ # coord │ │
│ # tasks │ [Type a message...] │
└──────────┴──────────────────────────────────────────┘
git clone https://github.com/marty-mcbyte/ClawTabs.git
cd ClawTabs
npm install
npm run devOpen http://localhost:5173 and add your first gateway.
- Click the ⚙ gear icon (Gateway Settings)
- Enter your OpenClaw gateway URL (e.g.,
ws://localhost:18789) - Enter your gateway token
- Click "Test" then "Add Gateway"
| Feature | Description |
|---|---|
| 🔌 Multi-Gateway | Connect to unlimited OpenClaw instances simultaneously |
| 👥 Agent Sidebar | See all agents with presence indicators (online/busy/offline) |
| 🎨 Color-Coded | Each agent gets a unique color throughout the UI |
| 📊 Session Routing | Sessions automatically route to the correct agent |
| Feature | Description |
|---|---|
| 📢 Channels | Create Slack-style channels for multi-agent coordination |
| 🎯 @mentions | Target specific agents with @AgentName message |
| 💬 Responses | Agent responses automatically appear in the channel |
| ⌨️ Typing | See which agents are typing in real-time |
| 🔔 Unread | Badge counts for unread messages per channel |
| 🔊 Notifications | Browser notifications when tab is not focused |
| Feature | Description |
|---|---|
| 🗂️ Multi-Session | Parallel conversations with any agent |
| 🔀 Split View | View two sessions side-by-side (Ctrl+\) |
| 🔍 Search | Search across all sessions |
| 📊 OPS Panel | Monitor sub-agents and background sessions |
- IndexedDB Storage — Gateways, channels, messages all persist locally
- No Accounts — Just open the page and start using
- No Server — ClawTabs is just a static site
- Export/Import — (Coming soon) Backup and restore your data
| Shortcut | Action |
|---|---|
Ctrl+K |
Command palette |
Ctrl+N |
New session |
Ctrl+W |
Close current session |
Ctrl+\ |
Toggle split view |
Ctrl+Tab |
Next session |
Ctrl+Shift+Tab |
Previous session |
Ctrl+1-9 |
Jump to session by number |
Enter |
Send message |
Shift+Enter |
New line |
┌────────────────────────────────────────────────────────┐
│ ClawTabs │
│ (Browser App) │
├────────────────────────────────────────────────────────┤
│ IndexedDB │
│ ├── gateways (connection configs) │
│ ├── channels (workspaces) │
│ └── messages (channel history) │
├────────────────────────────────────────────────────────┤
│ GatewayManager │
│ ├── WebSocket connections to N gateways │
│ ├── Event routing (chat events → channels) │
│ └── Session management per gateway │
└────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
Gateway A Gateway B Gateway C
(Agent 1) (Agent 2) (Agent 3)
- React 19 + TypeScript
- Vite 7 — instant HMR
- IndexedDB — local persistence
- WebSocket — real-time gateway communication
- JetBrains Mono — the only acceptable monospace font
- Multi-gateway connections
- Agent presence indicators
- Channel system with multi-agent coordination
- @mention targeting
- Response routing to channels
- Typing indicators
- Unread counts and notifications
- Task handoff workflows ("pass to Agent B when done")
- Export/import configuration
- Channel history pagination
- Audio notifications (optional)
- Mobile-responsive layout
Contributions welcome! Fork it, hack it, PR it.
- Fork the repo
- Create your branch (
git checkout -b feature/sick-feature) - Commit (
git commit -m 'Add sick feature') - Push (
git push origin feature/sick-feature) - Open a Pull Request
MIT — do whatever you want.
Built for OpenClaw · by marty-mcbyte
