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

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

  •  
  •   CoderKang · 14h 6m ago · 2325 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 终于正式发布了!

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

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

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

    也可以在 Vim 中执行 `:set mouse=` 关闭鼠标支持,不过更推荐使用 NyaTerm 的这个设置。
    zdf3
        18
    zdf3  
       11h 42m ago
    ui 很差 win98 的感觉
    dbak
        19
    dbak  
       11h 39m ago
    @CoderKang 非常感谢 已经解决了
    raycloud
        20
    raycloud  
       11h 38m ago
    感觉目前你的主要竞争对手是 Netcatty ,哈哈哈😂,两个都很不错
    russ44
        21
    russ44  
       11h 29m ago
    下载试用
    oldManNewThought
        22
    oldManNewThought  
       11h 13m ago
    牛逼,一直再用,2.0 版本是去掉 tauri 了吗?那是用哪个跨平台方案啊
    senooo
        23
    senooo  
       11h 3m ago
    @CoderKang
    1. 支持 Ctrl+V 粘贴了没有
    2. 左侧的目录树能不能跟随 cd 命令或者 pwd 命令
    fusxcs
        24
    fusxcs  
       10h 58m ago
    不支持 双击后按住拖拽连选文本吗?
    uni
        25
    uni  
       10h 43m ago
    星星了

    我现在用的是 electerm ,改天试试你的
    mgcnrx11
        26
    mgcnrx11  
       10h 42m ago
    之前已经 star 了,但 Tauri 就没有用下去了。看到 Rust GPUI 再支持一下
    Hconk
        27
    Hconk  
       10h 35m ago
    从 1.x 开始用,切到 2.0 了,不错
    jarryson
        28
    jarryson  
       10h 28m ago
    v2 上好东西不少,感谢,一直用的 windterm ,试试这个
    begitcn
        29
    begitcn  
       10h 23m ago
    用了很久了,不错
    CoderKang
        30
    CoderKang  
    OP
       10h 17m ago
    @senooo 支持的,这是基本功能
    CoderKang
        31
    CoderKang  
    OP
       10h 15m ago
    @fusxcs
    感谢反馈!
    由于`拖拽下载文件`的特性导致这个操作失效了,后续版本会进行修复。
    Jasperzz
        32
    Jasperzz  
       10h 13m ago
    希望能再好看一点点啊
    senooo
        33
    senooo  
       9h 41m ago
    @CoderKang
    1. 但是我在 ssh 终端内 Ctrl+v 输入的是 ^V ,右键 粘贴对应的快捷键是 ctrl+shift+v
    2. 怎么设置左侧目录树才能跟随 cd 命令进入的目录
    Niphor
        34
    Niphor  
       9h 36m ago
    @CoderKang 看了下
    > 所有外部链接都拒绝密码
    这个有点尴尬,我这用的堡垒机都是临时密码,然后直接唤起 FileZilla 这种上古工具的
    垃圾堡垒机的 ssh 跳板功能也没法正常工作
    CoderKang
        35
    CoderKang  
    OP
       8h 53m ago
    @senooo
    1. 需要在设置中自行设置快捷键;
    2. 在文件浏览器下方有功能三个图标,其中第二个就是。
    CoderKang
        36
    CoderKang  
    OP
       8h 51m ago
    @Niphor
    这个我跟进一下,在 v1 版本中是支持传入密码的。
    Reid
        37
    Reid  
       8h 24m ago
    CoderKang
        38
    CoderKang  
    OP
       8h 22m ago
    @Reid
    应该是没有开发者证书的问题。

    sudo xattr -cr /Applications/NyaTerm.app

    https://nyaterm.app/docs/getting-started/installation#macos
    senooo
        39
    senooo  
       7h 47m ago
    @CoderKang
    啊 是我愚蠢了,感谢!
    xshrim
        40
    xshrim  
       6h 21m ago
    这个能不能支持带密码的批量导入? 实际运维中经常需要将变化的一堆主机连着密码一起通过一个固定的格式(json 或者终端工具约定的格式)导入为终端工具的会话列表的, 以便连接的时候就不需要再手动去输入密码了. 很多终端工具都忽略了这个功能, 包括 windterm, 每次输密码烦死, 导致不得不放弃这些工具.
    还有一个功能, 类似 mobaxterm 的,允许在一个默认的窗口直接通过 ssh 命令临时连接到某个主机, 不管是在默认的本地 shell 中实现还是给一个地址输入栏, 反正就是能通过原始的 ssh 命令快速的创建一个临时会话, 省的每次都得点开新建会话的窗口. mabaxterm 最绝的是, 他不仅支持这种临时会话, 它还能记住这次会话的登录凭证, 后续无论是通过临时会话还是通过窗口新建持久会话,都能够自动使用之前保存的登录凭证, 不需要重新再登录, 把临时会话和持久会话打通, 这一点太方便了.
    thinkwei2012
        41
    thinkwei2012  
       5h 53m ago
    @Sodacooky +1 termora 也不更新了,我也转过来了
    stebest
        42
    stebest  
       5h 45m ago
    支持 keepane 和 tmux 这种吗?
    CoderKang
        44
    CoderKang  
    OP
       5h 43m ago
    vvenvw
        45
    vvenvw  
       5h 17m ago
    看这标题就很烧心!
    wtcs
        46
    wtcs  
       2h 40m ago via Android
    问下支持多窗口同步操作吗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1443 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 137ms · UTC 18:21 · PVG 02:21 · LAX 11:21 · JFK 14:21
    ♥ Do have faith in what you're doing.