[开源]或许是 WindTerm 精神的续作: SSH 客户端 OxideTerm 焕新为原生软件, Windows 空载内存仅 25 MB

soleilune 2026-07-25 20:38 1

大家好,我是 OxideTerm 的作者。


WindTerm 是很多人的心头好,极低的内存占用、原生级的流畅度,很少有替代品能完全复现。但它已经停更一年多了,积压的 Issue 长期也似乎无人修复,当然我也很希望作者能够再度更新。现在不少朋友一直在找下一个归宿,但市面上大多是 Electron/Tauri 的 WebView 应用,空载几百兆起步,很难找回那种轻快感。


我自己一直很尊重 WindTerm 坚持原生、不妥协的产品理念,也在做一款开源 SSH 工具 OxideTerm。我的 1.x 是用 Tauri 写的,很快就撞到了 WebView 的天花板:



  • 空载吃内存:即使没打开任何会话,浏览器引擎、DOM 和 JS 运行时的固定开销就占着几百兆。

  • 前后端跨语言通信效率受限:终端内容要跨越 Rust 和前端 JS 之间的数据链路,大日志刷屏时压力可能不小。


我发现局部优化解决不了架构问题。所以我做了一个决定:抛弃 WebView ,用纯 Rust 和 GPUI ( Zed 编辑器用的原生 GPU 渲染框架)完全重写了它。通过移除 WebView 、DOM 和 JavaScript 运行时,更换数据链路 ,我们省去了跨语言的序列化和 IPC 。macOS 空载从 320MB 降到了 80MB 出头,Windows 则从约 180MB 降到了 25MB 。 (自己的机器实测)


内存对比


最近刚好过了 1000 Star 门槛,历经大量 issue 反馈,算是有了一定完成度,所以发出来再和大家分享。


OxideTerm 和 WindTerm 有什么共同点?



  • 原生高性能(无 WebView / 零 DOM 开销):我们都彻底避开了 WebView/Electron ,界面由 GPU 硬件直接渲染,不经过任何浏览器引擎层。这带来了实打实的性能与内存优势:目前 OxideTerm 在 Windows 下的空载内存仅约 25 MB( macOS 约 80MB )。

  • 免费 & 开源:项目完全开源 (GPL-3.0),目前没有任何订阅或专业版限制。


OxideTerm 有什么不同?


如果说 WindTerm 是上一代经典的代表,OxideTerm 则试图在原生性能的基础上,加入现代化的能力。


另外我们的 UI 并没有完全复刻 WindTerm——这是有意为之,目的是提供更现代的信息架构和交互体验,而不是做一个外观上的克隆。



  • 平滑迁移:支持从其他 SSH 客户端导入已有连接配置,不用从头手动录入。

  • 原生 RDP / VNC 支持:除了基础的 SSH/SFTP ,内置了基于 Rust IronRDP 的原生桌面连接的部分能力。

  • Host Tools 工作区:我们在右侧面板集成了 Docker 、进程、tmux 、systemd 服务等图形化管理工具,通过复用当前的 SSH 连接通道实时抓取。目标是消除传统 SSH “开一堆终端敲命令”的割裂感,打造一个集成驾驶舱。

  • 现代化的 AI 助手 OxideSens:内置 AI ,支持带终端上下文的对话。可以帮你分析报错、生成修复命令,你可以选择自己的大模型提供商( BYOK )。

  • 终端核心换代:底层换成了 alacritty_terminal,并添加支持 Sixel/Kitty 图像协议,可以在终端里直接预览图片。


Host Tools



  • 云同步:支持 WebDAV 、S3 兼容存储、OneDrive 、GitHub Gist 等后端同步配置。所有数据上传前在本地加密,没有任何中央服务器。


云同步



  • 同款 Free Type Mode 自由输入模式:可以直接用鼠标点击命令行的任何位置移动光标,选中文本直接退格删除(不用在远程机器装任何脚本,纯端侧实现)。

  • 高速 SFTP 传输:我们对 russh-sftp 做了自维护的改造优化,上传下载速度相比社区版有了显著提升。

  • 独立 CLI 工具:不启动桌面应用也能完成环境诊断、连接管理、云同步和便携包导入导出,方便接入脚本与 CI 。


会话管理


代码与审计


我知道对于 SSH 客户端,大家最关心的是安全



  • 连接配置和敏感凭据在本地加密存储,加密密钥由操作系统密钥链管理

  • 内存中的敏感数据使用后即时擦除( zeroize ),避免密钥残留

  • 无遥测上报、无后台数据收集:应用不会主动向外发送任何使用数据,你不告诉我们,我们就什么都不知道

  • 项目目前分为了 80 多个独立 crate ,代码完全开源。


写在最后


项目完全用爱发电。当时写这个项目的初衷很简单,受够了市面上的订阅制工具,就想给自己搓个顺手的。不知不觉坚持了 8 个月,又因为尝试剥离 WebView 完全重写了底层,从 Tauri 换成了 GPUI ,熬到了 2.0 。接下来不出意外的话还会继续维护下去。


如果你也是一个原生体验的追求者,不太喜欢 Electron 和 Tauri 架构下 Webview 的内存占用,欢迎来试试看。觉得好用的话点个 Star ,如果有任何建议或遇到了使用问题,欢迎在帖子里回复,或者直接去 GitHub 提 issue ,我看到都会尽量回复——项目比起 WindTerm 这样历经大家打磨的璞玉,毕竟还算年轻。


GitHub: https://github.com/AnalyseDeCircuit/oxideterm


官网:https://oxideterm.app

最新回复 (39)
  • Mora1n 07-25 20:44
    1
    哇噻帮顶! nyaterm 也不错
  • Salute 07-25 21:02
    2
    体验了一下,感觉很棒,star 了。这么大的项目,一个人能维护的过来吗
  • soleilune 楼主 07-25 22:11
    3
    @Mora1n 谢谢! NyaTerm 也是很好的项目。我稍稍看了一眼,他目前是基于 Tauri 的,UX 更贴近 WindTerm 老用户的操作习惯,当然也有可能有很多优点我没有仔细挖掘;我们选择的方向是彻底去掉 WebView ,用 GPUI 原生渲染,也都算是各自继承了 WindTerm 精神的一部分吧,也希望他能做的越来越好。
  • rainrdx 07-25 22:49
    4
    以前觉得没有好用的,现在终端怎么出来这么多!我的要求其实就是底层高效,前端跨平台原生,简单同步密码和 ssh key ,长期保持更新。先围观下这个…
  • liuliuliuliu 07-25 23:12
    5
    别的先不说,抛弃 WebView/Electron 的软件我就要支持一下
  • SayHelloHi 07-26 00:02
    6
    @soleilune

    macOS 版本能添加一个 brew 的安装方式么~ 😁
  • soleilune 楼主 07-26 00:04
    7
    @SayHelloHi 有的,

    'brew install --cask AnalyseDeCircuit/tap/oxideterm'
  • Salute 07-26 01:20
    8
    RDP 可以做保存配置的功能吗(和 ssh 一样保存用户名 ip 端口等)
  • soleilune 楼主 07-26 01:22
    9
    @Salute 还好吧,有 AI 辅助的话问题基本不大
  • soleilune 楼主 07-26 01:23
    10
    @Salute 这个是我忘记做了,应该要作为一种资产能够保存下来的,我看看后面补上吧
  • zhs227 07-26 02:08
    11
    用 vi 查看日志文件的时候,发现有一些形似文件名的地方会被高亮,找了一圈没有找到关闭的地方,能否做个配置。同样的文件用 less 等查看时也会自动高亮。
  • fryrice 07-26 07:22
    12
    非常棒,推荐给很多人用了
  • xinyana 07-26 09:07
    13
    神器,我梦想中的终端
  • hvsy 07-26 09:27
    14
    为什么清屏这些操作没有快捷方式......
  • xinyana 07-26 09:52
    15
    密码可以在明文和**切换吗?经常需要查看密码
  • kirbyzhu 07-26 10:27
    16
    很奇怪 设置好 ssh 登录不上 不管是用密码还是密钥

    用其他 term 都没问题
  • echoyangjx 07-26 10:30
    17
    看着不错
  • kirbyzhu 07-26 10:53
    18
    奇怪的问题 基本同样的配置另一台终端就都能正常登录。
  • ysbreh 07-26 11:16
    19
    多内置几个 light 配色,比如 vscode light 配色
  • smilenceX 07-26 12:00
    20
    下载简单看了一下,我想要的功能都有了。
    已 Star ,正在试用,感谢 OP
  • soleilune 楼主 07-26 14:06
    21
    @zhs227
    已实现配置。
    设置位置:设置 → 终端 → “将文件路径识别为链接”。
    关闭后:自动识别的文件路径不再高亮或响应点击;网页 URL 仍然可用;程序明确输出的 OSC 8 超链接仍然可用;默认保持开启,兼容现有行为。

    下次新版本就可以了
  • soleilune 楼主 07-26 14:06
    22
    @ysbreh 这个可以有
  • 565656 07-26 15:28
    23
    非常喜欢项目功能,有时候 win 改几个文件麻烦死了
  • Jacobson 07-26 15:47
    24
    看着真不错,现在用的就是基于 Electron 的,待机都要占用 500m 左右,现在内存这么贵,一直在物色平替。

    回去换一下楼主这个事实,维护辛苦了,先行感谢!
  • Leon6868 07-26 16:06
    25
    GPUI 居然能做那么流畅的动画,整体占用确实在 80MB 左右,非常精良的软件!
  • soleilune 楼主 07-26 17:05
    26
    @kirbyzhu 没有具体的服务器系统版本、SSH 版本和日志,没法排查
  • soleilune 楼主 07-26 17:44
    27
    @hvsy 刚做了,下个版本推出
  • soleilune 楼主 07-26 17:45
    28
    @xinyana 可以的,我也认为这是合理需求。新建表单这里我刚做了可切换,会跟着下个版本推出。
  • kirbyzhu 07-26 18:57
    29
    @soleilune 在哪里导出这些信息?
  • Ocyss 07-26 19:08
    30
    感觉挺实用, 点开发现已经 star 了
  • soleilune 楼主 07-26 19:15
    31
    @kirbyzhu 你在能连上的终端里跑 ssh -vvv 用户名 @服务器地址,把完整输出去除敏感信息发 issue 过来。所有的东西都在里面——SSH 版本、算法协商、认证流程。别只说连不上,没日志我看不了。
  • DearFox 07-26 20:08
    32
    能连接密码管理器中的 ssh 密钥吗
  • soleilune 楼主 07-26 20:09
    33
    @DearFox OxideTerm 支持 SSH Agent 。如果你的密码管理器(比如 1Password 或 Bitwarden )提供了 SSH Agent 功能,把它的 agent socket 配好,OxideTerm 就可以直接用它来认证,不需要导出密钥文件。
  • ggmood 07-26 20:56
    34
    ios 能不能开发一下
  • yjxjn 07-26 22:13
    35
    便携模式下,无法保存密码到系统钥匙?
  • soleilune 楼主 07-26 22:25
    36
    @yjxjn 便携模式的初衷就是数据跟着 U 盘走,不留在主机上。系统钥匙串绑的是本机,换一台机器就没了,跟便携的目的矛盾。
  • Jacobson 07-26 22:30
    37
    试了下,确实很轻量,资源占用很低,但是布局用不习惯。

    其中最大的不习惯就是 SSH SFTP 在 2 个独立 TAB 中,需要不停的切换 TAB ,操作上比较割裂。
    看了下设置里,没有相关的设置项,所以这个布局逻辑应该是写死的。

    还有楼上说的便携模式不能保存密码,我也遇到了,这~这确实不太应该。

    离成熟的产品还有一些优化空间。

    暂时卸载,保持关注,作者加油!
  • soleilune 楼主 07-26 23:18
    38
    @yjxjn 哦,确实会保存链接失败,我去看看为什么
  • soleilune 楼主 07-26 23:26
    39
    @Jacobson 感谢反馈。成熟的产品都是修修补补磨出来的。布局这块目前确实更多是按我自己的习惯来的,双栏分屏我自己用得顺手。如果侧边栏 SFTP 的需求呼声够多,我会认真考虑,但要在现有架构里塞进去、不破坏 UX ,还得想清楚怎么做。

    卸载没关系,便携模式那个 bug 我会修的,修完随时回来试试。
* 帖子来源V2EX
返回