TGViewer
V2EX V2EX @pushv2ex · 548 subscribers
Post #237602 3
[分享创造] 做了一个原生的 macOS Vaultwarden 客户端:基于 MyGo ,主窗口零 WebView,支持 Touch ID 与系统级 AutoFill

自建 Vaultwarden 好几年了。官方的 macOS 桌面端基于 Electron,日常开着内存占几百兆,偶尔唤醒也有点迟钝;更关键的是 Safari 里的自动填充只能靠扩展,体验和系统原生有明显差距。

一直想找个轻快、原生的 Mac 客户端,后来索性自己动手写了一个,最近在主力机上用得很顺手,今天开源出来分享给自建密码库的朋友。

项目名叫 MyGo Vaultwarden。

关于底层:为什么用 MyGo?

这个项目是用 egoist 开源的 MyGo (github.com/egoist/mygo) 框架构建的。

很多朋友写桌面端习惯用 Wails 或 Electron,本质上还是把前端网页打包进去。而 MyGo 走的是另一条路线:

● 后端是纯 Go:处理 Vaultwarden 复杂的网络请求、AES-GCM/Argon2 加解密、数据同步以及快照管理,性能和类型安全都让人放心。
● UI 是纯原生 Native UI:直接绑定 macOS 的 Swift / AppKit,主窗口里没有任何 WebView、HTML 或 JavaScript。
● 极致轻量:没有内嵌浏览器的开销,内存占用极小,原汁原味地遵循 macOS 的窗口、原生控件、菜单、快捷键和动画规范。

这也是我在实际写这个项目时觉得最爽的地方:既有 Go 写复杂业务的稳健,又能获得真正的 macOS 原生桌面质感。

核心功能与体验

1. 系统级自动填充:接入了 macOS 系统的「自动填充与密码(Credential Provider)」。在 Safari 或其它应用中无需常驻扩展,点选凭据并通过 Touch ID 认证即可填充。带有 TOTP 的条目,填充后还会自动把两步验证码复制到剪贴板。
2. 完整的个人密码库:支持登录、支付卡、身份、安全笔记、SSH 密钥等 8 种类型;支持收藏、文件夹、归档、回收站与批量管理;⌘F 即时毫秒级搜索并展示网站图标。
3. 日常开箱即用:直连自建 Vaultwarden 服务器,支持两步验证(MFA / 恢复码)、Bitwarden 兼容的 JSON 导入导出、Send 以及设备登录审批,并带应用内更新。

安全性设计

做了哪些具体防护:

● 双沙盒隔离:主应用与 AutoFill 扩展均开启 macOS App Sandbox。AutoFill 扩展在独立的沙盒进程中运行,只读取一份经过权限和策略过滤的 Login 最小投影(仅包含用户名、密码、URI 与 TOTP),不触碰完整的加密库。
● 本地静态加密:完整密码库仅以受 Keychain 和主密码保护的 AES-GCM 本机快照形式落盘。
● 主动防御:在向服务器发起任何网络请求前,本地会先检查并拒绝弱 KDF 参数(如低迭代的 PBKDF2);锁屏、睡眠或空闲 15 分钟后自动锁定。
● 写入安全:网络异常导致的未知写入结果绝不会在后台静默重放,避免冲突覆盖。
● 更新验签:自动更新包强制校验 Ed25519 签名与 SHA-256 摘要。

目前的局限(先排雷)

● 暂不支持组织管理:当前版本只聚焦于个人密码库。组织条目能正常同步和解密,但组织管理(成员、集合、权限分配等管理后台功能)已延期到后续版本。
● 仅支持 macOS:没有跨平台计划。
● 未做第三方安全审计:代码已开源,遵循 GPL-3.0 协议,我自己每天在作为主力使用;但对于极其重要的数据,建议试用前先通过官方端导出备份一次。

项目地址与讨论

● GitHub:https://github.com/vfasky/mygo-vaultwarden
● 官网: https://mygo-vault.vfasky.com
More from @pushv2ex
  1. Oct 12, 2026[推广] 做定制订单工具时,选规格和排版为什么分开做 一笔定制订单选了大尺寸,是不是直接把小尺寸的图放大就够了?如果每张照片和每段名字都不一样,这种处理很容易留下新的排版问题。 我…
  2. Oct 12, 2026[杭州] 杭州买房求大佬指点 目前滨江工作,将来未知,父母想让我买套房 看了建发云之城,规划和内部挺好,但是不知道这个饼未来吃不吃得消 如果是总价 300w 上下二手房,哪里还有合…
  3. Oct 12, 2026[分享创造] 用 Claude Opus 5.5 做了个动效视频工具,哪里不满意只改哪里,不用整条重新生成 大家好,分享一下我做的一个小工具 Tellcut 。 用 AI 做视频,…
  4. Oct 12, 2026[分享创造] 因为带孩子去医院,医生开的药,家里其实有,所以我开发了一个记录就诊和家庭药箱的 App 我一开始的初衷是为了节省重复开药的钱,通过在 App 使用关键词检索就能知道家…
  5. Oct 12, 2026[推广] 做了个 EffectCraft 独立资料站:整理下载、入门教程和 AE 兼容限制 最近关注到开源动效软件 EffectCraft ,查资料时发现,“能做什么”和“现在还不…
  6. Oct 12, 2026[分享创造] [分享创造] 我把计算机史做成了一座可以互动参观的线上展览 Knowledge Spaces · 计算机史 • 内容以 Wikipedia 快照为事实来源 • 目前有…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →