@principle2026/vault 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +91 -70
- package/dist/postinstall.d.ts +7 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +37 -0
- package/dist/postinstall.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,117 +1,138 @@
|
|
|
1
|
-
# Vault — AI-Powered Secret Management
|
|
1
|
+
# Vault — AI-Powered Secret Management for Claude Code
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
一个 Claude Code 技能,让 AI 帮你安全地管理 API 密钥、密码等敏感信息。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 特点
|
|
6
6
|
|
|
7
|
-
- 🗣️
|
|
8
|
-
- 🔐
|
|
9
|
-
- ☁️ **iCloud
|
|
10
|
-
- 🔑 **Keychain
|
|
11
|
-
- ⚡
|
|
7
|
+
- 🗣️ **对话式操作** — 用自然语言保存和获取密钥
|
|
8
|
+
- 🔐 **端到端加密** — AES-256-GCM 加密
|
|
9
|
+
- ☁️ **iCloud 同步** — 自动同步到所有设备(macOS)
|
|
10
|
+
- 🔑 **Keychain 集成** - 安全存储主密钥
|
|
11
|
+
- ⚡ **零配置** — 安装后立即可用
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
### 一键安装(推荐)
|
|
16
18
|
|
|
17
19
|
```bash
|
|
18
20
|
npm install -g @principle2026/vault
|
|
19
21
|
vault init
|
|
20
22
|
```
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
安装脚本会自动:
|
|
25
|
+
- 安装 CLI 命令
|
|
26
|
+
- 创建 Claude Code 技能链接
|
|
27
|
+
- 引导你完成首次设置
|
|
28
|
+
|
|
29
|
+
### 手动安装 Claude Code 技能
|
|
23
30
|
|
|
24
31
|
```bash
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
npm install
|
|
28
|
-
npm run build
|
|
29
|
-
```
|
|
32
|
+
# 1. 安装 npm 包
|
|
33
|
+
npm install -g @principle2026/vault
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
# 2. 找到安装位置
|
|
36
|
+
npm root -g
|
|
37
|
+
# 输出: /usr/local/lib/node_modules (或其他路径)
|
|
32
38
|
|
|
33
|
-
|
|
39
|
+
# 3. 创建技能链接
|
|
40
|
+
ln -s $(npm root -g)/@principle2026/vault ~/.claude/skills/vault
|
|
34
41
|
|
|
35
|
-
|
|
42
|
+
# 4. 初始化
|
|
36
43
|
vault init
|
|
37
44
|
```
|
|
38
45
|
|
|
39
|
-
|
|
46
|
+
---
|
|
40
47
|
|
|
41
|
-
|
|
48
|
+
## 在 Claude Code 中使用
|
|
42
49
|
|
|
43
|
-
|
|
44
|
-
echo "sk-abc123" | vault set openai_key --description "OpenAI API Key"
|
|
45
|
-
```
|
|
50
|
+
安装后,直接和 AI 对话:
|
|
46
51
|
|
|
47
|
-
###
|
|
52
|
+
### 保存密钥
|
|
48
53
|
|
|
49
|
-
```
|
|
50
|
-
|
|
54
|
+
```
|
|
55
|
+
你:记住我的 OpenAI 密钥是 sk-abc123
|
|
56
|
+
AI:✅ 已保存:openai_key
|
|
51
57
|
```
|
|
52
58
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
59
|
+
```
|
|
60
|
+
你:保存这个 GitHub token: ghp_xxx123
|
|
61
|
+
AI:[运行: vault set github_token --description "GitHub Token"]
|
|
62
|
+
✅ Saved: github_token
|
|
57
63
|
```
|
|
58
64
|
|
|
59
|
-
###
|
|
65
|
+
### 获取密钥
|
|
60
66
|
|
|
61
|
-
```
|
|
62
|
-
|
|
67
|
+
```
|
|
68
|
+
你:用刚才保存的 token 创建一个 GitHub repo
|
|
69
|
+
AI:好的,使用你保存的 GitHub token...
|
|
70
|
+
[运行: vault get github_token]
|
|
71
|
+
→ 正在创建仓库...
|
|
63
72
|
```
|
|
64
73
|
|
|
65
|
-
|
|
74
|
+
```
|
|
75
|
+
你:我的 OpenAI 密钥是什么?
|
|
76
|
+
AI:[运行: vault get openai_key]
|
|
77
|
+
sk-abc123
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 查看所有密钥
|
|
66
81
|
|
|
67
|
-
```
|
|
68
|
-
|
|
82
|
+
```
|
|
83
|
+
你:我保存了哪些密钥?
|
|
84
|
+
AI:[运行: vault list]
|
|
85
|
+
📋 已保存的密钥:
|
|
86
|
+
- openai_key - OpenAI API Key
|
|
87
|
+
- github_token - GitHub Token
|
|
69
88
|
```
|
|
70
89
|
|
|
71
|
-
|
|
90
|
+
### AI 自动识别的关键词
|
|
72
91
|
|
|
73
|
-
|
|
92
|
+
| 你说 | AI 做 |
|
|
93
|
+
|------|------|
|
|
94
|
+
| "记住/保存/存储..." | 保存密钥 |
|
|
95
|
+
| "那个密钥/我的密码/刚才的..." | 获取密钥 |
|
|
96
|
+
| "有哪些/列出/查看..." | 显示密钥列表 |
|
|
97
|
+
| "删除..." | 删除密钥 |
|
|
74
98
|
|
|
75
|
-
|
|
76
|
-
You: Remember my OpenAI key is sk-abc123
|
|
77
|
-
AI: [auto-save] Saved: openai_key
|
|
99
|
+
---
|
|
78
100
|
|
|
79
|
-
|
|
80
|
-
AI: [auto-retrieve] Using sk-abc123...
|
|
81
|
-
```
|
|
101
|
+
## CLI 命令(手动使用)
|
|
82
102
|
|
|
83
|
-
|
|
103
|
+
```bash
|
|
104
|
+
# 查看状态
|
|
105
|
+
vault status
|
|
84
106
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
- **Master key**: System keychain (unlocked by passphrase)
|
|
107
|
+
# 保存密钥
|
|
108
|
+
vault set <key>
|
|
109
|
+
# 或:echo "value" | vault set <key> -d "描述"
|
|
89
110
|
|
|
90
|
-
|
|
111
|
+
# 获取密钥
|
|
112
|
+
vault get <key>
|
|
91
113
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
114
|
+
# 列出所有密钥
|
|
115
|
+
vault list
|
|
116
|
+
|
|
117
|
+
# 删除密钥
|
|
118
|
+
vault delete <key>
|
|
119
|
+
|
|
120
|
+
# 重置(删除所有数据)
|
|
121
|
+
vault reset
|
|
99
122
|
```
|
|
100
123
|
|
|
101
|
-
|
|
124
|
+
---
|
|
102
125
|
|
|
103
|
-
|
|
104
|
-
# Build
|
|
105
|
-
npm run build
|
|
126
|
+
## 安全设计
|
|
106
127
|
|
|
107
|
-
|
|
108
|
-
|
|
128
|
+
- **加密算法**: AES-256-GCM
|
|
129
|
+
- **密钥派生**: PBKDF2 (100,000 次迭代)
|
|
130
|
+
- **存储位置**: iCloud(macOS)或本地 `~/.vault-data/`
|
|
131
|
+
- **主密钥**: 系统 Keychain(受密码保护)
|
|
109
132
|
|
|
110
|
-
|
|
111
|
-
./dist/index.js status
|
|
112
|
-
```
|
|
133
|
+
---
|
|
113
134
|
|
|
114
|
-
##
|
|
135
|
+
## 项目地址
|
|
115
136
|
|
|
116
|
-
-
|
|
117
|
-
-
|
|
137
|
+
- npm: https://www.npmjs.com/package/@principle2026/vault
|
|
138
|
+
- GitHub: https://github.com/xiaolin26/vault
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/**
|
|
3
|
+
* Post-install script
|
|
4
|
+
* Runs after npm install to guide user through setup
|
|
5
|
+
*/
|
|
6
|
+
import { showWelcome, info, success } from './CLI.js';
|
|
7
|
+
import { getVaultStatus } from './tools.js';
|
|
8
|
+
async function main() {
|
|
9
|
+
// Only run for global installation
|
|
10
|
+
const isGlobal = process.env.npm_config_global === 'true';
|
|
11
|
+
if (!isGlobal) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// Check if already initialized
|
|
15
|
+
const status = await getVaultStatus();
|
|
16
|
+
showWelcome();
|
|
17
|
+
if (status.initialized) {
|
|
18
|
+
success('Vault 已就绪!');
|
|
19
|
+
console.log('');
|
|
20
|
+
info('在 Claude Code 中说「记住我的密钥是 xxx」来保存密钥');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Not initialized
|
|
24
|
+
console.log('');
|
|
25
|
+
console.log('🚀 下一步:');
|
|
26
|
+
console.log('');
|
|
27
|
+
console.log(' 1. 初始化 Vault:');
|
|
28
|
+
console.log(' ${YELLOW}vault init${NC}');
|
|
29
|
+
console.log('');
|
|
30
|
+
console.log(' 2. 然后在 Claude Code 中使用:');
|
|
31
|
+
console.log(' 「记住我的 OpenAI 密钥是 sk-xxx」');
|
|
32
|
+
console.log('');
|
|
33
|
+
}
|
|
34
|
+
main().catch(() => {
|
|
35
|
+
// Silently fail - don't break installation
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=postinstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAoB,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,KAAK,UAAU,IAAI;IACjB,mCAAmC;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAA;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAM;IACR,CAAC;IAED,+BAA+B;IAC/B,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;IAErC,WAAW,EAAE,CAAA;IAEb,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,YAAY,CAAC,CAAA;QACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,IAAI,CAAC,oCAAoC,CAAC,CAAA;QAC1C,OAAM;IACR,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACxC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACjB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;IAChB,2CAA2C;AAC7C,CAAC,CAAC,CAAA"}
|