One workbench for Claude Code, Copilot CLI, OpenCode and Codex — on your desktop, in any browser, or from your chat app.
English | 简体中文 | 日本語 | 한국어 | Русский
Website · Download · Docs · Roadmap
CodeMux is an open-source desktop and web client for coding agents. It does not wrap a model API. It talks to each agent's own runtime at the protocol level, so Claude Code, GitHub Copilot CLI, OpenCode and Codex keep their tools, sessions and project context, and you get one interface on top of all of them.
Then it lets you leave your desk. The same sessions, with every tool call, diff and shell command rendered live, are reachable from your phone's browser or from Feishu, DingTalk, Telegram, WeCom, Teams or WeChat, with no port forwarding.
- 🔀 Multi-engine, not multi-model: four real agent runtimes behind one UI, switchable per session.
- 👀 See the whole chain of thought: every tool call, file diff and command is an expandable step, not a wall of text.
- 📱 Remote by default: LAN QR code or one-click Cloudflare Tunnel, with device approval and per-device tokens.
- 💬 Agents in your chat app: streaming, structured replies in six IM platforms.
- 🧰 A real workbench: integrated terminal, file explorer, git worktrees, scheduled tasks, slash commands and skills.
💡 CodeMux is the first open-source GUI for GitHub Copilot CLI, connecting over JSON-RPC to deliver Copilot's full agentic experience visually.
| Platform | Get it |
|---|---|
| macOS | brew tap realDuang/codemux && brew install --cask codemux, or the .dmg from Releases (Apple Silicon: -arm64.dmg) |
| Windows | CodeMux-Setup-<version>.exe from Releases |
| Linux desktop | .AppImage or .deb from Releases |
| Linux server (headless) | Run the Node host and use it from any browser; see Server runtime |
| From source | See Development |
⚠️ The macOS build is not code-signed. If macOS says "App is damaged", runxattr -cr /Applications/CodeMux.app.
CodeMux detects installed engines on startup. You need at least one:
| Engine | Protocol | Status | Setup |
|---|---|---|---|
| Claude Code | Claude Agent SDK | ✅ Stable | Runtime is bundled. Uses your existing Claude Code login or ANTHROPIC_API_KEY. |
| GitHub Copilot CLI | JSON-RPC / stdio | ✅ Stable | Install Copilot CLI and sign in. |
| OpenCode | HTTP REST + SSE | ✅ Stable | curl -fsSL https://opencode.ai/install | bash (Windows: irm https://opencode.ai/install.ps1 | iex) |
| Codex | JSON-RPC / stdio app-server | Install the codex CLI; CodeMux reuses its login or API key. |
- Open Remote connections in CodeMux. Under Access this computer from another device, choose Direct connection for LAN access or Cloudflare Tunnel to reach it from anywhere (quick tunnels need no account).
- For Direct connection, enter this computer's LAN address (for example
http://192.168.1.20:8233) and select Enable direct access. For Cloudflare Tunnel, enable the tunnel. Scan the QR code shown on the page. - Enter the host's 6-digit access code on your phone, then approve the new device on the host.
Every agent action is an expandable step: file diffs with syntax highlighting, shell commands with live output, searches, tool calls, todo lists and permission prompts. You see what the agent is doing and why, not only the final answer, and the same rendering follows you to the browser and to IM.
| Integrated terminal | VS Code-style tabs with real shells (Ctrl+`), search, clickable paths, and remote use over LAN or tunnel. |
| File explorer & git changes | Project tree, syntax-highlighted preview, live "Changes" tab with line counts and inline diffs. |
| Git worktree sessions | Work on several branches in parallel, each with its own sessions; merge back with merge, squash or rebase. |
| Scheduled tasks | Run agent tasks manually, every 5 min–12 h, daily or weekly, with missed-run catch-up. |
| Slash commands & skills | Type / for engine-native commands and skills with autocomplete. |
| Agent modes & models | Build / Plan / Autopilot modes and a separate model per engine. |
| Approvals & questions | Approve shell or edit operations inline ("always allow" for trusted patterns); answer agent questions with choices. |
| Images in prompts | Paste, drag or pick up to 4 images per message; all engines can read them. |
| Token usage | Input, output and cache tokens with per-engine cost breakdown. |
![]() |
![]() |
| Integrated terminal | Git changes with inline diff |
![]() |
![]() |
| Scheduled tasks | File explorer and preview |
| Method | Best for |
|---|---|
| LAN browser | Another device on the same network: enable Direct connection with this computer's LAN IP and Web port, then scan the QR code. |
| Cloudflare Tunnel | Anywhere, with no port forwarding or VPN. Quick tunnels need zero config; named tunnels keep your own domain. |
| Direct connection | Your own reverse proxy or route; see Custom access. |
| Remote SSH | Connect CodeMux Desktop through system OpenSSH to an existing CodeMux host; see Remote connections. |
| Installable PWA | Add CodeMux to a phone's home screen over a stable HTTPS address; see Web and mobile PWA. |
New devices must be approved with a 6-digit code, each device gets its own JWT, and public tunnels use HTTPS. You can rename or revoke any device from the Devices page.
![]() |
![]() |
![]() |
| Remote access | Device management | Same session on a phone |
CodeMux is designed for personal use. Revoke devices you no longer use and turn the public tunnel off when you do not need it.
Talk to your agents from IM with streaming output and structured cards, not just plain text replies. Start in a private chat with the bot, pick a project and session, and use /cancel, /status, /mode, /model, /history and /help.
| Platform | Streaming | Session model | Rich content |
|---|---|---|---|
| Feishu / Lark | ✅ Edit in place | One group = one session | Interactive cards |
| DingTalk | ✅ AI Card | One group = one session | ActionCard / Markdown |
| Telegram | ✅ Draft / edit | Private chat | MarkdownV2 + buttons |
| WeCom | Batch | One group = one session | Markdown / template card |
| Microsoft Teams | ✅ Edit in place | Private chat | Adaptive Cards |
| WeChat (iLink, personal account) | Batch | Private chat | Plain text |
| CodeMux | Text-only chat bots | A single agent's own UI | |
|---|---|---|---|
| Real agent runtimes (tools, sessions, project context) | ✅ | ✅ | |
| Several agents in one place | ✅ Claude Code, Copilot, OpenCode, Codex | ❌ | ❌ |
| Tool calls, diffs and shell output rendered as steps | ✅ | ❌ Final text | ✅ Locally |
| Same experience from phone browser and IM | ✅ | ❌ | |
| Self-hosted, your machine, your credentials | ✅ | Varies | ✅ |
flowchart TB
subgraph Access
A[Desktop app<br/>Electron]
B[Browser / PWA<br/>LAN · Cloudflare Tunnel]
C[IM bots<br/>Feishu · DingTalk · Telegram<br/>WeCom · Teams · WeChat]
end
A & B & C -->|WebSocket JSON-RPC| G[Gateway server<br/>engine manager]
G --> O[OpenCode adapter<br/>HTTP + SSE]
G --> P[Copilot adapter<br/>stdio]
G --> Q[Claude Code adapter<br/>Agent SDK]
G --> R[Codex adapter<br/>stdio]
All clients connect through the same gateway, and every engine is translated into one normalized type system, so tool calls, diffs and streaming messages look the same whichever engine or client you use.
| Topic | Doc |
|---|---|
| IM channel setup | docs/channels |
| Custom domains and access | docs/custom-access.md |
| Web and mobile PWA | docs/web-pwa.md |
| Headless Linux server | docs/server-runtime.md |
| Sharing chats with Codex Desktop | docs/codex-desktop-sharing.md |
| Development, commands, isolated dev | docs/development.md |
| Project structure | docs/project-structure.md |
Issues, ideas and pull requests are welcome. Start with CONTRIBUTING.md, check the Roadmap, and ask anything in Discussions. Want another engine? See Adding a new engine.
If CodeMux is useful to you, a ⭐ helps other people find it.








