[开源] Miaominal - 另一个使用 GPUI 构建的 SSH/SFTP 客户端

发布于

![](http://pic.zhso.org/2026/07/31/c917cd5e31fc.png)

## 0x00 前言

大家吼,前段时间摸了个 SSH 客户端出来,自用打磨得差不多了,想分享一下。

项目地址:[https://github.com/cppakko/miaominal](https://github.com/cppakko/miaominal)
实际用下来,多开 SSH 会话、SFTP 面板、监控面板一起跑,客户端占用明显比同类工具轻。

![](http://pic.zhso.org/2026/07/31/59339441a34d.png)

## 上图是 Miaominal 和 Termius 的内存占用对比图。

先叠个甲,不是拉踩,只能说各取所需,两种技术栈都有各自的优势和劣势。

## 0x01 功能与截图

### 远程监控与终端

属于是聊胜于无的状态监控,默认是关闭状态,需要手动开启,设置里有开关可以自动开启。

终端底部状态栏两边各有一个面板入口:左边打开监控、脚本片段和 SFTP 侧边栏,右边打开 Miao-Agent 聊天面板。

![](http://pic.zhso.org/2026/07/31/35c5e16cb619.png)

---

### SFTP

SFTP 入口有三个:在主机列表里右键主机、在已连接的 SSH 标签页上右键,或者在终端区域内右键,都可以从菜单里直接打开 SFTP 。

传输任务中心可以通过底部状态栏右侧的双向箭头按钮展开或收起,上传、下载的进度和失败任务都可以在这里集中看。

![](http://pic.zhso.org/2026/07/31/aa0573b3c9e4.png)

---

### 加密同步

支持 GitHub Gist 和 WebDAV 。

写得比较偷懒,目前就给了手动推送和拉取,什么自动同步、配置合并都没有,后面看需求再补吧。

同步前要先设置一个专用口令。推送时,私钥、API Key 这些敏感数据会先用该口令加密——KDF 使用 Argon2id ,数据加密使用 AES-256-GCM 。

![](http://pic.zhso.org/2026/07/31/5e88efb8ec99.png)

---

### 端口转发

有独立的端口转发管理面板,可以和保存的 SSH 主机关联,快速开关、编辑规则,右击直接在浏览器打开转发目标(自认为最有用的功能)。

临时看各种 Web 面板的时候很方便。

![](http://pic.zhso.org/2026/07/31/11ac654612b3.png)

---

### SSH 入口代理

可以在设置里统一管理可复用的 SOCKS5 和 HTTP CONNECT 代理,支持无认证、用户名密码认证,SOCKS5 还可以选择把 DNS 解析交给代理端。

保存主机时选择对应的入口代理即可,SSH 、SFTP 、端口转发和 Miao-Agent 执行命令都会走同一套配置,不用每个功能再单独配一遍。

---

### 数据目录与 Portable 模式

普通安装版可以在设置里更改数据目录,重启后会自动迁移设置、连接和聊天记录等文件数据。系统 Keyring 里的凭据还是留在当前电脑,不会跟着目录一起搬走。

Release 里也提供了各平台的 Portable 压缩包,解压后直接运行,数据都保存在程序旁边的 `data` 目录里。Portable 模式不使用系统 Keyring ,首次启动需要创建本地机密库口令。

---

### 配置导入

支持从以下格式导入现有的 SSH 配置文件:

- OpenSSH config
- PuTTY `.reg`
- SecureCRT `.xml`
- FinalShell `.json`

这个只做了简单测试,如果遇到问题,还望能提供一份脱敏后的配置文件 :)

---

### Miao-Agent ( BETA )

SSH 连上以后,可以在当前会话旁边开一个 Agent 面板,让它基于这个 shell 做些事情:问答、读文件、执行命令、应用 patch 、Web search/fetch 、分析当前终端上下文。

一定要注意的是,在远程机器上让 Agent 动手,和在本地不一样 **本地有 Git 兜底,远程删了文件改了配置就是改了** ,所以工具调用分了几档权限,可以根据场景自己选:

- `Ask`:只允许只读工具,走完整策略审查,每个 tool call 都要确认
- `Execute`:默认模式,所有工具可用,走完整策略审查,敏感操作需要确认
- `NonBlocking`:所有工具可用,跳过策略限制,但每个 tool call 执行前仍需用户批准
- `FullAuto`:所有工具可用,跳过策略限制,全部自动执行不等确认

`Ask` 和 `Execute` 模式下走完整策略审查,内置了敏感路径黑名单(`.ssh/`、私钥、`.env`、`/etc/shadow`、数据库目录等),命中直接拒绝。`NonBlocking` 和 `FullAuto` 跳过策略层,黑名单不生效——只有 `..` 和 `~` 的路径规范化始终强制。

但是 AI 在实际运行的时候还是会想方设法绕过限制,所以一定要自己看好 AI 执行的命令,先审再跑。

讲真,这个功能开发比我预期的复杂很多,现阶段可用,但还远没到“好用”的程度,完成一些简单任务倒是足够。**出任何问题概不负责。**
对了,使用前需要在设置中添加 AI Provider。

![](http://pic.zhso.org/2026/07/31/dd6a52737469.png)

---

## 0x02 结尾

大概就这些,欢迎各位试用,有问题可以去 GitHub 提 Issue ,尤其是不同系统下的兼容性问题,能附上系统版本和复现步骤就更好了,谢谢大家。

---

原文链接:[点击查看](https://www.v2ex.com/t/1231215)

评论(2)

一拳鉴定,又在重复造轮子,感觉没啥意义。

· 0 个赞

如果能同时支持 SSH Tab 分屏和 Free Type Mode 模式的话,我可以帮忙在圈子里推一波。参考链接:https://kingtoolbox.github.io/2022/04/12/free_type_mode/

· 0 个赞

0.076969s