苦于 Tabby 占用 1.5G 内存,切到 Ghostty 后我写了个 5MB 的全平台终端神器:ctty


故事的起源:从 1.5G 内存到“真香”与遗憾

作为每天泡在终端里的开发者,我之前一直是 Tabby 的重度用户——它好看、开箱即用,把 SSH 主机管理、串口调试和 SFTP 文件传输整合得很顺手。

但随着业务和开发工具(比如跑 Harness 等重型工具)越来越重,基于 Electron 的 Tabby 渲染进程开销直接失控:光是终端本身就吃了我将近 1.5G 内存,风扇狂转,CPU 居高不下。

后来我果断切到了最近大火的 GPU 加速终端 Ghostty。不得不说,现代原生终端是真的香:

  • 内存瞬间降到了 500MB 以内
  • 渲染丝滑流畅,CPU 温度直接降下来了;
  • 输入几乎零延迟。

但爽了没两天,新的痛苦又来了:Ghostty 是个纯粹的终端模拟器,我在 Tabby 里用得最顺手的那些工具全没了!

  • 想要连多台服务器?只能手动敲 ssh user@ip 或者硬背 ~/.ssh/config 里的别名;
  • 临时调个串口设备?又得去找 Minicom / Picocom;
  • 想传个文件?还得退出或者开第三方 GUI 软件;
  • 换到 Windows 或 Linux 服务器上,又要重新配一套环境。

既然市面上没有一个既原生轻量、又能在任何终端里运行的全能连接管理工具,那我干脆自己写一个!

于是,ctty 诞生了。


什么是 ctty?

ctty 是一个用纯 Go 编写的全平台、一体化终端连接管理器(TUI)

它把以前臃肿 GUI 客户端(如 Tabby / Termius / Xshell)里的核心功能,全部搬进了轻量级的终端交互界面里:

  • 极度轻量:单个二进制文件仅 ~5MB,纯 Go 编写,0 Electron、0 浏览器引擎,启动毫秒级,几乎不占内存;
  • 终端解耦(Terminal-Agnostic):无论你用的是 Ghostty、Alacritty、WezTerm、iTerm2、Windows Terminal 还是直接在 tmux / Zellij 分屏里,它都能完美运行;
  • 全平台支持:Linux、macOS (Intel/Apple Silicon)、Windows 甚至 Android (Termux) 全覆盖;
  • 三合一全功能SSH 主机管理 + 串口设备调试 + SFTP 文件传输

核心功能亮点

1. 终端里的 SSH 主机看板(键盘流驱动)

告别死记硬背服务器 IP 和别名,输入 ctty 即可唤起:

  • 实时网络探测:异步 Ping 自动检查服务器连通性(正常 / 探测中 / 离线);
  • 智能搜索与排序:按 / 支持主机名、IP 和 #tag 即时过滤,按 s / r 按最近连接或字母排序;
  • 彩色 Tag 标签系统:自动对 #prod(红)、#dev(绿)、#db(紫)进行高亮配色,一目了然;
  • 安全密码保险库:内置 AES-256-GCM 本地加密存储,基于 OpenSSH 原生 SSH_ASKPASS 协议实现免密秒连,绝不污染系统原生的 ~/.ssh/config
  ctty - Connection Manager
┌ Host ──────────┬ Address ────────┬ User ─────┬ Port ──┬ Tags ───────┬ Status ┐
│ > prod-api-01  │ 192.168.1.101   │ root      │ 22     │ #prod #web  │   OK   │
│   dev-database │ 10.0.0.52       │ suroy     │ 22     │ #dev #db    │   OK   │
│   hk-gateway   │ 47.90.xx.xx     │ ubuntu    │ 2222   │ #gateway    │   Down │
└────────────────┴─────────────────┴───────────┴────────┴─────────────┴────────┘

2. 内置 SFTP 文件浏览器(选定主机按 o 唤起)

传文件再也不用切到 FileZilla 或手动敲 scp

  • o 即可在当前终端内唤起双栏/交互式 SFTP 浏览器;
  • 支持远程与本地目录快速切换(按 u 切换浏览);
  • 支持远程文件搜索、一键下载至本地、上传与删除,带清晰的进度条与取消保护。

3. 串口设备自动识别与调试(按 t 一键进入)

做嵌入式、硬件调试或配交换机路由器的同学福音:

  • 插入 USB 串口转接线后,按 t(或直接运行 ctty serial)自动检测所有串口;
  • 预置常用波特率(9600 ~ 921600)、数据位、校验位自由切换;
  • 终端直连桥接,按 Ctrl+] 随时切回主界面。

4. 轻松配置 SSH 端口转发(按 f 唤起)

记不住复杂的 -L-R-D 参数?

  • 本地端口转发(-L):一键把远程数据库映射到本地 localhost
  • 远程端口转发(-R):把本地 Web 服务暴露给服务器;
  • 动态代理(-D):一键开启 SOCKS5 代理隧道;
  • 内置历史配置记录,常用端口转发一键复用。

5. 专为极小分屏打磨的 TUI 体验

在日常开发中,我经常在 Ghostty / tmux 里切出只有 8~10 行高的极小窗口。很多现有的 TUI 工具在小窗口下直接就爆栈或截断显示了。
ctty 实现了焦点跟随的动态视口滚动与固定头尾导航,哪怕在极小的分屏下,配置表单、帮助菜单也依然丝滑可用!

同时适配了 VS Code / JetBrains 内置终端体验。


⚡ 全平台一键安装

为了让大家在所有机器上都能无缝用上,安装做到了极简:

  • macOS(推荐 Homebrew)

    brew install zsuroy/ctty/ctty
  • Linux / macOS / Termux(一行脚本搞定)

    curl -sSL https://raw.githubusercontent.com/zsuroy/ctty/master/install/unix.sh | bash
  • Windows(PowerShell 一行命令)

    irm https://raw.githubusercontent.com/zsuroy/ctty/master/install/windows.ps1 | iex
  • Go 开发者源码安装

    go install github.com/zsuroy/ctty@latest

常用快捷键速查表

按键功能说明
↑/↓j/k上下移动选择主机
Enter快速连接到选中的主机
a / e / d新增 / 编辑 / 删除主机配置
/启动即时搜索(支持搜主机名、IP、#标签
p一键探测所有主机连通性(Ping 检测)
o打开选中主机的 SFTP 文件传输
t打开 串口设备管理 (Serial)
f打开 SSH 端口转发配置
S打开偏好设置(中英文切换、ESC 行为等)
q退出程序

结语 & 开源欢迎体验

从 Tabby 的 1.5G 内存泥潭脱身,配合 Ghostty + ctty,现在的终端体验真正做到了兼具极速性能与极致便利

这个项目现已完全开源,如果你也追求更轻量、高效的终端工作流,欢迎体验!

  • GitHub 仓库https://github.com/zsuroy/ctty
  • 欢迎大家体验后在 GitHub 点个 Star,有任何需求、Bug 或建议,也欢迎随时提 Issue / PR!

声明:Grows towards sunlight |版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 苦于 Tabby 占用 1.5G 内存,切到 Ghostty 后我写了个 5MB 的全平台终端神器:ctty


Grows towards sunlight and Carpe Diem