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

3746 次点击
所在节点    程序员
70 条回复
mcfever
3 月 20 日
我也搞了一个 ,刚开始的时候,完全是手写,现在天天 vibe code ,现在功能已经不少了 https://dartshell.com/
BigcatChen
3 月 20 日
@mcfever 看到了 做的很棒 主要还支持 vnc 和 rdp 。👍
NouveauNom
3 月 20 日
给一个建议。
Local Terminal
在 Ai agent 里询问的时候,会提示,
先确认可用的远程主机和会话 ID ,再在对应主机上执行 pwd 查看当前目录。


Tool: netcatty-remote-hosts/get_environment

Tool: netcatty-remote-hosts/get_environment
当前没有已连接的远程主机,会话列表是空的,所以现在无法查询远程服务器上的当前目录。

我刚检查到 hostCount = 0 。
如果你连上某台服务器后,我可以立刻帮你执行 pwd 看当前目录。

是否可以如果只有本地终端他就选择本地终端执行命令,不然还得告诉他选择本地终端。然后
问他当前在终端的目录他也获取不到,说是在根目录
LifeDesigner
3 月 20 日
看到帖子马上就去更新~
LifeDesigner
3 月 20 日
另外反馈一个小问题,是我版本太旧了吗,怎么自动更新不好使呢
HFX3389
3 月 20 日
Termius 我现在用的土区的年订阅,看看 OP 的软件怎么样
BigcatChen
3 月 20 日
@NouveauNom 这个我今天准备完善。 之前 AI 操作的时候 排除了 Local Terminal
devtk
3 月 20 日
看着像基于 libghostty 的产物,赞一个!
devtk
3 月 20 日
@devtk 仔细看了一下,不是基于 ghostty ,巨佬
iorilu
3 月 20 日
关注下, 最近好像不少人开发了终端软件啊

确实, 由于 claude,codex 等, 现在命令行生态比以前火太多了
BigcatChen
3 月 20 日
@devtk 我之前也关注到了 libghostty
MarioNeTte233
3 月 20 日
可以增加一个类似 idea 的 fallback 字体的设置么,终端里的默认中文实在是有点不好看
qiuyue0
3 月 20 日
我用 termius 的原因是它对安卓支持得很好,平时可以不用,但是需要的时候一定得有,这也是我放弃其他开源终端软件的主要原因
panwork
3 月 20 日
证书还无法登录,还有一些交互上的小 bug ,准备抽空帮忙提 PR 了,界面挺舒服。
BigcatChen
3 月 20 日
@panwork 谢谢大佬,欢迎提 PR 👏
iorilu
3 月 20 日
@BigcatChen 最近申请苹果开发者有什么技巧吗, 听说还挺麻烦的, 我可能也想申请
xing4576
3 月 20 日
支持作者,一直都在用。
autumncry
3 月 20 日
支持,非常好用!
有一个 case 一直没有配置通,通过跳板机连接开发机,跳板机和开发机配置和 ide 配置一致,ide 可以正常链接,但是 netcatty 始终无法连接,显示跳板机连接失败。
报错:Connection timed out. Please try again.
日志:
Initializing secure channel...
Starting chain connection (2 hops)...
Chain 1 of 2: 跳板机 - connecting
Resolving host and keys...
Negotiating ciphers...
Exchanging keys...
Authenticating user...
BigcatChen
3 月 20 日
@autumncry 我调查一下 感谢
hisunny
3 月 20 日
mac 版,能同时开多个窗口吗?不是开多个标签。或者像 Chrome 等浏览器似的,开多个标签以后,拖出其中一个,自己变成一个新窗口。

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

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

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

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

© 2021 V2EX