v0.5.0 ——一条命令安装
 ██████╗ ██████╗███╗   ███╗██╗   ██╗██╗  ██╗
██╔════╝██╔════╝████╗ ████║██║   ██║╚██╗██╔╝
██║     ██║     ██╔████╔██║██║   ██║ ╚███╔╝ 
██║     ██║     ██║╚██╔╝██║██║   ██║ ██╔██╗ 
╚██████╗╚██████╗██║ ╚═╝ ██║╚██████╔╝██╔╝ ██╗
 ╚═════╝ ╚═════╝╚═╝     ╚═╝ ╚═════╝ ╚═╝  ╚═╝

面向 AI 编程代理的跨设备 tmux 会话管理器

在任意设备上运行编程代理—— 手机也可以。

在一个终端仪表盘中管理 Claude Code、Codex、Cursor 等编码代理。查看哪些会话需要输入、切换项目,并通过 Tailscale 从另一台设备重新连接。

终端
$ curl -fsSL https://ccmux.ai/install | sh
$ ccmux setup
$ ccmux
更喜欢 Homebrew? brew trust --tap skzv/tap && brew install skzv/tap/ccmux

Homebrew更新于 此刻

// 仪表盘

查看运行状态,找到需要你处理的会话。

四个项目中的五个代理并行运行,以颜色区分状态—— 运行中, 空闲, 需要输入。仪表盘实时更新会话状态,旁边的设备面板显示 tailnet 上其他运行 ccmux 的机器。

ccmux — 仪表盘导览
ccmux 仪表盘导览:4 个项目中的 5 个代理会话并行运行,以颜色区分状态。连接 Claude Code,然后浏览对话、笔记、代理、设置和网络页面。

跨设备

在联网主机上启动任务,从手机回复,再回到笔记本继续同一个会话。

各种代理

Claude Code、Codex、Cursor 等——每个项目选择自己的代理,整个 TUI 随之适配。

键盘操作

Enter 选择所需会话即可。无需 tmux 名称,无需 --resume <hash>,无需先 SSH 再连接。

引导式设置

运行一次 curl,然后 ccmux setup。通过 tailnet 上的 SSH 或 Mosh 连接。

// 设备接力

在 Mac 上开始,在手机上继续,再回到笔记本。

重新连接,继续已有的工作。

在持续在线的 Mac mini 或 Linux 主机上启动任务。断开连接后,代理仍在主机上运行,你可以安心处理其他事情。

手机振动: Claude 正在提问。轻点通知就能连接,回答后按 Ctrl-b d,锁上手机。

次日早上在列车上,打开笔记本,输入 ccmux ,选择远程会话,继续之前的工作。

ccmux 在 iPhone 的 Moshi 应用中运行:实时会话,状态栏显示“可通过 Moshi 访问”,底部为 Moshi 屏幕按键栏。

手机上 Moshi 应用中的 ccmux

在手机上,通过 Moshi 应用连接——代理需要你时推送提醒,轻点即可连接。正在开发自己的客户端? ccmuxd 通过 tailnet 提供 HTTP API.

// 创建会话

随时随地启动会话。

在厨房拿起手机,就能在书桌上的 Mac 启动新代理会话。在任意设备打开 项目 页签,按 n,选择主机——本机,或 tailnet 上任何运行 ccmuxd 的节点。远程守护进程创建目录并启动代理,ccmux 通过 SSH 为你连接。无需输入 ssh.

ccmux — 在任意设备新建项目
ccmux 新建项目流程:打开项目页,按 n,选择主机和代理,提交后 ccmux 创建目录并连接新会话。

// 对话

每段对话,一键恢复。

ccmux 记录你的 Claude / Codex / Antigravity / Cursor / pi / Muse Code 历史对话,按最近时间排序,随时恢复。按 2 进入对话页,在目标对话上按 Enter 。守护进程使用正确的会话 ID 恢复代理,你再也不必输入 claude --resume <hash>

ccmux — 恢复对话
ccmux 对话页按最近时间显示 Claude 历史对话。选中后按 Enter,使用正确的会话 ID 恢复代理。

// 快捷键

选中会话,按下 Enter。

所有操作都可发现。在任意页面按 ? 查看快捷键。

无需输入

tmux attach -t c-auth-redesign
claude --resume 8f3a-91bc-...
ssh user@mac-mini -t tmux a -t c-foo

只需按键

Enter 选择所需会话
3 查看历史对话
? 查看快捷键

会话运行在 tmux 中。日常工作可以使用仪表盘,需要时也可以直接使用 tmux 命令。

// 智能体

为每个项目选择代理。

每个项目选择并记住自己的代理,仪表盘、守护进程和会话分发均遵循该选择。

ccmux — 选择代理
在 ccmux 中创建项目,使用方向键切换可用编程代理,然后提交以启动所选代理。
Claude Code
claude
Codex
codex
Antigravity
agy
Cursor
cursor-agent
Pi
pi
Grok
grok
Muse Code
muse

按项目保存在 .ccmux/agent。默认使用 Claude,可在此处修改默认值: config.toml.

// MCP

你的代理可以将 ccmux 作为工具调用。

将编码代理连接到 ccmux 的 MCP 服务器 ,查看会话、读取项目笔记和检查用量。启动会话和发送按键需要明确启用。

读取

  • list_sessions
  • read_pane
  • list_projects
  • list_conversations
  • get_usage
  • list_machines
  • read_note · search_notes

操作 (需主动启用)

  • spawn_session
  • spawn_bare_session
  • send_keys
  • kill_session

默认不出现在 tools/list 中,直到传入 --allow-mutate.

.mcp.json
{
  "mcpServers": {
    "ccmux": { "command": "ccmux-mcp" }
  }
}

笔记本上的代理可以查看 Mac mini 上其他代理的工作,在另一个项目启动助手,取回结果并清理,全程无需你 SSH 登录。通过以下参数指定 tailnet 节点: CCMUX_HOST=mini:7474.

// 开发服务器

Mini 上的开发服务器,随处可访问。

在主机上启动 Web 应用,通过 Tailscale Serve 共享端口,再用手机打开输出的 HTTPS 地址。两台设备都必须连接到你的 tailnet。

在 mini 上

npm run dev
tailscale serve 3000

在手机上

Safari
→ HTTPS URL

在笔记本上

Browser
→ same HTTPS URL

请使用开发服务器实际输出的端口;3000 仅为示例。HTTPS 设置和允许主机名的配置方法请参阅 手机预览指南

// 更多功能

ccmux 还会默默处理这些事。

需要时出现,不需要时不打扰。

常见问题

ccmux 在 tmux 基础上增加了什么?

tmux 可在分离后继续运行终端会话。ccmux 则增加了编码代理仪表盘、项目导航、对话历史和远程会话发现功能。 了解如何管理多个会话。

代理是在手机上运行吗?

代理运行在 Mac 或 Linux 主机上。手机通过终端客户端连接到该主机;主机需要保持唤醒和在线。 设置手机访问。

本地会话也需要 Tailscale 吗?

你可以在单台主机上管理本地会话。Tailscale 用于连接设备,实现远程发现和访问。 连接第二台主机。

ccmux 包含 AI 订阅吗?

ccmux 可免费下载。请单独安装并登录所选编码代理;代理提供商的订阅费或 API 费用仍需另行支付。 查看安装要求。

一起改进 ccmux

发现了问题、说明不够清楚,或者翻译可以更自然?欢迎任何大小的贡献。你可以报告问题,或提交拉取请求。

// 持续交付。

在你的机器上试试

v0.5.0 已发布。支持 macOS、Linux 或 WSL2 上的 Windows,运行一次 curl 即可开始,也支持 Homebrew。