项目版
conmux · Windows 终端多路复用器
Rust 写的终端多路复用器,已发布到 crates.io。ConPTY + Job Object 整树进程监管,daemon 支持「关窗不死」的 detach / attach,命名管道 IPC。
Rust / ConPTY / Windows Job Object / Named Pipe IPC / crates.io
市场定位
给谁用:Windows 上的开发者,以及任何需要在 Windows 上托管多个长期命令行会话的工具——比如编程 agent 的编排器。
替代什么:Windows 上没有能用的 tmux。现有选项要么是 Linux 工具的移植壳(不理解 Windows 的进程模型),要么只管一个进程、不管它 spawn 出来的整棵子进程树。conmux 填的就是这个空。
凭什么:它是为真实需求写出来的——Conflux 做到一半发现缺这块,先写了再抽出来。所以它解决的是实际撞到的问题(孤儿进程、关窗即死),不是纸面上的功能清单。
主要功能模块
- 会话托管:基于 ConPTY 的真实伪终端,每个会话独立。
- 整树监管:Job Object 把会话 spawn 的全部子进程收进一棵树,杀就整棵杀——agent CLI 常会 spawn 一堆子进程,杀父留子是 Windows 上的经典坑。
- daemon detach / attach:关掉窗口会话不死,回来接上继续。这是 tmux 最值钱的那个能力。
- 命名管道 IPC:客户端与 daemon 通信,权限(DACL)收紧过。
技术栈
- Rust:无运行时、可发 crates.io、与 Conflux 后端同语言。
- Windows ConPTY API:系统原生伪终端,不是模拟。
- Windows Job Object:进程树级别的生命周期控制。
- Named Pipe:本机 IPC,比 TCP 端口少一个攻击面。
状态
已发布 crates.io,cargo install conmux 即可。装 Conflux 会一并得到它;也可以只用它。