OxideTerm: Rust SSH 栈的本地优先 SSH 工作区,零遥测零订阅

1 天前
 soleilune

我平时会在一些平台上租显卡跑模型推理。实际用起来经常不是只开一个 SSH 终端就完事:一边要跑命令看推理进度,一边要用 SFTP 拉回推理结果,有时候还要做端口转发;临时改配置文件时,nano 功能太弱,vim 又不是每个人都熟。模型一报错,又想把当前终端输出、远程路径和运行环境一起交给 AI 看一下。

现有工具各有各的优势,但在我的工作流里,这些能力往往是分散的:终端、SFTP 、端口转发、文件编辑、AI 上下文各在各的地方。再加上我自己比较在意遥测、订阅和 SSH 凭据安全,所以最后决定自己做一个。于是就有了 OxideTerm:一个本地优先的 SSH 工作区,把终端、SFTP 、端口转发、文件编辑、传输、重连和 AI 上下文放在一起。

先说结论

OxideTerm 是一个跨平台 SSH 工作区,支持 macOS / Windows / Linux ,零 OpenSSL ,零遥测,零订阅,GPL-3.0 全开源。

没有「专业版」,没有免费版限制几个连接,没有高级功能请订阅,也更没有什么年订阅和终身买断的区别。Tauri 2.0 ,Rust + Typescript ,React 19 ,打包 25–40 MB 。SSH 协议栈目前基于 russh 0.59 ,不依赖 OpenSSL / libssh2 这类 C 生态 SSH 组件;密码和密钥存 OS 钥匙串,不写进配置文件。

GitHub: https://github.com/AnalyseDeCircuit/oxideterm 官网: https://oxideterm.app

GPL-3.0 全开源,上过阮一峰科技爱好者周刊,迭代中,现在已经 750+star 了。


AI 运维助手 OxideSens

OxideSens 是嵌进终端工作流里的 AI 。⌘I 一键呼出,它可以直接拿到当前 workspace 上下文,因此你不用反复解释“我在哪台机器”“当前目录是什么”“刚才报错是什么”。

它也可以通过侧边栏通过工具帮你做事:

还有 MCP 和 RAG:

Key 由你做主:


除了 AI ,本体也是完整 SSH 工作区


为什么 GPL 全开源

SSH 不是笔记软件,它碰的是密码、私钥、生产环境的终端输出。对这类工具,我会更希望它的行为和技术栈是可以被验证的:它怎么处理凭据、有没有额外的数据上报、出了安全问题能不能被及时发现和修复,这些都不应该只靠信任。

我自己也有这样的顾虑,所以选择开源。开源不是万能的,恶意投毒的案例也有,但起码代码可以被人看、被人审、被人发现问题。这是闭源给不了的。同时,我认为开源也能更好的获取大家的意见,并和大家共建——众人拾柴火焰高。


下载: https://github.com/AnalyseDeCircuit/oxideterm/releases

后续技术路线

目前公开版本基于 Tauri 2 + React 。与此同时,GPUI 原生 UI 迁移版本已经基本完成,目标是后续逐步脱离 WebView ,进一步降低内存占用和提升终端渲染性能。Tauri 版本目前会继续保持可用和维护,GPUI 版本会在稳定性验证后作为下一阶段重点方向。

欢迎来挑 bug 、提建议,如果你有 SSH / SFTP / 串口 / 端口转发 / AI 上下文场景,欢迎直接丢用例,我会优先处理这个帖里大家反馈最多的几个问题。

觉得还行点个 star 就是最大支持。有问题 GitHub Issue ,记得带上详细信息。谢谢大家!

794 次点击
所在节点    分享创造
5 条回复
hzz2
1 天前

早已 star 希望这个功能早日安排 非常高频且便捷 相信并不小众
soleilune
1 天前
@hzz2 不是小众不小众的问题,这个交互确实很好,也是高频细节。主要是 Tauri 版终端底层用的是 xterm.js ,它的输出区域本质上是终端渲染缓冲区,不是可编辑文本编辑器,所以要做 WindTerm 那种“选中后直接编辑/删除输出内容”的交互会比较别扭,也容易和终端真实缓冲区状态不一致。所以只要我们还在 Tauri 版本,这个就很难做。

GPUI 版终端是自己画的,终端 buffer 、selection 、overlay/action 这些都能自己控制,后面就比较适合做这类 selection actions:比如选中文本后编辑、删除、发送到 AI/命令面板/脚本处理。WindTerm 我记得是原生实现,因为他们的终端是完全自己操纵的,所以就好做的多。Anyway ,我会放到 GPUI 版本评估的。感谢你的关注!
soleilune
1 天前
补充一下同步这块:OxideTerm 不走官方云,而是基于加密 `.oxide` 快照做自托管同步,可以接 WebDAV / HTTP JSON / Dropbox / Git / S3 。密码、密钥和 API Key 优先放系统 Keychain ,不写进普通配置文件。
molezznet
4 小时 10 分钟前
@soleilune 怎么看描述更期待 GPUI 版本了,tauri 内存占用太高了,上来就 200M
soleilune
53 分钟前
@molezznet 是的,Tauri 比 Electron 轻一些,但毕竟还是 WebView ,终端这种场景一开多个 tab 、跑一段时间,内存确实不太理想,这个我自己也试过,无奈确实 tauri 版本好开发的多,如果一开始就直接选 GPUI ,估计开发成本会高很多,可能走不到现在这一步。不过现在 gpui 版本也基本写完了,我有空再整理一下发个 gpui 的 preview 版本出来吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1217395

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX