Cocoon
本地优先的开发者凭证管理器,离线存储密码、API Key、SSH 密钥、数据库连接和 Token,AES-256-GCM 加密,零云端依赖。基于 Go + Vue 3 + Wails 构建。A local-first, offline credential manager for developers. Store passwords, API keys, SSH keys, database credentials & tokens with AES-256-GCM encryption. Built with Go, Vue 3 & Wails.
Install / Use
/learn @ilolicon/CocoonREADME
Cocoon 是一款本地优先的凭证管理桌面应用,帮助你集中管理散落各处的账号密码、API Key、数据库连接、SSH 凭证和 Token。所有数据使用 AES-256-GCM 加密后仅保存在本地,零云端依赖。
界面预览
<p align="center"> <img src="./screenshots/setup.png" width="48%" alt="初始化" /> <img src="./screenshots/home_list.png" width="48%" alt="主页列表" /> </p> <p align="center"> <img src="./screenshots/home_card.png" width="48%" alt="主页卡片" /> <img src="./screenshots/add_credential.png" width="48%" alt="添加凭证" /> </p> <p align="center"> <img src="./screenshots/tag_filter.png" width="48%" alt="标签筛选" /> <img src="./screenshots/setting.png" width="48%" alt="设置界面" /> </p>特性
- 本地优先 — 数据存储在
~/.cocoon/cocoon.db,不联网、不上传 - 强加密 — AES-256-GCM 加密 + Argon2id 密钥派生,主密码解锁
- 多凭证类型 — 账号密码、API Key、数据库、SSH、Token、自定义
- 标签系统 — 灵活标记和筛选,支持交集过滤
- 自动锁定 — 闲置超时自动锁屏,内存密钥安全擦除
- 快速复制 — 点击即复制,敏感字段按需解密
- 主题切换 — 深色/浅色/跟随系统,多种主题色可选
安全架构
主密码 → Argon2id(salt, 64MB, 3次迭代) → 32字节主密钥
│
┌───────────────────┴───────────────────┐
▼ ▼
AES-256-GCM 加密 SHA-256 验证哈希
每条凭证独立 Nonce (仅用于密码校验)
- 凭证数据加密后写入 SQLite,解密仅在读取时发生
- 锁屏时主密钥从内存中安全擦除
- 修改主密码时,所有凭证在单一事务中重新加密
技术栈
| 层级 | 技术 | | ---- | -------------------------------------------------------------------------------------- | | 框架 | Wails v2 (Go + WebView) | | 后端 | Go 1.23 | | 前端 | Vue 3 + TypeScript | | UI | Naive UI | | 存储 | SQLite (mattn/go-sqlite3) | | 加密 | AES-256-GCM + Argon2id (golang.org/x/crypto) |
快速开始
前置依赖
- Go >= 1.21
- Node.js >= 16
- Wails CLI v2
- 平台构建工具:macOS 需要 Xcode,Linux 需要
gcc+libgtk-3-dev+libwebkit2gtk-4.0-dev
开发
# 克隆项目
git clone https://github.com/ilolicon/cocoon.git
cd cocoon
# 安装前端依赖
cd frontend && npm install && cd ..
# 启动开发模式(Go 后端 + Vite 前端热重载)
wails dev
构建
# 构建生产版本
wails build
构建产物位于 build/bin/ 目录。
测试
go test ./internal/...
项目结构
cocoon/
├── app.go # Wails 绑定层,所有前端可调用的 API
├── main.go # 入口
├── internal/
│ ├── crypto/ # AES-256-GCM 加密 & Argon2id 密钥派生
│ ├── model/ # 数据结构
│ ├── service/ # 业务逻辑(认证、凭证管理)
│ └── store/ # SQLite 存储 & 迁移
└── frontend/
└── src/
├── views/ # 页面(Setup / Lock / Home)
├── components/ # UI 组件
├── store/ # Pinia 状态管理
└── composables/ # 组合式函数
路线图
- [x] 主密码保护 & AES-256-GCM 加密
- [x] 多凭证类型(密码、API Key、数据库、SSH、Token、自定义)
- [x] 标签系统 & 交集筛选
- [x] 收藏夹 & 搜索
- [x] 自动锁定
- [x] 深色/浅色主题
- [ ] 密码生成器
- [ ] 数据导入/导出
- [ ] 全局快捷键呼出
- [ ] 浏览器扩展