@pikecode/api-key-manager 1.0.27 → 1.0.28

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.
Files changed (2) hide show
  1. package/README.md +396 -69
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,123 +1,450 @@
1
- # API Key Manager
1
+ # API Key Manager (akm)
2
2
 
3
- 一个简洁而强大的 CLI 工具,用于管理和快速切换多个 API 提供商配置。
3
+ 一个强大的 CLI 工具,用于管理和快速切换 **Claude Code** 和 **Codex CLI** 的 API 配置。
4
4
 
5
- ## 功能特性
5
+ [![npm version](https://img.shields.io/npm/v/@pikecode/api-key-manager.svg)](https://www.npmjs.com/package/@pikecode/api-key-manager)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
7
 
7
- -**快速切换** - 一键切换不同的 API 提供商配置
8
- - 🔐 **安全存储** - 本地安全存储 API 密钥
9
- - 🌍 **多提供商支持** - 支持多个 API 提供商(Anthropic)
10
- - 🎯 **灵活配置** - 支持多种认证模式(API Key、Auth Token、OAuth)
11
- - 🚀 **开箱即用** - 无需复杂配置
12
- - 💾 **环境变量管理** - 自动设置和管理环境变量
8
+ ##功能特性
13
9
 
14
- ## 安装
10
+ - 🎯 **双 IDE 支持** - 同时管理 Claude Code 和 Codex CLI 配置
11
+ - 🔄 **快速切换** - 一键切换不同的 API 提供商
12
+ - 🔐 **安全存储** - 本地加密存储 API 密钥
13
+ - 🎨 **多认证模式** - 支持 OAuth、API Key、Auth Token
14
+ - 🚀 **启动参数** - 为每个供应商配置专属启动参数
15
+ - 💾 **备份恢复** - 配置导出、导入、备份功能
16
+ - 🏷️ **智能过滤** - 按 IDE 类型过滤供应商列表
17
+ - ⚡ **参数校验** - 自动检测互斥参数冲突
18
+ - 🌍 **跨平台** - macOS / Linux / Windows
19
+
20
+ ## 📦 安装
15
21
 
16
22
  ```bash
17
23
  npm install -g @pikecode/api-key-manager
18
24
  ```
19
25
 
20
- ## 快速开始
26
+ ## 🚀 快速开始
21
27
 
22
28
  ```bash
23
- # 列出所有命令和选项
24
- akm --help
25
-
26
- # 添加新的 API 提供商配置
29
+ # 添加第一个配置
27
30
  akm add
28
31
 
29
- # 切换 API 提供商
32
+ # 切换供应商(交互式)
30
33
  akm
31
34
 
32
- # 查看当前配置
35
+ # 查看所有配置
36
+ akm list
37
+
38
+ # 查看当前激活的配置
33
39
  akm current
40
+ ```
41
+
42
+ ## 📖 完整命令参考
43
+
44
+ ### 基础命令
45
+
46
+ #### `akm` / `akm switch`
47
+ 交互式选择和切换供应商
48
+
49
+ ```bash
50
+ # 显示所有供应商
51
+ akm
52
+
53
+ # 直接切换到指定供应商
54
+ akm my-provider
34
55
 
35
- # 列出所有配置
56
+ # 仅显示 Codex CLI 供应商
57
+ akm switch --codex
58
+
59
+ # 仅显示 Claude Code 供应商
60
+ akm switch --claude
61
+ ```
62
+
63
+ #### `akm add`
64
+ 添加新的 API 供应商配置
65
+
66
+ ```bash
67
+ # 交互式添加(会询问 IDE 类型)
68
+ akm add
69
+
70
+ # 直接添加 Claude Code 供应商
71
+ akm add --claude
72
+
73
+ # 直接添加 Codex CLI 供应商
74
+ akm add --codex
75
+ ```
76
+
77
+ **添加过程中可配置:**
78
+ - IDE 类型(Claude Code / Codex CLI)
79
+ - 供应商名称和显示名称
80
+ - 认证模式(仅 Claude Code)
81
+ - API 密钥 / OAuth Token
82
+ - 基础 URL
83
+ - 启动参数
84
+ - 模型配置
85
+
86
+ #### `akm list`
87
+ 列出所有已保存的配置
88
+
89
+ ```bash
90
+ # 列出所有供应商
36
91
  akm list
92
+
93
+ # 仅列出 Codex CLI 供应商
94
+ akm list --codex
95
+
96
+ # 仅列出 Claude Code 供应商
97
+ akm list --claude
98
+ ```
99
+
100
+ **显示内容:**
101
+ - ✅ 当前激活的供应商
102
+ - 🟢/🟡/🔴 API 可用性状态
103
+ - [Codex]/[Claude] IDE 类型标签
104
+ - 认证模式、环境变量、启动参数
105
+ - 创建时间、最后使用时间
106
+
107
+ #### `akm current`
108
+ 显示当前激活的配置
109
+
110
+ ```bash
111
+ akm current
112
+ ```
113
+
114
+ **显示内容:**
115
+ - 供应商名称和显示名称
116
+ - IDE 类型
117
+ - 认证模式
118
+ - 环境变量设置
119
+ - 启动参数
120
+ - 模型配置
121
+
122
+ #### `akm edit`
123
+ 编辑供应商配置
124
+
125
+ ```bash
126
+ # 交互式选择要编辑的供应商
127
+ akm edit
128
+
129
+ # 直接编辑指定供应商
130
+ akm edit my-provider
131
+ ```
132
+
133
+ **可编辑项:**
134
+ - 显示名称
135
+ - 认证令牌
136
+ - 基础 URL
137
+ - 启动参数
138
+ - 模型配置
139
+
140
+ #### `akm remove`
141
+ 删除供应商配置
142
+
143
+ ```bash
144
+ # 交互式选择要删除的供应商
145
+ akm remove
146
+
147
+ # 直接删除指定供应商
148
+ akm remove my-provider
149
+ ```
150
+
151
+ ### 备份与迁移
152
+
153
+ #### `akm export`
154
+ 导出配置到文件
155
+
156
+ ```bash
157
+ # 导出到默认文件 (akm-config-{timestamp}.json)
158
+ akm export
159
+
160
+ # 导出到指定文件
161
+ akm export my-backup.json
162
+
163
+ # 导出时脱敏 Token(适合分享配置模板)
164
+ akm export template.json --mask
165
+ ```
166
+
167
+ **导出格式:**
168
+ ```json
169
+ {
170
+ "version": "1.0",
171
+ "exportedAt": "2025-12-15T05:30:00.000Z",
172
+ "providers": {
173
+ "my-provider": {
174
+ "name": "my-provider",
175
+ "displayName": "My Provider",
176
+ "ideName": "claude",
177
+ "authMode": "api_key",
178
+ "authToken": "sk-ant-***",
179
+ "baseUrl": "https://api.anthropic.com"
180
+ }
181
+ },
182
+ "currentProvider": "my-provider"
183
+ }
184
+ ```
185
+
186
+ #### `akm import`
187
+ 从文件导入配置
188
+
189
+ ```bash
190
+ # 导入配置(跳过已存在的供应商)
191
+ akm import my-backup.json
192
+
193
+ # 导入并覆盖已存在的供应商
194
+ akm import my-backup.json --overwrite
195
+ ```
196
+
197
+ **注意:** 如果导入的配置使用了 `--mask` 脱敏,需要手动编辑 Token。
198
+
199
+ #### `akm backup`
200
+ 备份和恢复配置
201
+
202
+ ```bash
203
+ # 创建备份(默认保存到 ~/.akm-backups/)
204
+ akm backup
205
+
206
+ # 指定备份目录
207
+ akm backup --dir /path/to/backups
208
+
209
+ # 列出所有备份
210
+ akm backup --list
211
+
212
+ # 从备份恢复
213
+ akm backup --restore akm-backup-2025-12-15T05-30-00.json
214
+
215
+ # 从指定目录的备份恢复
216
+ akm backup --restore backup.json --dir /path/to/backups
217
+ ```
218
+
219
+ **自动清理:** 默认保留最近 10 个备份,自动删除旧备份。
220
+
221
+ ## 🎨 IDE 支持
222
+
223
+ ### Claude Code (Anthropic 官方)
224
+
225
+ **认证模式:**
226
+ - **oauth_token** - OAuth 令牌模式(官方推荐)
227
+ - **api_key** - 通用 API 密钥模式
228
+ - **auth_token** - 认证令牌模式
229
+
230
+ **环境变量:**
231
+ - `CLAUDE_CODE_OAUTH_TOKEN` - OAuth 模式
232
+ - `ANTHROPIC_API_KEY` - API Key 模式
233
+ - `ANTHROPIC_AUTH_TOKEN` - Auth Token 模式
234
+ - `ANTHROPIC_BASE_URL` - 自定义 API 端点
235
+
236
+ **启动参数:**
237
+ - `--continue` - 继续上次对话
238
+ - `--dangerously-skip-permissions` - 跳过权限检查(沙盒环境)
239
+
240
+ **配置示例:**
241
+ ```bash
242
+ akm add --claude
243
+ # 选择认证模式 -> 输入 Token -> 配置启动参数
37
244
  ```
38
245
 
39
- ## 命令
246
+ ### Codex CLI (OpenAI)
40
247
 
41
- | 命令 | 说明 |
42
- |------|------|
43
- | `akm` | 交互式选择和切换 API 提供商 |
44
- | `akm add` | 添加新的 API 提供商配置 |
45
- | `akm list` | 列出所有已保存的配置 |
46
- | `akm current` | 显示当前激活的配置 |
47
- | `akm edit <name>` | 编辑指定提供商的配置 |
48
- | `akm remove <name>` | 删除指定的提供商配置 |
248
+ **认证模式:**
249
+ - 使用 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL` 环境变量
49
250
 
50
- ## 配置文件
251
+ **启动参数:**
252
+ - `resume` - 继续上次对话(子命令)
253
+ - `--full-auto` - 全自动模式(自动批准 + 工作区沙盒)⚠️ 与 `--dangerously-bypass-approvals-and-sandbox` 互斥
254
+ - `--dangerously-bypass-approvals-and-sandbox` - 跳过所有安全检查 ⚠️ 与 `--full-auto` 互斥
255
+ - `--search` - 启用网页搜索
51
256
 
52
- 配置文件位置:`~/.akm-config.json`
257
+ **配置导入:**
258
+ ```bash
259
+ akm add --codex
260
+ # 选择 "从 ~/.codex 导入现有配置" 自动读取现有配置
261
+ # 或选择 "手动输入配置" 手动设置
262
+ ```
263
+
264
+ **配置示例:**
265
+ ```bash
266
+ # 方式1:从现有 Codex 配置导入
267
+ akm add --codex
268
+ # -> 选择 "从 ~/.codex 导入现有配置"
269
+ # -> 自动读取 ~/.codex/auth.json 和 config.toml
53
270
 
54
- 示例配置结构:
271
+ # 方式2:手动配置
272
+ akm add --codex
273
+ # -> 选择 "手动输入配置"
274
+ # -> 输入 API Key 和 Base URL
275
+ ```
276
+
277
+ ## ⚙️ 配置文件
278
+
279
+ **位置:** `~/.akm-config.json`
280
+
281
+ **完整示例:**
55
282
  ```json
56
283
  {
57
284
  "version": "2.0.0",
58
- "currentProvider": "provider-name",
285
+ "currentProvider": "my-claude",
59
286
  "providers": {
60
- "claude-provider": {
61
- "name": "claude-provider",
62
- "displayName": "Claude Code Provider",
287
+ "my-claude": {
288
+ "name": "my-claude",
289
+ "displayName": "Claude Code Official",
290
+ "ideName": "claude",
63
291
  "authMode": "oauth_token",
64
- "authToken": "sk-ant-oat01-...",
292
+ "authToken": "sk-ant-oat01-xxx",
65
293
  "baseUrl": null,
66
294
  "tokenType": null,
295
+ "launchArgs": ["--continue"],
67
296
  "models": {
68
297
  "primary": "claude-sonnet-4",
69
298
  "smallFast": "claude-haiku-4"
70
- }
299
+ },
300
+ "createdAt": "2025-12-15T05:00:00.000Z",
301
+ "lastUsed": "2025-12-15T05:30:00.000Z"
71
302
  },
72
- "claude-api-key": {
73
- "name": "claude-api-key",
74
- "displayName": "Claude Code - API Key",
75
- "authMode": "api_key",
76
- "authToken": "sk-ant-...",
77
- "baseUrl": "https://api.anthropic.com",
78
- "tokenType": "api_key",
79
- "models": {
80
- "primary": "claude-sonnet-4",
81
- "smallFast": "claude-haiku-4"
82
- }
303
+ "my-codex": {
304
+ "name": "my-codex",
305
+ "displayName": "Codex CLI",
306
+ "ideName": "codex",
307
+ "authMode": "openai_api_key",
308
+ "authToken": "sk-xxx",
309
+ "baseUrl": "https://api.openai.com",
310
+ "tokenType": null,
311
+ "launchArgs": ["resume", "--full-auto"],
312
+ "createdAt": "2025-12-15T05:00:00.000Z",
313
+ "lastUsed": "2025-12-15T05:25:00.000Z"
83
314
  }
84
315
  }
85
316
  }
86
317
  ```
87
318
 
88
- ## 支持的 IDE
319
+ ## 🎯 使用场景
89
320
 
90
- ### Claude Code - Anthropic 官方代码编辑器
91
- - 认证模式:
92
- - `oauth_token` - OAuth 令牌模式(推荐官方用户)
93
- - `api_key` - 通用 API 密钥模式(支持 ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN)
94
- - `auth_token` - 认证令牌模式(仅 ANTHROPIC_AUTH_TOKEN)
95
- - 环境变量:CLAUDE_CODE_OAUTH_TOKEN、ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_BASE_URL
321
+ ### 场景 1: 同时使用多个 API Key
96
322
 
97
- ## 支持的认证模式
323
+ ```bash
324
+ # 添加工作账号
325
+ akm add --claude
326
+ # 名称: work
327
+ # 显示名称: Work Account
328
+ # Token: sk-ant-work-xxx
329
+
330
+ # 添加个人账号
331
+ akm add --claude
332
+ # 名称: personal
333
+ # 显示名称: Personal Account
334
+ # Token: sk-ant-personal-xxx
335
+
336
+ # 快速切换
337
+ akm # 选择 work 或 personal
338
+ ```
98
339
 
99
- | 模式 | IDE | 说明 |
100
- |------|-----|------|
101
- | **oauth_token** | Claude Code | OAuth 令牌模式 |
102
- | **api_key** | Claude Code | 标准 API 密钥模式 |
103
- | **auth_token** | Claude Code | 认证令牌模式 |
340
+ ### 场景 2: Claude Code Codex CLI 混合使用
104
341
 
105
- ## 快捷键
342
+ ```bash
343
+ # 添加 Claude Code 配置
344
+ akm add --claude
345
+
346
+ # 添加 Codex CLI 配置
347
+ akm add --codex
348
+
349
+ # 查看所有配置(带 IDE 标签)
350
+ akm list
106
351
 
107
- - **ESC** - 返回上级菜单
108
- - **方向键** - 导航菜单
352
+ # 仅切换 Codex 供应商
353
+ akm switch --codex
354
+
355
+ # 仅切换 Claude 供应商
356
+ akm switch --claude
357
+ ```
358
+
359
+ ### 场景 3: 团队配置分享
360
+
361
+ ```bash
362
+ # 导出配置模板(脱敏)
363
+ akm export team-template.json --mask
364
+
365
+ # 团队成员导入后编辑 Token
366
+ akm import team-template.json
367
+ akm edit my-provider # 设置自己的 Token
368
+ ```
369
+
370
+ ### 场景 4: 配置迁移
371
+
372
+ ```bash
373
+ # 旧机器:导出配置
374
+ akm export my-config.json
375
+
376
+ # 新机器:导入配置
377
+ akm import my-config.json
378
+ ```
379
+
380
+ ### 场景 5: 定期备份
381
+
382
+ ```bash
383
+ # 创建备份
384
+ akm backup
385
+
386
+ # 查看备份列表
387
+ akm backup --list
388
+
389
+ # 恢复到某个备份
390
+ akm backup --restore akm-backup-2025-12-15T05-30-00.json
391
+ ```
392
+
393
+ ## ⚠️ 参数互斥说明
394
+
395
+ 某些参数不能同时使用,akm 会自动检测并提示:
396
+
397
+ **Codex CLI:**
398
+ - `--full-auto` ⚔️ `--dangerously-bypass-approvals-and-sandbox`
399
+
400
+ 如果同时选择互斥参数,会显示警告并要求重新选择。
401
+
402
+ ## ⌨️ 快捷键
403
+
404
+ - **↑/↓** - 上下导航
405
+ - **Space** - 切换选中(多选)
406
+ - **Enter** - 确认
407
+ - **ESC** - 返回上级菜单 / 取消操作
109
408
  - **Ctrl+C** - 退出程序
110
409
 
111
- ## 系统要求
410
+ ## 🔧 系统要求
112
411
 
113
412
  - Node.js >= 14.0.0
114
413
  - macOS / Linux / Windows
115
414
 
116
- ## 许可证
415
+ ## 📝 更新日志
416
+
417
+ ### v1.0.27 (最新)
418
+ - ✨ 新增参数互斥校验
419
+ - ✨ 新增 `export` / `import` / `backup` 命令
420
+ - 🧪 测试覆盖率提升 46%
421
+
422
+ ### v1.0.26
423
+ - ✨ Codex 添加 `resume` 子命令支持
424
+
425
+ ### v1.0.25
426
+ - 🐛 修复 Codex 启动参数
427
+
428
+ ### v1.0.23
429
+ - ✨ list 和 switch 命令显示 IDE 类型标签
430
+
431
+ ### v1.0.22
432
+ - ✨ 完整的 Codex CLI 支持优化
433
+
434
+ ## 🤝 贡献
435
+
436
+ 欢迎提交 Issue 和 Pull Request!
437
+
438
+ ## 📄 许可证
439
+
440
+ MIT License
441
+
442
+ ## 🔗 链接
117
443
 
118
- MIT
444
+ - **GitHub**: https://github.com/pikecode/api-key-manager
445
+ - **NPM**: https://www.npmjs.com/package/@pikecode/api-key-manager
446
+ - **Issues**: https://github.com/pikecode/api-key-manager/issues
119
447
 
120
- ## 更多信息
448
+ ---
121
449
 
122
- - GitHub: https://github.com/pikecode/api-key-manager
123
- - NPM: https://www.npmjs.com/package/@pikecode/api-key-manager
450
+ Made with ❤️ by [pikecode](https://github.com/pikecode)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikecode/api-key-manager",
3
- "version": "1.0.27",
3
+ "version": "1.0.28",
4
4
  "description": "A CLI tool for managing and switching multiple API provider configurations",
5
5
  "main": "src/index.js",
6
6
  "bin": {