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

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

  •  2
     
  •   soleilune · Jul 25 · 3621 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

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

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

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

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

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

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

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

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

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

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

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

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

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

    我花了半小时,依然不知道怎么用 SFTP...总觉得是自己不会用,不然怎么会这么难用,/(ㄒoㄒ)/~~
    soleilune
        52
    soleilune  
    OP
       Jul 27
    @iminto 左侧活动会话树里,连接成功后展开主机节点,第二个就是「 SFTP 」,点击直接打开。已在 Issue 里给你回复了界面截图。
    standin000
        53
    standin000  
       Jul 27
    跟 Wezterm 对比了?
    molezznet
        54
    molezznet  
       Jul 28
    内置 ide 精简方便, 就是希望能功能强大需求时 是否能启用更加完整的文件编辑
    soleilune
        55
    soleilune  
    OP
       Jul 28
    @molezznet 你所说的更完整指的是什么?这个我不是很明白。指的是更多文件格式的覆盖吗;还是说去写代码的时候缺少语法检查?前者的话可能容易一些,后者的话要引入 LSP ( Language Server Protocol )了,这个就很麻烦,也容易吃掉很多内存,可能就没必要了。
    ethanpeng
        56
    ethanpeng  
       Jul 28


    这字体怎么怪怪的
    soleilune
        57
    soleilune  
    OP
       Jul 28
    @ethanpeng https://github.com/AnalyseDeCircuit/oxideterm/issues/386
    神秘问题,不止你遇到,但是我这边复现不出来,在查
    molezznet
        58
    molezznet  
       Jul 29
    @soleilune 明白了, 简洁就好。 那就是否可能使用外部如 zed VSCode 打开了?
    hzz2
        59
    hzz2  
       Jul 29
    支持支持 希望尽快安排下 sshtab 分屏 https://github.com/AnalyseDeCircuit/oxideterm/issues/273 期待
    soleilune
        60
    soleilune  
    OP
       Jul 29
    @hzz2 ssh 有多开终端,分屏不紧急。
    molezznet
        61
    molezznet  
       Jul 30
    今天的新版本在托管的地方好像不能粘贴 key 了, 是因为便携版的问题吗?

    另外期望除了中键,还能支持右键粘贴……
    wsliwh
        62
    wsliwh  
       Jul 30
    使用了一下,不习惯,布局上很多用不上的功能。没有主机管理还是我不会使用,每次关闭了都需要重新输入信息登陆,活动会话和会话管理,连接池一般人用不上。
    soleilune
        63
    soleilune  
    OP
       Jul 30
    @wsliwh 谢谢,主机管理一直都是有的,你说“每次关闭了都需要重新输入信息登陆”,那就是你没有看到新建表单里的“保存并连接”。你说“活动会话和会话管理,连接池一般人用不上”,但你没法定义,一般人不止你。也希望你能找到合适的软件。
    soleilune
        64
    soleilune  
    OP
       Jul 30
    @wsliwh 还有你下载的是不是旧版本?连接池作为侧边工具栏出现是 1.0 时代的,检查一下设置里的版本号——如果是 2.x 以下,那是 Tauri 时代的遗物,功能布局和现在不完全一样。建议去 GitHub Releases 下最新的 2.0.x 。
    soleilune
        65
    soleilune  
    OP
       Jul 30
    @molezznet AI 确认如下:

    托管密钥弹窗会在共享文本输入处理器之前拦截按键。普通字符会被放行,因此可以手动输入;但 Cmd+V / Ctrl+V 带有修饰键,被弹窗直接消费,无法到达粘贴处理器。受影响的不只是私钥内容,还包括密钥名称、口令,以及该弹窗里的复制、剪切、全选等快捷键。
    问题由提交 8396b628 引入:
    2.0.12 不受影响。
    2.0.13 已包含该回归。
    安装版和便携版都会发生。
    私钥的多行格式、换行规范化和托管密钥保存结构本身没有问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1472 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 16:42 · PVG 00:42 · LAX 09:42 · JFK 12:42
    ♥ Do have faith in what you're doing.