
Security News
White House Authorizes Private Companies to Conduct Offensive Cyber Operations
A new federal program will let vetted U.S. cybersecurity firms help investigate and disrupt foreign cybercrime groups under government direction.
claude-code-mux
Advanced tools
One messaging client, many Claude Code agents — a multiplexer for routing messages to multiple Claude Code sessions
Talk to all your Claude Code agents from your phone. From a single 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.
Each agent gets its own channel/thread — no switching commands needed. New agents auto-create channels; disconnected agents clean up automatically.
Supports Discord and Telegram — use one or both simultaneously.
npm install -g claude-code-mux
bot → select permissions: Manage Channels, Send Messages, Read Message History → copy the URL and open it to invite the bot to your serverRight-click your server name in Discord → Copy Server ID (enable Developer Mode in Settings → Advanced if you don't see this option).
Create a .env file:
DISCORD_BOT_TOKEN=your-discord-bot-token
DISCORD_GUILD_ID=123456789012345678
Start the router:
claude-mux-router
Or without global install: npx claude-mux-router
Each agent gets a text channel under a "Claude Agents" category in your server.
Register the bridge as a global MCP server so every Claude Code session picks it up:
claude mcp add -s user claude-mux-bridge -- npx claude-mux-bridge
Then add autoApprove in ~/.claude.json so the agent can reply without permission prompts:
{
"mcpServers": {
"claude-mux-bridge": {
"command": "npx",
"args": ["claude-mux-bridge"],
"autoApprove": ["reply", "notify"]
}
}
}
Just cd into any worktree and start Claude Code:
cd ~/projects/myapp-feature-nav
claude --dangerously-load-development-channels server:claude-mux-bridge
The agent registers with the router, which creates a Discord channel for it automatically. Open the channel to chat with that agent. Spin up more sessions — each gets its own channel.
Message @BotFather on Telegram → /newbot → pick a name and username → copy the bot token (looks like 123456789:ABCdef...).
This is the trickiest part — Telegram buries these settings, but you only do it once.
Create a .env file:
TELEGRAM_BOT_TOKEN=123456789:ABCdef...
Start the router:
claude-mux-router
Or without global install: npx claude-mux-router
On first run, the router auto-detects your forum group and saves the chat ID to .env automatically.
Same as Discord — see steps 4 and 5 above.
Each agent gets its own topic in the Telegram forum group.
Discord Server ────────┐
├──→ Router (localhost:9900) ←──WebSocket──→ Bridge (per agent)
Telegram Forum Group ──┘ | |
(one channel/topic | |
per agent) Creates threads, MCP channel plugin
routes by thread, in Claude Code session
broadcasts replies
Set in .env (or as environment variables). You can use Discord, Telegram, or both — agent replies go to all connected platforms.
Discord:
| Env var | Default | Description |
|---|---|---|
DISCORD_BOT_TOKEN | (required) | Bot token from Developer Portal |
DISCORD_GUILD_ID | (required) | Discord server ID |
DISCORD_CATEGORY | Claude Agents | Category name for agent channels |
Telegram:
| Env var | Default | Description |
|---|---|---|
TELEGRAM_BOT_TOKEN | (required) | Bot token from BotFather |
TELEGRAM_CHAT_ID | auto-detect | Forum group chat ID — auto-detected, or set manually |
Shared:
| Env var | Default | Description |
|---|---|---|
ROUTER_PORT | 9900 | Port the router listens on |
ROUTER_HOST | 127.0.0.1 | Bind address — use 0.0.0.0 for remote bridges |
ALLOWED_USER_IDS | (none) | Comma-separated user IDs to restrict access |
| Env var | Default | Description |
|---|---|---|
AGENT_NAME | auto-detect | Override agent name (default: git repo/branch) |
ROUTER_PORT | 9900 | Must match the router's port |
ROUTER_URL | ws://127.0.0.1:{ROUTER_PORT}/ws | Full WebSocket URL for remote routers |
"Conflict: terminated by other getUpdates request" (Telegram)
Only one process can poll a Telegram bot token at a time. If you have the official telegram@claude-plugins-official plugin, uninstall it: /plugin uninstall telegram@claude-plugins-official inside Claude Code.
"no MCP server configured with that name"
Re-register with user scope: claude mcp add -s user claude-mux-bridge -- npx claude-mux-bridge
Bridge tools keep asking for permission
Add autoApprove to ~/.claude.json: "autoApprove": ["reply", "notify"]
Agent name shows as directory name instead of repo/branch
Make sure you cd into a git repo before starting Claude Code.
Switched to a new Telegram group?
Delete TELEGRAM_CHAT_ID from .env and restart the router — it will auto-detect the new group.
FAQs
One messaging client, many Claude Code agents — a multiplexer for routing messages to multiple Claude Code sessions
The npm package claude-code-mux receives a total of 12 weekly downloads. As such, claude-code-mux popularity was classified as not popular.
We found that claude-code-mux demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A new federal program will let vetted U.S. cybersecurity firms help investigate and disrupt foreign cybercrime groups under government direction.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.