claude-code-mux 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,41 +1,55 @@
1
- # claude-mux
1
+ # claude-code-mux
2
2
 
3
- One messaging client, many Claude Code agents. A multiplexer that routes messages between a messaging platform (Telegram, Discord, etc.) and multiple Claude Code sessions running on different worktrees.
3
+ Talk to all your Claude Code agents from your phone. From a single mobile messaging app, chat with them in their active session, switch between agents, get notified when tasks finish, and approve permissions on the go. Seamlessly pick up where you left off — start a task on your desktop, continue the conversation from your phone.
4
4
 
5
- <img src="demo.png" width="400" alt="claude-mux demo — Telegram chat showing /list, /status, /help commands and agent switching" />
6
5
 
7
- ## Architecture
6
+ ## Commands
7
+
8
+ | Command | Description |
9
+ |---------|-------------|
10
+ | `/list` | Show all connected agents |
11
+ | `/switch <agent>` | Switch to an agent by repo, branch, directory, or description |
12
+ | `/status` | Show which agent is active |
13
+ | `/help` | Show all commands |
14
+ | *(any message)* | Chat with the active agent, just like in the terminal |
15
+
16
+ ## Usage (from Telegram)
8
17
 
9
18
  ```
10
- Telegram Bot
11
- |
12
- v
13
- Router (standalone process, localhost:9900)
14
- - Owns the bot token
15
- - Handles /list, /switch, /status commands
16
- - Fuzzy-matches agent names on /switch
17
- - Natural language switching via LLM (Anthropic, OpenAI, or Google)
18
- - Routes messages to the active agent
19
- | (WebSocket)
20
- v
21
- Bridge (MCP channel plugin, one per Claude Code session)
22
- - Auto-detects agent name from git (repo/branch)
23
- - Registers with router on startup
24
- - Pushes messages into Claude Code session
25
- - Sends replies + notifications back through router
19
+ You: /switch nav
20
+ Bot: Switched to myapp/feature-nav
21
+
22
+ You: switch to the one working on the bug fix
23
+ Bot: Switched to myapp/fix-auth-bug
24
+
25
+ You: can you add pagination to the /users endpoint?
26
+ Bot: [monots/encore] I'll add pagination to the /users endpoint...
27
+
28
+ Bot: [myapp/feature-nav] Finished refactoring the nav component.
29
+ Changed 3 files, all 24 tests passing.
30
+ Ready for your review.
31
+
32
+ Bot: [monots/encore] Permission request:
33
+ Tool: Bash Run npm test
34
+ Reply "yes abcde" or "no abcde"
35
+ You: yes abcde
26
36
  ```
27
37
 
28
38
  ## Install
29
39
 
30
40
  ```bash
31
- npm install -g claude-mux
41
+ npm install -g claude-code-mux
32
42
  ```
33
43
 
34
44
  ## Prerequisites
35
45
 
36
46
  - Claude Code v2.1.80+
37
47
  - Node.js 20+
38
- - A Telegram bot token (see [Create a Telegram Bot](#create-a-telegram-bot) below)
48
+ - A messaging platform bot token:
49
+ - **Telegram** — supported now (see [Create a Telegram Bot](#create-a-telegram-bot) below)
50
+ - **Discord** — coming soon
51
+ - **WhatsApp** — coming soon
52
+ - **Slack** — coming soon
39
53
 
40
54
  ## Create a Telegram Bot
41
55
 
@@ -137,81 +151,6 @@ claude --dangerously-load-development-channels server:claude-mux-bridge
137
151
 
138
152
  No per-session env vars needed. Each session registers with the router automatically. When you spin up a new worktree, just start Claude Code in it — no extra setup required.
139
153
 
140
- ## Usage (from Telegram)
141
-
142
- ### Commands
143
-
144
- | Command | Description |
145
- |---------|-------------|
146
- | `/list` | Show all connected agents |
147
- | `/switch <agent>` | Switch to an agent by repo, branch, directory, or description |
148
- | `/status` | Show which agent is active |
149
- | `/help` | Show all commands |
150
-
151
- ### Smart switching
152
-
153
- You don't need to type the exact agent name. The router first tries token-based fuzzy matching (instant, no API call). If that's ambiguous, and you've configured a `ROUTER_MODEL`, it falls back to the LLM to interpret natural language:
154
-
155
- ```
156
- You: /list
157
- Bot: Connected agents:
158
- monots/encore (active) — up 32m
159
- myapp/feature-nav — up 15m
160
- myapp/fix-auth-bug — up 5m
161
-
162
- You: /switch monots encore
163
- Bot: Switched to monots/encore
164
-
165
- You: /switch nav
166
- Bot: Switched to myapp/feature-nav
167
-
168
- You: /switch myapp
169
- Bot: Multiple matches for "myapp":
170
- 1. myapp/feature-nav
171
- 2. myapp/fix-auth-bug
172
- Be more specific, or use /switch with the full name.
173
-
174
- You: /switch fix auth
175
- Bot: Switched to myapp/fix-auth-bug
176
-
177
- You: switch to the one working on the bug fix
178
- Bot: Switched to myapp/fix-auth-bug
179
- ```
180
-
181
- The last example doesn't use a `/` command at all. Any message containing the word "switch" triggers the LLM to classify whether it's a switch intent or a regular message to the agent. This means "switch to the one working on the bug fix" gets intercepted and resolved by the LLM, while "can you switch the database driver to postgres" passes through to the agent as a normal message. Without a `ROUTER_MODEL` configured, only `/switch` commands with fuzzy matching are available.
182
-
183
- ### Chatting with agents
184
-
185
- Any non-command message goes to the active agent. If only one agent is connected, it's auto-selected.
186
-
187
- ```
188
- You: can you add pagination to the /users endpoint?
189
- Bot: [monots/encore] I'll add pagination to the /users endpoint...
190
- ```
191
-
192
- ### Notifications
193
-
194
- Agents proactively notify you when tasks complete:
195
-
196
- ```
197
- Bot: [myapp/feature-nav] Finished refactoring the nav component.
198
- Changed 3 files, all 24 tests passing.
199
- Ready for your review.
200
- ```
201
-
202
- ### Permission relay
203
-
204
- When an agent needs permission to run a tool, you'll get a prompt:
205
-
206
- ```
207
- Bot: [monots/encore] Permission request:
208
- Tool: Bash
209
- Action: Run npm test
210
- Reply "yes abcde" or "no abcde"
211
-
212
- You: yes abcde
213
- ```
214
-
215
154
  ## Dynamic worktrees
216
155
 
217
156
  The whole point of this tool: you don't create new bots or set env vars when you spin up a new worktree. Just start Claude Code in the directory:
@@ -223,6 +162,22 @@ claude --dangerously-load-development-channels server:claude-mux-bridge
223
162
 
224
163
  The bridge detects `myapp/hotfix-123` from git and registers automatically. When you close the session, it deregisters and your Telegram shows a disconnect notification.
225
164
 
165
+ ## Architecture
166
+
167
+ ```
168
+ Telegram Bot
169
+ |
170
+ v
171
+ Router (standalone process, localhost:9900)
172
+ - Handles /list, /switch, /status commands
173
+ - Routes messages to the active agent
174
+ | (WebSocket)
175
+ v
176
+ Bridge (MCP channel plugin, one per Claude Code session)
177
+ - Pushes messages into Claude Code session
178
+ - Sends replies + notifications back through router
179
+ ```
180
+
226
181
  ## Configuration
227
182
 
228
183
  ### Router
package/dist/bridge.js CHANGED
File without changes
package/dist/router.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-mux",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "One messaging client, many Claude Code agents — a multiplexer for routing messages to multiple Claude Code sessions",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,8 +8,7 @@
8
8
  "claude-mux-bridge": "./dist/bridge.js"
9
9
  },
10
10
  "files": [
11
- "dist",
12
- "demo.png"
11
+ "dist"
13
12
  ],
14
13
  "scripts": {
15
14
  "build": "tsc",
@@ -25,6 +24,14 @@
25
24
  "multiplexer",
26
25
  "agent"
27
26
  ],
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/ShiplightAI/claude-code-mux.git"
30
+ },
31
+ "homepage": "https://github.com/ShiplightAI/claude-code-mux#readme",
32
+ "bugs": {
33
+ "url": "https://github.com/ShiplightAI/claude-code-mux/issues"
34
+ },
28
35
  "license": "MIT",
29
36
  "dependencies": {
30
37
  "@ai-sdk/anthropic": "^3.0.63",
package/demo.png DELETED
Binary file