@principle2026/vault 1.0.0 → 1.0.2

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 CHANGED
@@ -1,117 +1,138 @@
1
- # Vault — AI-Powered Secret Management
1
+ # Vault — AI-Powered Secret Management for Claude Code
2
2
 
3
- A Claude Code plugin that enables AI to automatically manage your secrets and sensitive information.
3
+ 一个 Claude Code 技能,让 AI 帮你安全地管理 API 密钥、密码等敏感信息。
4
4
 
5
- ## Features
5
+ ## 特点
6
6
 
7
- - 🗣️ **Conversational**Save and retrieve secrets using natural language
8
- - 🔐 **End-to-end encryption** — AES-256-GCM encryption
9
- - ☁️ **iCloud sync**Automatically sync across all your devices
10
- - 🔑 **Keychain integration** Secure master key storage
11
- - ⚡ **Zero config** Ready to use after initialization
7
+ - 🗣️ **对话式操作**用自然语言保存和获取密钥
8
+ - 🔐 **端到端加密** — AES-256-GCM 加密
9
+ - ☁️ **iCloud 同步**自动同步到所有设备(macOS)
10
+ - 🔑 **Keychain 集成** - 安全存储主密钥
11
+ - ⚡ **零配置**安装后立即可用
12
12
 
13
- ## Installation
13
+ ---
14
14
 
15
- ### 方式 1: npm 全局安装(推荐)
15
+ ## 安装
16
+
17
+ ### 一键安装(推荐)
16
18
 
17
19
  ```bash
18
20
  npm install -g @principle2026/vault
19
21
  vault init
20
22
  ```
21
23
 
22
- ### 方式 2: 本地开发
24
+ 安装脚本会自动:
25
+ - 安装 CLI 命令
26
+ - 创建 Claude Code 技能链接
27
+ - 引导你完成首次设置
28
+
29
+ ### 手动安装 Claude Code 技能
23
30
 
24
31
  ```bash
25
- git clone <repository>
26
- cd Vault
27
- npm install
28
- npm run build
29
- ```
32
+ # 1. 安装 npm 包
33
+ npm install -g @principle2026/vault
30
34
 
31
- ## Usage
35
+ # 2. 找到安装位置
36
+ npm root -g
37
+ # 输出: /usr/local/lib/node_modules (或其他路径)
32
38
 
33
- ### Initialize
39
+ # 3. 创建技能链接
40
+ ln -s $(npm root -g)/@principle2026/vault ~/.claude/skills/vault
34
41
 
35
- ```bash
42
+ # 4. 初始化
36
43
  vault init
37
44
  ```
38
45
 
39
- Follow the interactive prompts to set up your master passphrase.
46
+ ---
40
47
 
41
- ### Save a secret
48
+ ## Claude Code 中使用
42
49
 
43
- ```bash
44
- echo "sk-abc123" | vault set openai_key --description "OpenAI API Key"
45
- ```
50
+ 安装后,直接和 AI 对话:
46
51
 
47
- ### Get a secret
52
+ ### 保存密钥
48
53
 
49
- ```bash
50
- vault get openai_key
54
+ ```
55
+ 你:记住我的 OpenAI 密钥是 sk-abc123
56
+ AI:✅ 已保存:openai_key
51
57
  ```
52
58
 
53
- ### List secrets
54
-
55
- ```bash
56
- vault list
59
+ ```
60
+ 你:保存这个 GitHub token: ghp_xxx123
61
+ AI:[运行: vault set github_token --description "GitHub Token"]
62
+ Saved: github_token
57
63
  ```
58
64
 
59
- ### Delete a secret
65
+ ### 获取密钥
60
66
 
61
- ```bash
62
- vault delete openai_key
67
+ ```
68
+ 你:用刚才保存的 token 创建一个 GitHub repo
69
+ AI:好的,使用你保存的 GitHub token...
70
+ [运行: vault get github_token]
71
+ → 正在创建仓库...
63
72
  ```
64
73
 
65
- ### Check status
74
+ ```
75
+ 你:我的 OpenAI 密钥是什么?
76
+ AI:[运行: vault get openai_key]
77
+ sk-abc123
78
+ ```
79
+
80
+ ### 查看所有密钥
66
81
 
67
- ```bash
68
- vault status
82
+ ```
83
+ 你:我保存了哪些密钥?
84
+ AI:[运行: vault list]
85
+ 📋 已保存的密钥:
86
+ - openai_key - OpenAI API Key
87
+ - github_token - GitHub Token
69
88
  ```
70
89
 
71
- ## AI Conversation Usage
90
+ ### AI 自动识别的关键词
72
91
 
73
- In Claude Code, use natural language:
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
- You: Use that key to call the API
80
- AI: [auto-retrieve] Using sk-abc123...
81
- ```
101
+ ## CLI 命令(手动使用)
82
102
 
83
- ## Security Design
103
+ ```bash
104
+ # 查看状态
105
+ vault status
84
106
 
85
- - **Algorithm**: AES-256-GCM
86
- - **Key derivation**: PBKDF2 (100,000 iterations)
87
- - **Storage**: iCloud or local `~/.vault-data/`
88
- - **Master key**: System keychain (unlocked by passphrase)
107
+ # 保存密钥
108
+ vault set <key>
109
+ # 或:echo "value" | vault set <key> -d "描述"
89
110
 
90
- ## Project Structure
111
+ # 获取密钥
112
+ vault get <key>
91
113
 
92
- ```
93
- src/
94
- ├── Crypto.ts # Encryption/decryption
95
- ├── Keychain.ts # Keychain operations
96
- ├── Store.ts # Data storage
97
- ├── tools.ts # Core functions
98
- └── index.ts # CLI entry point
114
+ # 列出所有密钥
115
+ vault list
116
+
117
+ # 删除密钥
118
+ vault delete <key>
119
+
120
+ # 重置(删除所有数据)
121
+ vault reset
99
122
  ```
100
123
 
101
- ## Development
124
+ ---
102
125
 
103
- ```bash
104
- # Build
105
- npm run build
126
+ ## 安全设计
106
127
 
107
- # Watch mode
108
- npm run dev
128
+ - **加密算法**: AES-256-GCM
129
+ - **密钥派生**: PBKDF2 (100,000 次迭代)
130
+ - **存储位置**: iCloud(macOS)或本地 `~/.vault-data/`
131
+ - **主密钥**: 系统 Keychain(受密码保护)
109
132
 
110
- # Run CLI
111
- ./dist/index.js status
112
- ```
133
+ ---
113
134
 
114
- ## Dependencies
135
+ ## 项目地址
115
136
 
116
- - `keytar` — Keychain access
117
- - Web Crypto API — Encryption operations
137
+ - npm: https://www.npmjs.com/package/@principle2026/vault
138
+ - GitHub: https://github.com/xiaolin26/vault
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * Post-install script
4
+ * Automatically creates Claude Code skill link after npm install
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=postinstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA;;;GAGG"}
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * Post-install script
4
+ * Automatically creates Claude Code skill link after npm install
5
+ */
6
+ import { existsSync, mkdirSync } from 'fs';
7
+ import { symlinkSync } from 'fs';
8
+ import { dirname, join } from 'path';
9
+ import { fileURLToPath } from 'url';
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = dirname(__filename);
12
+ // Colors for terminal output
13
+ const GREEN = '\x1b[0;32m';
14
+ const BLUE = '\x1b[0;34m';
15
+ const YELLOW = '\x1b[1;33m';
16
+ const NC = '\x1b[0m';
17
+ function log(msg, color = GREEN) {
18
+ console.log(`${color}${msg}${NC}`);
19
+ }
20
+ async function main() {
21
+ // Only run for global installation
22
+ const isGlobal = process.env.npm_config_global === 'true';
23
+ if (!isGlobal) {
24
+ return;
25
+ }
26
+ // Get the package directory (dist folder)
27
+ // We're in dist/postinstall.js, so go up one level
28
+ const packageDir = dirname(__dirname);
29
+ // Claude Code skills directory
30
+ const skillsDir = join(process.env.HOME || '', '.claude', 'skills');
31
+ const linkPath = join(skillsDir, 'vault');
32
+ try {
33
+ // Create skills directory if it doesn't exist
34
+ if (!existsSync(skillsDir)) {
35
+ mkdirSync(skillsDir, { recursive: true });
36
+ }
37
+ // Check if link already exists
38
+ if (existsSync(linkPath)) {
39
+ // Remove old link
40
+ const { rmSync } = await import('fs');
41
+ try {
42
+ rmSync(linkPath, { recursive: true, force: true });
43
+ }
44
+ catch {
45
+ // Ignore error
46
+ }
47
+ }
48
+ // Create symbolic link
49
+ symlinkSync(packageDir, linkPath);
50
+ log('');
51
+ log('🔐 Vault - AI Secret Management', BLUE);
52
+ log('━'.repeat(40));
53
+ log('');
54
+ log('✓ Claude Code 技能已安装', GREEN);
55
+ log('');
56
+ log('下一步:');
57
+ log(' 1. 初始化: ' + YELLOW + 'vault init' + NC);
58
+ log(' 2. 然后在 Claude Code 中说:');
59
+ log(' 「记住我的密钥是 xxx」');
60
+ log('');
61
+ }
62
+ catch (error) {
63
+ // Silently fail - don't break installation
64
+ // User can manually create link if needed
65
+ }
66
+ }
67
+ main().catch(() => { });
68
+ //# sourceMappingURL=postinstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAErC,6BAA6B;AAC7B,MAAM,KAAK,GAAG,YAAY,CAAA;AAC1B,MAAM,IAAI,GAAG,YAAY,CAAA;AACzB,MAAM,MAAM,GAAG,YAAY,CAAA;AAC3B,MAAM,EAAE,GAAG,SAAS,CAAA;AAEpB,SAAS,GAAG,CAAC,GAAW,EAAE,KAAK,GAAG,KAAK;IACrC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,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,0CAA0C;IAC1C,mDAAmD;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAErC,+BAA+B;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAEzC,IAAI,CAAC;QACH,8CAA8C;QAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,+BAA+B;QAC/B,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,kBAAkB;YAClB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;YACrC,IAAI,CAAC;gBACH,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe;YACjB,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAEjC,GAAG,CAAC,EAAE,CAAC,CAAA;QACP,GAAG,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAA;QAC5C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QACnB,GAAG,CAAC,EAAE,CAAC,CAAA;QACP,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;QACjC,GAAG,CAAC,EAAE,CAAC,CAAA;QACP,GAAG,CAAC,MAAM,CAAC,CAAA;QACX,GAAG,CAAC,YAAY,GAAG,MAAM,GAAG,YAAY,GAAG,EAAE,CAAC,CAAA;QAC9C,GAAG,CAAC,0BAA0B,CAAC,CAAA;QAC/B,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACzB,GAAG,CAAC,EAAE,CAAC,CAAA;IAET,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2CAA2C;QAC3C,0CAA0C;IAC5C,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principle2026/vault",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Vault - AI-powered secret management for Claude Code",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",