本地加密的 API Key 资产管理器 — macOS 桌面应用
一个本地优先、端到端加密的 API Key 管理工具,解决「Key 太多记不住、不知道还能不能用、不知道配给谁了」的问题。所有数据只存本地,永远不上传任何服务器。
- 三层密钥架构:Master Password → Argon2id → Master Key → HKDF → 各用途 DEK
- AES-256-GCM 字段加密:每行数据独立 AAD(绑定行 ID 防止跨行复制攻击)
- SQLCipher 整库加密:数据库文件完全不可读
- Session Token 认证:vault 解锁后生成随机 token,阻止同机未授权进程调用 API
- 生物识别解锁:Touch ID / Face ID(macOS Keychain 存储 nonce)
- BIP39 恢复短语:24 词助记词,忘记密码也能找回数据
- 支持 alias、provider、分类、标签、过期日期
- 自定义字段(text / number / date / url / boolean / select 六种类型)
- Notes 加密存储,需主动 Reveal
- 一键复制 Key 值(自动清除剪贴板)
- 导出加密备份(JSON)/ 元数据 CSV
实时验证 Key 是否有效,已支持:
- OpenAI · Anthropic · Google AI (Gemini)
- Cohere · Mistral · Together AI · Groq · OpenRouter · DeepSeek
- GitHub · Stripe
通过 MCP Bridge 将 vault 暴露为 AI Agent 工具,Claude Desktop / Cursor 等可直接查询 Key 元数据(读元数据,不暴露明文 Key)。
- 双语 UI(中文 / English)
- 操作审计日志
- 分类管理
- 自动锁定(空闲超时可配置)
- 一键启停开发服务:
npm run dev:all
| 层 | 技术 |
|---|---|
| 桌面外壳 | Tauri 2.x(Rust) |
| 前端 | React 18 + TypeScript + Tailwind CSS |
| 后端 | Python 3.12 / FastAPI(sidecar) |
| 数据库 | SQLite + SQLCipher(AES-256-CBC) |
| 进程通信 | Unix Domain Socket(生产) / HTTP(开发) |
| MCP | Python stdio bridge(mcp-bridge/) |
.
├── src-tauri/ # Tauri Rust 主进程(UDS 代理 + 生物识别 + Keychain)
├── frontend/ # React WebView UI
│ └── src/
│ ├── pages/ # 各页面组件
│ ├── lib/api.ts # API client(自动注入 session token)
│ └── i18n/ # en / zh 翻译文件
├── backend/ # Python FastAPI 后端(Tauri sidecar)
│ └── src/accountmgmt/
│ ├── api/ # FastAPI routers
│ ├── crypto/ # AES-GCM / Argon2 / HKDF / vault header
│ ├── db/ # SQLAlchemy + SQLCipher
│ ├── health/ # Provider 健康检查适配器
│ ├── models/ # ORM 模型
│ └── services/ # 业务逻辑
├── mcp-bridge/ # MCP stdio bridge(供 Claude Desktop 等调用)
├── docs/ # 设计文档(V3.2 为最新版)
└── scripts/ # 开发辅助脚本
- macOS 12+
- Node.js 18+ & npm
- Python 3.12+
- Rust(via rustup)
# 安装依赖(首次)
cd frontend && npm install && cd ..
cd backend && python -m venv .venv && .venv/bin/pip install -e ".[dev]" && cd ..
# 启动所有服务(后端 + 前端)
npm run dev:all
# 停止所有服务
npm run dev:stop浏览器访问 http://localhost:1420,或通过 Tauri:
npm run tauri devnpm run tauri build生成 .app 和 .dmg 在 src-tauri/target/release/bundle/。
在 Claude Desktop 的 claude_desktop_config.json 中添加:
{
"mcpServers": {
"accountmgmt": {
"command": "python",
"args": ["-m", "accountmgmt_mcp"],
"cwd": "/path/to/AccountManagement/mcp-bridge",
"env": {
"ACCOUNTMGMT_MCP_TOKEN": "mcp_your_token_here"
}
}
}
}MCP Token 在应用内 Settings → MCP Access 页面生成。
- 所有加密均在本地完成,无网络传输
- Unix Domain Socket(权限 0600)限制进程间访问
- Session Token 防止同机其他进程在 vault 解锁期间调用 API
- MCP Token 只存 SHA-256 哈希,明文返回一次后不再保存
- 详细方案见
docs/API Key 管理器 — 需求与方案文档 V3.2.md
| 平台 | 状态 |
|---|---|
| macOS 12+ Apple Silicon | ✅ 支持 |
| macOS 12+ Intel | ✅ 支持 |
| Windows / Linux | ⏳ 暂不支持 |
MIT