Netcatty - 开源免费的 SSH 终端软件, 使用 AI 加速你的日常运维工作

3 月 20 日
 BigcatChen

前情提要

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

摘要如下:

之前我一直在付费用 Termius ,不过后来总觉得,每个月花 15 刀买一个 SSH Client ,还是有点贵。中间也调研过不少平替,但找来找去,除了 Termius 之外,确实没发现第二款支持云同步、同时体验也比较完整的 SSH Client 。于是就想着,干脆自己 vibe 一个出来。

Netcatty 支持多种云同步方式,包括 Google Drive 、Github Gist 、OneDrive 、S3 、WebDav 。同步基本是实时的,只要配置发生变化,就会自动同步到云端。功能上,Netcatty 已经实现了 Termius 的大部分核心能力,交互和布局也参考了 Termius 。如果你本来就是 Termius 老用户,上手 Netcatty 应该会非常自然。

不过,FIDO2 / 生物指纹密钥这部分我暂时还没有做;另外,Netcatty 目前也还不支持移动端。

如果你刚好需要一个带云同步功能的 SSH Client ,同时也觉得 Termius 价格有点高,而且暂时没有移动端需求,那么可以试试这个开源平替。省下来的钱,说不定还能再买一个 AI 订阅 😘

这个项目的定位一直很明确,就是做一个 Termius 的开源平替。后续也不会收费,平时我也会一边自用、一边顺手修 bug 、补功能。如果它刚好能帮到你,也欢迎给项目点个 star ,就当交个朋友。

上次在 V2EX 发帖之后,挺意外地收到了很多 V 友的鼓励和认可,也有不少朋友认真提了很多建议。过去大概 20 天里,我又继续 vibe coding 了一阵,把 Netcatty 在功能和易用性做了很多改进。 所以这次想重新开个贴,和大家汇报一下这段时间的新进展,也顺便再把它分享给更多有需要的朋友。

使用 AI ,更高效地驱动你的日常运维工作

在花了不少时间把一个终端软件该有的基础功能慢慢补齐之后,我开始意识到:是时候把 AI 加进 Netcatty 了。于是又花了大概一个星期,认真 vibe coding 了一版 AI 相关功能。

关于 AI 应该以什么形态出现,我其实没有想得太复杂。像 Warp 那种比较重的交互形态,我个人会觉得还是有一点理解门槛。对我来说,更自然的方式是:在 terminal 旁边放一个聊天框,你直接告诉 AI 你想做什么,它就帮你操作。简单、直接,也更符合日常使用习惯。

基于这个思路,我先做出了一版可用的形态。下面这张图里的例子,就是让 AI 帮我把两台 server 组一个集群。

这个能力其实能覆盖很多很实用的场景。比如前段时间,我让 AI 帮我在海外节点上做部署,整个过程非常丝滑,到了最后,它甚至直接把配置文件都给出来了,省掉了很多来回切换和查资料的时间。

目前 Model Provider 这块已经支持主流的模型提供商,同时也接入了本地的 Claude Code 和 Codex (通过 ACP 协议桥接到 Netcatty ) 这意味着,如果你本地已经在使用 Claude Code 或 Codex ,基本不需要再做额外折腾,就可以把它们无缝接进 Netcatty ,让 AI 直接帮你操作服务器。

当然,现在也已经支持 web-search 和 web-fetch 。你既可以直接接成熟的 SaaS 方案,比如 Tavily ,也可以根据自己的需求,在本地自建 search provider 。

这部分的典型场景是:比如你在网上看到一篇帖子、一段教程,甚至是一段报错信息,都可以直接发给 AI ,让它结合终端环境去帮你处理。 而且当 AI 遇到不确定的概念、命令或者上下文时,它也会主动去网上搜索,再继续执行后续操作。

UI 优化

除了 AI 之外,这段时间我也顺手把 Netcatty 的整体 UI 做了一轮新的打磨。 相比之前的版本,现在整体观感会更现代一些,布局也更清爽,日常使用时的体验会舒服不少。

后记

最后,还是想认真感谢一下之前支持 Netcatty 的 V 友们。

上次发帖之后,大家给了我很多鼓励支持。我后来试着拿 Netcatty 去申请了 OpenAI 的开源软件支持计划。没想到居然意外通过了,这件事对我来说,确实算是一个小小的鼓舞。

也因为这点鼓励,我后来斥巨资买了 Apple 开发者资格😂,给 Netcatty 的 mac 客户端做了签名。 接下来,Netcatty 的桌面客户端依然会继续保持开源和免费。希望它能在你日常连接服务器、处理运维工作的时候,多少带来一点方便,也少一点折腾。

项目地址: https://github.com/binaricat/Netcatty

3748 次点击
所在节点    程序员
70 条回复
abstract
3 月 24 日
@BigcatChen 给我个邮箱或者联系方式,我给你把崩口日志发过去
fs418082760
3 月 24 日
可否让 stp 和 ai 布局可以分开,我更希望可以能三分栏
BigcatChen
3 月 24 日
@abstract 直接在 github 上贴在 issue 里就可以啦 太感谢你了
BigcatChen
3 月 24 日
@fs418082760 理解你说的 我看看怎么处理
doosit
3 月 30 日
请教下这里默认扫到两个 codex cli agent ,我想要删除错误的那个,在那里可以修改配置文件呢?感谢

https://i.imgant.com/v2/bqFqKX2.png
moxuanyuan
4 月 9 日
既然都 vibe coding 为什么还选 Electron 的技术栈?有机会重构为 tauri
akafeng
4 月 22 日
已经用上,初步体验很棒!

想问问能否加入 Homebrew 中呢?这样方便批量更新和管理

另外 App 体系感觉有些大了,就像楼上说的 Electron 可能重了些
BigcatChen
4 月 24 日
@akafeng 感谢你的反馈。

桌面客户端的技术选型是个很困难也需要权衡的问题,electron 已经是综合多方面考虑的最优解了。
采用原生技术栈开发,看起来体验上固然是最好的,但是对于个人开发者而言是有点不能承受的。不仅是要花数倍精力维护每个平台的代码,另外对于每个平台的测试工作也需要单独的进行。比如我自己常年使用 mac ,手边没有 windows 机器,对于仅仅业余维护的开源项目,暂时没有什么动机去准备一套齐全的测试环境。

tauri 可能是另一个介于跨平台和原生开发中间的选择。他与 electron 的区别是把 web 渲染的部分交给了系统,因此打包出来的软件体积非常的小,但是在运行期间的资源占用相比于 electron 而言优势并不大,很多人在计算 tauri 的资源占用的时候,只计算了 tauri 本身的,因此得出结论 tauri 很轻,实际上他会起一个 web 服务,这个服务的资源占用也并不小。
在实际开发的过程中 tauri 的问题也非常多,而且也面临框架稳定性,生态匮乏等其他问题,这些问题可能会直接影响软件的可用性。

因此综合来看 electron 几乎是唯一的选择,因为他在很多大型商业软件上都被验证过。稳定性 生态 兼容性都几乎是最好的。他的缺点如你所说,软件体积庞大,即便是一个空白的项目,完全解压后也会占用几百 mb 的磁盘空间。不过对于 netcatty 这样的软件来说,基本上也不会在此基础上占用更多的磁盘空间了,毕竟这是一个微信聊天记录都能占几十个 G 磁盘空间的时代😂。
内存和 CPU 的消耗可能也略高一点点,但是也并没有想象的那么夸张。 大多数情况下 netcatty 在开数量有限的 terminal 的情况下 主进程和渲染进程分别的内存占用大约在 200 - 300 MB, tauri 起的 webview 差不多也是类似的内存占用,甚至部分情况下会更多。

希望上述文字能帮助你了解我的心路历程,再次感谢你的支持。
akafeng
4 月 24 日
@BigcatChen #68 哇,感谢大猫老师的回复!

没有做过 GUI 项目,确实不太了解这些技术选型背后的差异,学习到了。

Homebrew 的部分是否有机会可以推进一下呢,或者回头我去看看能否提一个 PR 吧~

另外后续是否会有付费版呢,我想好用的东西总是需要一些支持和动力的,当然了,也别像 Termius ,它家有点太贵了,也可能是我太穷 Orz
rayyume
4 月 29 日
好用 爱用

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

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

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

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

© 2021 V2EX