• 请不要在回答技术问题时复制粘贴 AI 生成的内容
CoderKang
V2EX  ›  程序员

NyaTerm:这样的终端用起来不烧心

  •  
  •   CoderKang · 2h 23m ago · 663 views

    来分享一下自己一直在开发和维护的开源项目 NyaTerm。

    https://github.com/nyakang/nyaterm

    4685b1ae0cde121d009bea9c60a65541|690x375

    NyaTerm 是一个跨平台远程终端工具,最初使用 Tauri + WebView 构建。经过一段时间的开发和重构,现在已经正式切换到 Rust + GPUI 原生桌面架构,并发布了 2.0.0 正式版。

    我自己一直是 WindTerm 的忠实用户,它的很多功能和设计都非常符合我的使用习惯。

    不过,由于 WindTerm 已经有一年左右没有更新,一些长期存在的小问题、偶发闪退等情况始终没有得到解决,日常使用起来多少有些困扰。

    所以,在今年 5 月份我开始照着 WindTerm 开始复刻功能,得益于 AI 第一版( WebView )很快就搓出来虽然功能逐渐丰富,但性能问题也一直困扰着我。

    终端与普通桌面应用不同,尤其是大量文本输出、持续刷新、滚动和多终端并行运行的时候,对渲染效率和响应速度的要求比较高。

    随着功能不断增加,原有 WebView 方案在这些场景下逐渐暴露出一些性能瓶颈。虽然尝试过不少优化,但始终没能达到自己期望的效果。

    既然如此,那就换框架!

    轻装上阵,全新出发!

    NyaTerm v2 选择了 Rust + GPUI。

    这一次不再使用 WebView ,而是将整个桌面应用重构为原生 Rust 实现,包括界面、终端渲染、连接管理等。

    0651188d54b0a77fefc63c22729a2c60|690x375

    说起来简单,实际动手才发现,这基本相当于重新开发了一遍 NyaTerm 。

    原本 WebView 中很多习以为常的功能,都需要在 GPUI 中重新实现。终端绘制、窗口管理、输入法、剪贴板、跨平台兼容性等问题,也花费了不少时间折腾。

    好在经过多个预览版本的迭代,NyaTerm v2.0.0 终于正式发布了!

    17 replies  •  2026-10-29 14:36:45 +08:00
    isAK47
        1
    isAK47  
       2h 10m ago
    支持,体验很棒!
    fstab
        2
    fstab  
       1h 39m ago
    支持,的确不烧心。
    clacf
        3
    clacf  
       1h 20m ago
    支持 tui 吗?
    wanguorui123
        4
    wanguorui123  
       1h 14m ago
    不错
    Niphor
        5
    Niphor  
       1h 2m ago
    请问 能不能直接 命令行传参 启动并且支持多窗口或者多个 tab ,
    比如 传 --ssh/sftp ip:port -pass xxx 打卡
    初衷想找一款可以在 mac 上适配各种堡垒机的客户端。。。
    clacf
        6
    clacf  
       58 mins ago
    大佬,可以开发个,从 windterm 迁移主机记录的工具吗
    ycl10875222
        7
    ycl10875222  
       57 mins ago
    咨询个问题大佬,我现在也在做一款原生应用用 C++做的 你觉得 C++和 Rust 有什么开发上的体验区别吗 UI 必须自己手绘妈
    CoderKang
        9
    CoderKang  
    OP
       41 mins ago
    @clacf
    NyaTerm 支持从 WindTerm 直接导入的。`顶部工具栏 > 文件 > 导入配置`
    Sodacooky
        10
    Sodacooky  
       38 mins ago
    2.0 后确实界面没那么多闪烁了,windterm 停止更新后最接近它的一个工具了,现在用来取代 termora 变成主力工具,非常好用。
    不过顶部的资源监控加载变慢了,tmux integration 不知道有没有计划。
    fusxcs
        11
    fusxcs  
       33 mins ago
    用上了,大佬牛逼
    565656
        12
    565656  
       30 mins ago
    这个剧本怎么这么像一个叫 oxideterm 的,也是第一版 xx 然后第二版 gpui
    zepc007
        13
    zepc007  
       27 mins ago
    习惯了 nettycat 了,感觉都大差不差
    CoderKang
        14
    CoderKang  
    OP
       24 mins ago
    @ycl10875222
    可以说一下我现在 Rust 开发流程中所遇到的一个最大问题,就是 Rust 的编译速度,以及构建产生的中间产物特别占磁盘空间。UI 我是借鉴了一些主流软件的设计(例如 NyaTerm 的布局就是参考的 JetBrains 家的软件),再让 AI 去实现。
    dbak
        15
    dbak  
       19 mins ago
    做的很不错呀 不过 我用 vim 打开文件 用鼠标双击一行代码进行选定的时候 会触发 vim 的 VISUAL 模式 请问在哪个选项里可以解决这个问题呀
    smilenceX
        16
    smilenceX  
       15 mins ago
    从上次看到 OP 的帖子就下载下来,一直在用了。很不错
    CoderKang
        17
    CoderKang  
    OP
       1 min ago
    @dbak
    这个是 Vim 开启鼠标支持后接管了终端的鼠标事件,属于正常行为。

    可以在 NyaTerm 的 **设置 → 交互 → 剪贴板和鼠标** 中开启「**鼠标报告需按 Alt**」。

    开启后,正常双击就可以使用 NyaTerm 的文本选中功能,按住 Alt 操作鼠标才会将事件发送给 Vim 。

    也可以在 Vim 中执行 `:set mouse=` 关闭鼠标支持,不过更推荐使用 NyaTerm 的这个设置。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5423 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 06:38 · PVG 14:38 · LAX 23:38 · JFK 02:38
    ♥ Do have faith in what you're doing.