本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
项目链接:
项目图片:
主页
连接页
这个项目主要解决"在多台服务器之间来回 ssh、再 tmux attach 太麻烦"的问题。平时我在好几台 VPS 和实验机上挂着 tmux, 想看哪个就得开终端 ssh 上去再 attach, 切来切去挺麻烦, 于是做了 Hearth: 用浏览器统一管理多台机器的 tmux session,点进任意一个就是完整的交互式终端。做成了"浏览器里的 TUI", 等宽、键盘优先, 手感更像 lazygit / k9s, 而不是常见的那种网页面板。
功能上只围绕一件事 —— 把 tmux 搬进浏览器:
- 侧栏列出多台 server 和各自的 tmux session(在线 / 离线、窗口数)
- 回车 attach,直接在浏览器里跑 vim / htop 等,窗口大小自适应
- 新建 / 杀 session、⌘K 模糊跳转、多标签、j/k 等 vim 键位
- 面板里直接增删服务器
- 断线自动重连, tmux 会话在服务端常驻
- 终端流不经过部署前端的 Vercel: 浏览器直接 WSS 连到自己 VPS 上的守护进程, 经 Cloudflare Tunnel 暴露, 不用开公网端口、不暴露 IP
- 凭证(SSH key / 密码)只存在自己那台机器上,网页登录用密码 + 短时 token,session 名做了白名单防注入
主要面向手上有几台机器、想用浏览器随手管 tmux 的人,也适合对 xterm.js、ssh2 PTY 桥接、tmux attach 这些感兴趣的开发者参考。
技术栈大致是: 前端 Next.js + xterm.js, 后端 Fastify + ssh2 / node-pty, Bun 管的 monorepo。TUI 手感主要参考了 lazygit 和 k9s。
欢迎试用、提 issue、补充更多用法, 后面会随自己的需要继续更新。这是一个自托管项目, 部署到公网前记得设好登录密码和 ALLOWED_ORIGIN.


