V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
yoko19191

Vibemux:一个可以“一心二用”的 GUI 终端复用器

  •  
  •   yoko19191 · Apr 25 · 669 views

    最近 Vibe Coding 用多了之后,发现一个很现实的问题:窗口越来越多。

    一个窗口跑 dev server ,一个窗口跑 test ,一个窗口开 Claude Code ,一个窗口开 Codex ,还有日志、git 、临时 shell 。 这些东西不是简单的“开几个 tab”就能解决的,因为很多任务是同时在动的:有的在编译,有的在等输入,有的跑挂了,有的只是暂时不用看但不能关。

    我想要的其实是一个可以“一心二用”的终端工作台: 主窗口里专注当前任务,但旁边还能留一点余光,看别的 session 有没有变化;暂时不用看的任务可以挂起到后台,但进程继续跑。

    这个想法很大程度上受到了 NekoApocalypse/Vibe99 的启发。Vibe99 里那个“一个主 pane + 多个侧边预览”的感觉我很喜欢,但是当时的技术栈是 Electron (PS:现在也改成了 tauri) 感觉太重,所以我做了一个自己的 GUI multiplexer ,叫 Vibemux 。同时增加了更多对 Keyboard 和 基础 AI 功能的支持。

    pasted-image-1777114710410.webp

    https://github.com/yoko19191/vibemux

    它和普通 Terminal / tmux / zellij 的区别大概是:

    普通 Terminal 更关注 window / tab / pane 。 tmux 、zellij 这类工具很强,但很多状态还是藏在编号、status line 、命令和肌肉记忆里。

    Vibemux 想把终端当成一组“活着的任务”来管理。每个 session 都有名字、颜色、工作目录、进程状态和注意力状态。它不是 tmux 的 GUI 套壳,而是一个面向本地多任务 / 多 agent 场景的 GUI multiplexer 。

    目前已经有这些功能:

    • 横向 Deck:一个主 terminal 聚焦,其他 terminal 作为侧边预览保留上下文
    • Detach / Attach:把 session 挂起到底部栏,进程继续运行
    • detached 后会卸载 xterm 渲染实例,减少前端负担
    • attach 回来时恢复屏幕快照、replay 缓冲输出,再接实时输出
    • session 有颜色身份、名称、工作目录、运行状态
    • 支持 busy / done / failed / needs input 这类注意力提示
    • 键盘优先操作,默认 prefix 类似 tmux 的 Ctrl+B
    • 全局命令面板,macOS 是 Cmd+K ,Linux / Windows 是 Ctrl+K
    • 内置 Ask AI ,支持 OpenAI-compatible API ,可以附带 terminal 上下文提问
    • 支持 macOS / Linux / Windows
    • 技术栈是 Tauri + Rust + Svelte + xterm.js 。

    选择 Tauri 主要是想让它轻一点,不想为了一个终端工作台再塞一个完整 Chromium 大包。PTY 和 session 生命周期这块在 Rust 侧做,前端使用成熟的 xterm.js 完成终端渲染。

    后面 roadmap 里我比较想做的是和各种 Code CLI 更深一点的集成。比如 Claude Code / Codex 这类工具有时候会进入交互式状态,问你要不要继续、要不要确认命令。未来希望 Vibemux 能识别到这些状态,然后让对应 session 闪一下,或者在 detached bar 里显示“需要处理”,这样就不用每个窗口来回扫了。

    现在还是早期版本,很多地方肯定粗糙。 欢迎试用、提 issue ,尤其想听听大家在多终端 / 多 agent / Vibe Coding 场景下到底怎么管理注意力。大家在使用 Terminal 时还有什么痛点。

    haoxuexiaoyao
        1
    haoxuexiaoyao  
       Apr 27
    和 cmux 有区别么
    yoko19191
        2
    yoko19191  
    OP
       Apr 29
    @haoxuexiaoyao cmux 用左侧边栏切换 Terminal Session 占据空间,vibemux 的 Sessoin/Workspace 切换强调水平平铺更加直观; vibemux 里每个 Session 可以后台挂起,一定程度替代 tmux; vibemux 强调 Keyboard first, 所有操作都可以用 Keyboard 完成
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2627 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 03:58 · PVG 11:58 · LAX 20:58 · JFK 23:58
    ♥ Do have faith in what you're doing.