爱意满满的作品展示区。
soleilune

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

  •  2
     
  •   soleilune · 2 days ago · 2907 views

    大家好,我是 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

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

    macOS 版本能添加一个 brew 的安装方式么~ 😁
    soleilune
        7
    soleilune  
    OP
       1 day ago
    @SayHelloHi 有的,

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

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

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

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

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

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

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

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

    卸载没关系,便携模式那个 bug 我会修的,修完随时回来试试。
    spediacn
        40
    spediacn  
       20h 38m ago via iPhone
    楼主大概花掉多少令牌呢?
    soleilune
        41
    soleilune  
    OP
       20h 31m ago
    @spediacn 数不清了,开发八个月应该相当相当多了
    lozzow
        42
    lozzow  
       14h 39m ago
    就是太复杂了,内容太多了,好多 tab 好多层级好多可选啊
    cheny233
        43
    cheny233  
       13h 0m ago
    体验了一波,好评好评!!! 不错
    hvsy
        44
    hvsy  
       10h 39m ago
    @soleilune 在新版本里面看到了.
    1. 快捷命令的面板有点 bug 和建议
    a. 分类多了不能滚动
    b. 置顶的功能好像没有用.
    c. 能不能加一个固定在底部或者右侧边的功能.
    2. 终端性能浮层, 这个最好能显示在右边,显示在左上角会挡住正常的内容
    kirbyzhu
        45
    kirbyzhu  
       10h 28m ago via iPhone
    @soleilune 知道原因了 是我自己的问题 域名访问因为开了 cf 的小黄云访问不了 换 ip 就没问题了
    kirbyzhu
        46
    kirbyzhu  
       10h 25m ago via iPhone
    @soleilune 在设置的时候有几个一体化的终端面板可选 但是设置完后就只能分项设置 终端显示设置起来很累 美观度也不高 能否参考一下 termark 这个是我用过的显示最干净好看的 term
    soleilune
        47
    soleilune  
    OP
       10h 17m ago
    @hvsy 终端性能浮层,可以去设置内关闭
    soleilune
        48
    soleilune  
    OP
       10h 6m ago
    @kirbyzhu 我给的设置比较多,这样大家自由度比较高。这就是为什么你们看到的设置是分页的,每项都有独立的开关和选项,不分页的话一百多个设置项堆在一个面板上,谁都找不到东西。开始页面只是给了少量设置,所以看起来比较简单。除此之外,我也提供了丰富的动画和阴影效果,希望能给大家提供不错的体验。不过如果你觉得 OxideTerm 美观度不高,Termark 更好,那就去用 Termark 吧。
    hvsy
        49
    hvsy  
       9h 14m ago
    @soleilune 如果在右边就可以打开,但是在左上角就有一点点碍事了.所以就关掉了
    soleilune
        50
    soleilune  
    OP
       9h 2m ago
    @hvsy 那确实是可以考虑一下,一般右上角确实没什么东西,这样更合适
    iminto
        51
    iminto  
       6h 47m ago
    SFTP 功能使用怪异,难于接受。

    没有快捷键,也没有按钮,不知道在哪里使用,整个人是懵逼的,找了几分钟才找到。
    root 身份登陆后,左下角的工作目录显示不可用,也打不开 SFTP

    我是在终端先进入非 /root/和非 / 目录,然后才能打开工作目录,然后再打开 SFTP ,使用起来爬山涉水,很困难。没有 10 秒以上感觉都打不开 SFTP

    我花了半小时,依然不知道怎么用 SFTP...总觉得是自己不会用,不然怎么会这么难用,/(ㄒoㄒ)/~~
    soleilune
        52
    soleilune  
    OP
       6h 45m ago
    @iminto 左侧活动会话树里,连接成功后展开主机节点,第二个就是「 SFTP 」,点击直接打开。已在 Issue 里给你回复了界面截图。
    standin000
        53
    standin000  
       1h 24m ago
    跟 Wezterm 对比了?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2817 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 15:14 · PVG 23:14 · LAX 08:14 · JFK 11:14
    ♥ Do have faith in what you're doing.