@pikecode/api-key-manager 1.0.44 → 1.1.0
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 +267 -1174
- package/bin/akm.js +125 -1
- package/package.json +1 -1
- package/src/CommandRegistry.js +15 -0
- package/src/commands/add.js +14 -189
- package/src/commands/backup.js +3 -0
- package/src/commands/claude-clean.js +253 -0
- package/src/commands/clone.js +265 -0
- package/src/commands/current.js +4 -18
- package/src/commands/edit.js +10 -39
- package/src/commands/list.js +17 -20
- package/src/commands/mcp.js +467 -0
- package/src/commands/switch.js +7 -39
- package/src/config.js +0 -6
- package/src/constants/index.js +6 -18
- package/src/utils/claude-settings.js +0 -1
- package/src/utils/env-launcher.js +8 -16
- package/src/utils/provider-status-checker.js +0 -4
package/README.md
CHANGED
|
@@ -1,641 +1,89 @@
|
|
|
1
1
|
# API Key Manager (akm)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
一个 CLI 工具,用于管理和快速切换 **Claude Code** 和 **Codex CLI** 的 API 配置。
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@pikecode/api-key-manager)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## 功能特性
|
|
9
9
|
|
|
10
|
-
- 🎯 **双 IDE 支持**
|
|
11
|
-
- 🔄 **快速切换**
|
|
12
|
-
- ⚡ **快速启动**
|
|
13
|
-
- 🧠 **智能记忆**
|
|
14
|
-
- 🏷️ **别名系统**
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
- 🌍 **跨平台** - macOS / Linux / Windows
|
|
10
|
+
- 🎯 **双 IDE 支持** — 同时管理 Claude Code 和 Codex CLI 配置
|
|
11
|
+
- 🔄 **快速切换** — 一键切换不同的 API 供应商
|
|
12
|
+
- ⚡ **快速启动** — `-q` 跳过参数选择,秒级启动
|
|
13
|
+
- 🧠 **智能记忆** — 自动记住上次使用的启动参数
|
|
14
|
+
- 🏷️ **别名系统** — 为供应商设置简短别名
|
|
15
|
+
- 🔌 **MCP 管理** — 管理 Claude Code 的 MCP 服务器配置
|
|
16
|
+
- 🧹 **配置清理** — 清理 Claude Code 配置文件中的冗余数据
|
|
17
|
+
- 📋 **克隆配置** — 快速克隆现有供应商配置
|
|
18
|
+
- ✅ **配置验证** — 验证 Token 有效性和 API 可用性
|
|
19
|
+
- 🔐 **安全存储** — 本地文件存储,Unix 自动设置 0600 权限
|
|
20
|
+
- 💾 **备份恢复** — 配置导出、导入、备份功能
|
|
21
|
+
- 🌍 **跨平台** — macOS / Linux / Windows
|
|
23
22
|
|
|
24
|
-
##
|
|
23
|
+
## 安装
|
|
25
24
|
|
|
26
25
|
```bash
|
|
27
26
|
npm install -g @pikecode/api-key-manager
|
|
28
27
|
```
|
|
29
28
|
|
|
30
|
-
##
|
|
29
|
+
## 快速开始
|
|
31
30
|
|
|
32
31
|
```bash
|
|
33
|
-
#
|
|
32
|
+
# 添加供应商配置
|
|
34
33
|
akm add
|
|
35
|
-
# 输入名称: my-provider
|
|
36
|
-
# 输入别名: prod (可选)
|
|
37
34
|
|
|
38
|
-
#
|
|
35
|
+
# 交互式切换供应商并启动
|
|
39
36
|
akm
|
|
40
37
|
|
|
41
38
|
# 快速启动(使用上次参数)
|
|
42
|
-
akm
|
|
43
|
-
|
|
44
|
-
# 验证配置
|
|
45
|
-
akm validate prod
|
|
39
|
+
akm my-provider -q
|
|
46
40
|
|
|
47
41
|
# 查看所有配置
|
|
48
42
|
akm list
|
|
49
43
|
|
|
50
|
-
# 查看当前激活的配置
|
|
51
|
-
akm current
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## 📚 详细使用指南
|
|
55
|
-
|
|
56
|
-
### 首次使用完整流程
|
|
57
|
-
|
|
58
|
-
#### 步骤 1: 安装 akm
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# 全局安装
|
|
62
|
-
npm install -g @pikecode/api-key-manager
|
|
63
|
-
|
|
64
|
-
# 验证安装
|
|
65
|
-
akm --version
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
#### 步骤 2: 添加第一个供应商
|
|
69
|
-
|
|
70
|
-
**添加 Claude Code 供应商:**
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
akm add --claude
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
交互式问答流程:
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
? 选择要管理的 IDE: Claude Code (Anthropic)
|
|
80
|
-
? 请输入供应商名称 (用于命令行): my-claude
|
|
81
|
-
? 请输入显示名称: My Claude Account
|
|
82
|
-
? 选择认证模式:
|
|
83
|
-
❯ 🌐 OAuth令牌模式 (CLAUDE_CODE_OAUTH_TOKEN) - 适用于官方Claude Code
|
|
84
|
-
🔑 通用API密钥模式 - 支持 ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN
|
|
85
|
-
🔐 认证令牌模式 (仅 ANTHROPIC_AUTH_TOKEN) - 适用于某些服务商
|
|
86
|
-
? 请输入 OAuth Token: sk-ant-oat01-xxxxx
|
|
87
|
-
? 选择默认启动参数:
|
|
88
|
-
◉ --continue 继续上次对话
|
|
89
|
-
◯ --dangerously-skip-permissions 跳过权限检查
|
|
90
|
-
? 设置主模型 (ANTHROPIC_MODEL): claude-sonnet-4
|
|
91
|
-
? 设置快速模型 (ANTHROPIC_SMALL_FAST_MODEL): claude-haiku-4
|
|
92
|
-
|
|
93
|
-
✅ 供应商 'my-claude' 已添加
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**添加 Codex CLI 供应商:**
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
akm add --codex
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
交互式问答流程:
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
? 选择要管理的 IDE: Codex CLI (OpenAI)
|
|
106
|
-
? 选择配置方式:
|
|
107
|
-
❯ 从 ~/.codex 导入现有配置
|
|
108
|
-
手动输入配置
|
|
109
|
-
? 请输入供应商名称 (用于命令行): my-codex
|
|
110
|
-
? 请输入显示名称: My Codex Account
|
|
111
|
-
? 请输入 API Key (OPENAI_API_KEY): sk-xxxxx
|
|
112
|
-
? 请输入基础 URL (OPENAI_BASE_URL): https://api.openai.com
|
|
113
|
-
? 选择默认启动参数:
|
|
114
|
-
◉ resume 继续上次对话
|
|
115
|
-
◯ --full-auto 全自动模式
|
|
116
|
-
◯ --search 启用网页搜索
|
|
117
|
-
|
|
118
|
-
✅ 供应商 'my-codex' 已添加
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
#### 步骤 3: 切换并启动
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
# 运行 akm 进入交互式选择界面
|
|
125
|
-
akm
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
选择供应商后,akm 会自动:
|
|
129
|
-
1. 设置为当前活跃供应商
|
|
130
|
-
2. 配置相应的环境变量/配置文件
|
|
131
|
-
3. 启动对应的 IDE(Claude Code 或 Codex CLI)
|
|
132
|
-
|
|
133
|
-
#### 步骤 4: 日常使用
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
# 快速切换到指定供应商
|
|
137
|
-
akm my-claude
|
|
138
|
-
|
|
139
44
|
# 查看当前配置
|
|
140
|
-
akm current
|
|
141
|
-
|
|
142
|
-
# 查看所有供应商
|
|
143
|
-
akm list
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
### 交互式界面操作说明
|
|
149
|
-
|
|
150
|
-
#### 主界面(供应商选择)
|
|
151
|
-
|
|
152
|
-
```
|
|
153
|
-
总共 3 个供应商配置
|
|
154
|
-
|
|
155
|
-
↑ / ↓ 选择供应商 | Enter 确认 | Tab 切换选项 | ESC 退出程序 | Ctrl+C 强制退出
|
|
156
|
-
|
|
157
|
-
? 请选择要切换的供应商 (总计 3 个):
|
|
158
|
-
🟢 [Claude] My Claude Account --- 上次使用 - 可用
|
|
159
|
-
🟢 [Claude] Work Account - 可用
|
|
160
|
-
❯ 🟢 [Codex] My Codex Account - 可用
|
|
161
|
-
──────────────
|
|
162
|
-
➕ 添加新供应商
|
|
163
|
-
📋 供应商管理 (编辑/删除)
|
|
164
|
-
📁 打开配置文件
|
|
165
|
-
❌ 退出
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
**状态图标说明:**
|
|
169
|
-
| 图标 | 含义 |
|
|
170
|
-
|-----|------|
|
|
171
|
-
| 🟢 | API 可用 |
|
|
172
|
-
| 🟡 | 有限可用/响应慢 |
|
|
173
|
-
| 🔴 | API 不可用 |
|
|
174
|
-
| ⏳ | 正在检测 |
|
|
175
|
-
| ⚪ | 未知状态 |
|
|
176
|
-
|
|
177
|
-
**IDE 标签:**
|
|
178
|
-
| 标签 | 含义 |
|
|
179
|
-
|------|------|
|
|
180
|
-
| [Claude] | Claude Code 供应商 |
|
|
181
|
-
| [Codex] | Codex CLI 供应商 |
|
|
182
|
-
|
|
183
|
-
#### 启动参数选择界面
|
|
184
|
-
|
|
185
|
-
选择供应商后进入启动参数选择:
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
┌─ 启动配置 ─────────────────────────────────┐
|
|
189
|
-
|
|
190
|
-
📋 供应商: My Claude Account
|
|
191
|
-
|
|
192
|
-
空格 切换选中 | A 全选 | I 反选 | Enter 启动 Claude Code | ESC 返回
|
|
193
|
-
|
|
194
|
-
? 选择启动参数:
|
|
195
|
-
◉ --continue (继续上次对话)
|
|
196
|
-
◯ --dangerously-skip-permissions (跳过权限检查)
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
**快捷键:**
|
|
200
|
-
| 按键 | 功能 |
|
|
201
|
-
|------|------|
|
|
202
|
-
| `Space` | 切换选中状态 |
|
|
203
|
-
| `A` | 全选所有参数 |
|
|
204
|
-
| `I` | 反选(选中变未选,未选变选中)|
|
|
205
|
-
| `Enter` | 确认并启动 |
|
|
206
|
-
| `ESC` | 返回上一级 |
|
|
207
|
-
|
|
208
|
-
#### 供应商管理界面
|
|
209
|
-
|
|
210
|
-
从主界面选择"供应商管理"进入:
|
|
211
|
-
|
|
212
|
-
```
|
|
213
|
-
↑ / ↓ 选择供应商或操作 | Enter 确认 | ESC 返回主菜单
|
|
214
|
-
|
|
215
|
-
┌─ 供应商管理 ─────────────────────────────────┐
|
|
216
|
-
|
|
217
|
-
? 选择供应商或操作 (总计 3 个):
|
|
218
|
-
❯ 🟢 [Claude] My Claude Account - 可用
|
|
219
|
-
🟢 [Claude] Work Account - 可用
|
|
220
|
-
🟢 [Codex] My Codex Account - 可用
|
|
221
|
-
──────────────
|
|
222
|
-
◀ 返回供应商选择
|
|
223
|
-
❌ 退出
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
选择供应商后显示详情和操作选项:
|
|
227
|
-
|
|
228
|
-
```
|
|
229
|
-
┌─ 供应商详情 ─────────────────────────────────┐
|
|
230
|
-
|
|
231
|
-
┌──────────────┬─────────────────────────────────┐
|
|
232
|
-
│ 供应商名称 │ my-claude │
|
|
233
|
-
│ 显示名称 │ My Claude Account │
|
|
234
|
-
│ 认证模式 │ OAuth令牌模式 │
|
|
235
|
-
│ 基础URL │ ✨ 官方默认服务器 │
|
|
236
|
-
│ 认证令牌 │ sk-ant-***...***ddd │
|
|
237
|
-
│ 主模型 │ claude-sonnet-4 │
|
|
238
|
-
│ 快速模型 │ claude-haiku-4 │
|
|
239
|
-
│ 创建时间 │ 2025-12-15 13:00 │
|
|
240
|
-
│ 最后使用 │ 2025-12-17 10:30 │
|
|
241
|
-
│ 当前状态 │ ✅ 使用中 │
|
|
242
|
-
│ 使用次数 │ 42 │
|
|
243
|
-
└──────────────┴─────────────────────────────────┘
|
|
244
|
-
|
|
245
|
-
? 选择操作:
|
|
246
|
-
❯ 🚀 立即启动
|
|
247
|
-
✏️ 编辑供应商
|
|
248
|
-
🗑️ 删除供应商
|
|
249
|
-
◀ 返回管理列表
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
### 配置示例
|
|
255
|
-
|
|
256
|
-
#### Claude Code 官方 OAuth(推荐)
|
|
257
|
-
|
|
258
|
-
适用于:使用官方 Claude Code 登录获取的 OAuth Token
|
|
259
|
-
|
|
260
|
-
```bash
|
|
261
|
-
akm add --claude
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
```yaml
|
|
265
|
-
供应商名称: claude-official
|
|
266
|
-
显示名称: Claude Official
|
|
267
|
-
认证模式: oauth_token
|
|
268
|
-
Token: sk-ant-oat01-xxxxxxxx # 从 claude 登录后获取
|
|
269
|
-
基础URL: (留空,使用官方服务器)
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
#### Claude Code 第三方 API(API Key 模式)
|
|
273
|
-
|
|
274
|
-
适用于:使用 Anthropic API Key 或第三方兼容服务
|
|
275
|
-
|
|
276
|
-
```bash
|
|
277
|
-
akm add --claude
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
```yaml
|
|
281
|
-
供应商名称: anthropic-api
|
|
282
|
-
显示名称: Anthropic API
|
|
283
|
-
认证模式: api_key
|
|
284
|
-
Token类型: ANTHROPIC_API_KEY
|
|
285
|
-
Token: sk-ant-api03-xxxxxxxx
|
|
286
|
-
基础URL: https://api.anthropic.com # 或第三方服务地址
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
#### Claude Code 第三方 API(Auth Token 模式)
|
|
290
|
-
|
|
291
|
-
适用于:某些第三方服务商要求使用 ANTHROPIC_AUTH_TOKEN
|
|
292
|
-
|
|
293
|
-
```bash
|
|
294
|
-
akm add --claude
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
```yaml
|
|
298
|
-
供应商名称: third-party
|
|
299
|
-
显示名称: Third Party Service
|
|
300
|
-
认证模式: auth_token
|
|
301
|
-
Token: your-auth-token
|
|
302
|
-
基础URL: https://your-provider.com/v1
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
#### Codex CLI 官方 OpenAI
|
|
306
|
-
|
|
307
|
-
适用于:使用 OpenAI 官方 API
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
akm add --codex
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
```yaml
|
|
314
|
-
供应商名称: openai-official
|
|
315
|
-
显示名称: OpenAI Official
|
|
316
|
-
API Key: sk-xxxxxxxx
|
|
317
|
-
基础URL: https://api.openai.com # 可留空
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
#### Codex CLI 第三方兼容服务
|
|
321
|
-
|
|
322
|
-
适用于:使用兼容 OpenAI API 的第三方服务
|
|
323
|
-
|
|
324
|
-
```bash
|
|
325
|
-
akm add --codex
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
```yaml
|
|
329
|
-
供应商名称: azure-openai
|
|
330
|
-
显示名称: Azure OpenAI
|
|
331
|
-
API Key: your-azure-key
|
|
332
|
-
基础URL: https://your-resource.openai.azure.com/openai/deployments/your-deployment
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
#### 多账号配置示例
|
|
336
|
-
|
|
337
|
-
```bash
|
|
338
|
-
# 工作账号
|
|
339
|
-
akm add --claude
|
|
340
|
-
# 名称: work, Token: sk-ant-work-xxx
|
|
341
|
-
|
|
342
|
-
# 个人账号
|
|
343
|
-
akm add --claude
|
|
344
|
-
# 名称: personal, Token: sk-ant-personal-xxx
|
|
345
|
-
|
|
346
|
-
# 测试账号
|
|
347
|
-
akm add --codex
|
|
348
|
-
# 名称: test-codex, Token: sk-test-xxx
|
|
349
|
-
|
|
350
|
-
# 快速切换
|
|
351
|
-
akm work # 切换到工作账号
|
|
352
|
-
akm personal # 切换到个人账号
|
|
353
|
-
akm test-codex # 切换到测试账号
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
---
|
|
357
|
-
|
|
358
|
-
### 常见问题 FAQ
|
|
359
|
-
|
|
360
|
-
#### Q1: 切换 Codex 后提示 "Token data is not available"
|
|
361
|
-
|
|
362
|
-
**原因:** `~/.codex/auth.json` 格式不正确或 `config.toml` 未设置 API Key 认证模式。
|
|
363
|
-
|
|
364
|
-
**解决方案:**
|
|
365
|
-
```bash
|
|
366
|
-
# 确保使用最新版本 akm
|
|
367
|
-
npm update -g @pikecode/api-key-manager
|
|
368
|
-
|
|
369
|
-
# 重新切换供应商
|
|
370
|
-
akm my-codex
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
akm 会自动:
|
|
374
|
-
- 设置 `~/.codex/config.toml` 中的 `preferred_auth_method = "apikey"`
|
|
375
|
-
- 写入正确格式的 `~/.codex/auth.json`
|
|
376
|
-
|
|
377
|
-
#### Q2: Claude Code 切换后环境变量不生效
|
|
378
|
-
|
|
379
|
-
**原因:** `~/.claude/settings.json` 中存在冲突的环境变量配置。
|
|
380
|
-
|
|
381
|
-
**解决方案:** 切换时 akm 会自动检测并提示处理冲突,选择"备份并清空这些变量"即可。
|
|
382
|
-
|
|
383
|
-
手动检查:
|
|
384
|
-
```bash
|
|
385
|
-
cat ~/.claude/settings.json | grep -A 10 '"env"'
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
#### Q3: 如何查看完整的 API Key/Token?
|
|
389
|
-
|
|
390
|
-
**解决方案:** 默认脱敏显示,使用 `--show-token` 参数:
|
|
391
|
-
|
|
392
|
-
```bash
|
|
393
|
-
akm list --show-token
|
|
394
|
-
akm current --show-token
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
#### Q4: 配置文件在哪里?如何手动编辑?
|
|
398
|
-
|
|
399
|
-
**位置:** `~/.akm-config.json`
|
|
400
|
-
|
|
401
|
-
```bash
|
|
402
|
-
# 通过 akm 打开
|
|
403
|
-
akm
|
|
404
|
-
# 选择 "📁 打开配置文件"
|
|
405
|
-
|
|
406
|
-
# 或直接编辑
|
|
407
|
-
code ~/.akm-config.json
|
|
408
|
-
vim ~/.akm-config.json
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
#### Q5: 如何备份和恢复配置?
|
|
412
|
-
|
|
413
|
-
```bash
|
|
414
|
-
# 创建备份
|
|
415
|
-
akm backup
|
|
416
|
-
|
|
417
|
-
# 查看备份列表
|
|
418
|
-
akm backup --list
|
|
419
|
-
|
|
420
|
-
# 恢复备份
|
|
421
|
-
akm backup --restore akm-backup-2025-12-17T10-30-00.json
|
|
422
|
-
|
|
423
|
-
# 导出到指定文件(可分享)
|
|
424
|
-
akm export my-config.json
|
|
425
|
-
|
|
426
|
-
# 导出脱敏版本(分享配置模板)
|
|
427
|
-
akm export template.json --mask
|
|
428
|
-
|
|
429
|
-
# 从文件导入
|
|
430
|
-
akm import my-config.json
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
#### Q6: 切换时报错 "找不到 claude/codex 命令"
|
|
434
|
-
|
|
435
|
-
**原因:** 未安装对应的 CLI 工具。
|
|
436
|
-
|
|
437
|
-
**解决方案:**
|
|
438
|
-
|
|
439
|
-
```bash
|
|
440
|
-
# 安装 Claude Code
|
|
441
|
-
npm install -g @anthropic-ai/claude-code
|
|
442
|
-
|
|
443
|
-
# 安装 Codex CLI
|
|
444
|
-
npm install -g @openai/codex
|
|
445
|
-
# 或
|
|
446
|
-
brew install codex
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
#### Q7: 如何删除某个供应商配置?
|
|
450
|
-
|
|
451
|
-
```bash
|
|
452
|
-
# 交互式选择删除
|
|
453
|
-
akm remove
|
|
454
|
-
|
|
455
|
-
# 直接删除指定供应商
|
|
456
|
-
akm remove my-provider
|
|
457
|
-
```
|
|
458
|
-
|
|
459
|
-
#### Q8: 支持哪些第三方服务?
|
|
460
|
-
|
|
461
|
-
理论上支持所有兼容以下 API 的服务:
|
|
462
|
-
- **Claude Code**: 兼容 Anthropic API 的服务
|
|
463
|
-
- **Codex CLI**: 兼容 OpenAI API 的服务
|
|
464
|
-
|
|
465
|
-
常见第三方服务配置:
|
|
466
|
-
| 服务 | IDE | 基础 URL |
|
|
467
|
-
|------|-----|----------|
|
|
468
|
-
| Azure OpenAI | Codex | `https://{resource}.openai.azure.com/...` |
|
|
469
|
-
| OpenRouter | Claude/Codex | `https://openrouter.ai/api/v1` |
|
|
470
|
-
| Together AI | Codex | `https://api.together.xyz/v1` |
|
|
471
|
-
|
|
472
|
-
#### Q9: 如何只显示某一类 IDE 的供应商?
|
|
473
|
-
|
|
474
|
-
```bash
|
|
475
|
-
# 只显示 Claude Code 供应商
|
|
476
|
-
akm switch --claude
|
|
477
|
-
akm list --claude
|
|
478
|
-
|
|
479
|
-
# 只显示 Codex CLI 供应商
|
|
480
|
-
akm switch --codex
|
|
481
|
-
akm list --codex
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
#### Q10: 配置文件权限问题
|
|
485
|
-
|
|
486
|
-
akm 会自动设置配置文件权限为 `0600`(仅所有者可读写)。
|
|
487
|
-
|
|
488
|
-
如果遇到权限问题:
|
|
489
|
-
```bash
|
|
490
|
-
chmod 600 ~/.akm-config.json
|
|
491
|
-
```
|
|
492
|
-
|
|
493
|
-
#### Q11: 如何使用快速启动模式?
|
|
494
|
-
|
|
495
|
-
快速启动可以跳过参数选择,直接启动:
|
|
496
|
-
|
|
497
|
-
```bash
|
|
498
|
-
# 使用上次的参数快速启动
|
|
499
|
-
akm my-provider -q
|
|
500
|
-
|
|
501
|
-
# 以空参数启动
|
|
502
|
-
akm my-provider --no-args
|
|
503
|
-
|
|
504
|
-
# 通过别名快速启动
|
|
505
|
-
akm prod -q
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
**什么时候使用 `-q`?**
|
|
509
|
-
- 日常重复启动
|
|
510
|
-
- 参数已经固定
|
|
511
|
-
- 追求启动速度
|
|
512
|
-
|
|
513
|
-
**什么时候使用 `--no-args`?**
|
|
514
|
-
- 测试不同参数配置
|
|
515
|
-
- 临时不需要任何参数
|
|
516
|
-
- 重置参数配置
|
|
517
|
-
|
|
518
|
-
#### Q12: 如何设置和使用别名?
|
|
519
|
-
|
|
520
|
-
别名可以让你用短名称快速访问供应商:
|
|
521
|
-
|
|
522
|
-
```bash
|
|
523
|
-
# 添加时设置别名
|
|
524
|
-
akm add
|
|
525
|
-
# 供应商名称: my-long-provider-name
|
|
526
|
-
# 别名: mp ← 设置简短别名
|
|
527
|
-
|
|
528
|
-
# 后续使用别名
|
|
529
|
-
akm mp # 切换
|
|
530
|
-
akm mp -q # 快速启动
|
|
531
|
-
akm validate mp # 验证
|
|
532
|
-
akm edit mp # 编辑
|
|
533
|
-
|
|
534
|
-
# 查看别名
|
|
535
|
-
akm list
|
|
536
|
-
# 输出: my-long-provider-name (Display Name) [别名: mp]
|
|
537
|
-
```
|
|
538
|
-
|
|
539
|
-
**别名规则:**
|
|
540
|
-
- 不区分大小写
|
|
541
|
-
- 可以为空(可选)
|
|
542
|
-
- 可以随时修改
|
|
543
|
-
- 在所有命令中通用
|
|
544
|
-
|
|
545
|
-
#### Q13: 如何验证配置是否正确?
|
|
546
|
-
|
|
547
|
-
使用 `validate` 命令检查 Token 和配置:
|
|
548
|
-
|
|
549
|
-
```bash
|
|
550
|
-
# 验证单个供应商
|
|
551
|
-
akm validate my-provider
|
|
552
|
-
|
|
553
|
-
# 验证所有供应商
|
|
554
|
-
akm validate
|
|
555
|
-
|
|
556
|
-
# 只验证 Claude Code 供应商
|
|
557
|
-
akm validate --claude
|
|
558
|
-
```
|
|
559
|
-
|
|
560
|
-
**验证内容:**
|
|
561
|
-
- ✅ Token 是否有效
|
|
562
|
-
- ⚡ API 响应时间
|
|
563
|
-
- 🔍 配置是否完整
|
|
564
|
-
- 💡 错误诊断建议
|
|
565
|
-
|
|
566
|
-
**示例场景:**
|
|
567
|
-
```bash
|
|
568
|
-
# 添加新配置后验证
|
|
569
|
-
akm add
|
|
570
|
-
akm validate new-provider
|
|
571
|
-
|
|
572
|
-
# 定期检查所有配置
|
|
573
|
-
akm validate
|
|
574
|
-
|
|
575
|
-
# 切换前验证
|
|
576
|
-
akm validate prod && akm prod -q
|
|
577
|
-
```
|
|
578
|
-
|
|
579
|
-
#### Q14: 上次使用的参数存在哪里?
|
|
580
|
-
|
|
581
|
-
参数记录在 `~/.akm-config.json` 的 `lastUsedArgs` 字段:
|
|
582
|
-
|
|
583
|
-
```json
|
|
584
|
-
{
|
|
585
|
-
"providers": {
|
|
586
|
-
"my-provider": {
|
|
587
|
-
"name": "my-provider",
|
|
588
|
-
"launchArgs": ["--continue"], // 默认参数
|
|
589
|
-
"lastUsedArgs": ["--continue", "--search"], // 上次使用的参数
|
|
590
|
-
"usageCount": 42, // 使用次数
|
|
591
|
-
"lastUsed": "2025-12-17T10:30:00" // 最后使用时间
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
```
|
|
596
|
-
|
|
597
|
-
**清除记录:** 下次不使用 `-q` 重新选择参数即可覆盖。
|
|
598
|
-
|
|
599
|
-
#### Q15: 别名和供应商名称有什么区别?
|
|
600
|
-
|
|
601
|
-
| 特性 | 供应商名称 | 别名 |
|
|
602
|
-
|------|-----------|------|
|
|
603
|
-
| 用途 | 唯一标识符 | 快速访问 |
|
|
604
|
-
| 必需性 | 必需 | 可选 |
|
|
605
|
-
| 唯一性 | 必须唯一 | 建议唯一 |
|
|
606
|
-
| 长度 | 可以较长 | 建议简短 |
|
|
607
|
-
| 示例 | `my-production-api-v2` | `prod` |
|
|
45
|
+
akm current
|
|
46
|
+
```
|
|
608
47
|
|
|
609
|
-
|
|
610
|
-
- 供应商名称用于管理和识别
|
|
611
|
-
- 别名用于日常快速访问
|
|
612
|
-
- 例如:`company-production-claude` → 别名 `prod`
|
|
48
|
+
## 命令参考
|
|
613
49
|
|
|
614
|
-
|
|
50
|
+
### 核心命令
|
|
615
51
|
|
|
616
|
-
|
|
52
|
+
| 命令 | 说明 |
|
|
53
|
+
|------|------|
|
|
54
|
+
| `akm` / `akm switch` | 交互式选择和切换供应商 |
|
|
55
|
+
| `akm add` | 添加新的供应商配置 |
|
|
56
|
+
| `akm remove [provider]` | 删除供应商配置 |
|
|
57
|
+
| `akm list` | 列出所有供应商 |
|
|
58
|
+
| `akm current` | 显示当前激活的配置 |
|
|
59
|
+
| `akm edit [provider]` | 编辑供应商配置 |
|
|
617
60
|
|
|
618
|
-
###
|
|
61
|
+
### 运维命令
|
|
619
62
|
|
|
620
|
-
|
|
621
|
-
|
|
63
|
+
| 命令 | 说明 |
|
|
64
|
+
|------|------|
|
|
65
|
+
| `akm export [file]` | 导出配置到文件 |
|
|
66
|
+
| `akm import <file>` | 从文件导入配置 |
|
|
67
|
+
| `akm backup` | 备份和恢复配置 |
|
|
68
|
+
| `akm validate [provider]` | 验证供应商配置有效性 |
|
|
69
|
+
| `akm clone [source]` | 克隆现有供应商配置 |
|
|
622
70
|
|
|
623
|
-
|
|
624
|
-
# 显示所有供应商
|
|
625
|
-
akm
|
|
71
|
+
### 工具命令
|
|
626
72
|
|
|
627
|
-
|
|
628
|
-
|
|
73
|
+
| 命令 | 说明 |
|
|
74
|
+
|------|------|
|
|
75
|
+
| `akm stats [provider]` | 显示供应商使用统计 |
|
|
76
|
+
| `akm health [provider]` | 检查配置健康状态 |
|
|
77
|
+
| `akm batch <operation>` | 批量操作供应商 |
|
|
78
|
+
| `akm benchmark` | 供应商性能测试和对比 |
|
|
79
|
+
| `akm claude <subcommand>` | Claude Code 配置管理 (clean/analyze) |
|
|
80
|
+
| `akm mcp <subcommand>` | MCP 服务器管理 (list/add/edit/remove) |
|
|
629
81
|
|
|
630
|
-
|
|
631
|
-
akm switch --codex
|
|
82
|
+
---
|
|
632
83
|
|
|
633
|
-
|
|
634
|
-
akm switch --claude
|
|
635
|
-
```
|
|
84
|
+
## 详细使用指南
|
|
636
85
|
|
|
637
|
-
|
|
638
|
-
添加新的 API 供应商配置
|
|
86
|
+
### 添加供应商
|
|
639
87
|
|
|
640
88
|
```bash
|
|
641
89
|
# 交互式添加(会询问 IDE 类型)
|
|
@@ -648,434 +96,298 @@ akm add --claude
|
|
|
648
96
|
akm add --codex
|
|
649
97
|
```
|
|
650
98
|
|
|
651
|
-
|
|
652
|
-
- IDE 类型(Claude Code / Codex CLI)
|
|
653
|
-
- 供应商名称和显示名称
|
|
654
|
-
- 认证模式(仅 Claude Code)
|
|
655
|
-
- API 密钥 / OAuth Token
|
|
656
|
-
- 基础 URL
|
|
657
|
-
- 启动参数
|
|
658
|
-
- 模型配置
|
|
99
|
+
添加流程分两步:
|
|
659
100
|
|
|
660
|
-
|
|
661
|
-
|
|
101
|
+
**步骤 1 — 填写供应商信息:**
|
|
102
|
+
- 选择 IDE 类型(Claude Code / Codex CLI)
|
|
103
|
+
- 输入供应商名称
|
|
104
|
+
- 选择认证模式(Claude Code 有两种)
|
|
105
|
+
- 输入 API 基础 URL 和 Token
|
|
662
106
|
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
107
|
+
**步骤 2 — 可选配置:**
|
|
108
|
+
- 启动参数
|
|
109
|
+
- 模型配置
|
|
666
110
|
|
|
667
|
-
|
|
668
|
-
akm list --codex
|
|
111
|
+
### 认证模式
|
|
669
112
|
|
|
670
|
-
|
|
671
|
-
akm list --claude
|
|
113
|
+
Claude Code 支持两种认证模式:
|
|
672
114
|
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
115
|
+
| 模式 | 环境变量 | 适用场景 |
|
|
116
|
+
|------|---------|---------|
|
|
117
|
+
| API Key | `ANTHROPIC_API_KEY` + `ANTHROPIC_BASE_URL` | 大多数第三方代理 |
|
|
118
|
+
| Auth Token | `ANTHROPIC_AUTH_TOKEN` + `ANTHROPIC_BASE_URL` | 部分服务商 |
|
|
676
119
|
|
|
677
|
-
|
|
678
|
-
- ✅ 当前激活的供应商
|
|
679
|
-
- 🟢/🟡/🔴 API 可用性状态
|
|
680
|
-
- [Codex]/[Claude] IDE 类型标签
|
|
681
|
-
- 认证模式、环境变量、启动参数(Token 默认脱敏,可用 `--show-token` 显示完整)
|
|
682
|
-
- 创建时间、最后使用时间
|
|
120
|
+
Codex CLI 使用 `OPENAI_API_KEY` + `OPENAI_BASE_URL`。
|
|
683
121
|
|
|
684
|
-
|
|
685
|
-
显示当前激活的配置
|
|
122
|
+
### 切换供应商
|
|
686
123
|
|
|
687
124
|
```bash
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
# 显示完整 Token(默认脱敏,慎用)
|
|
691
|
-
akm current --show-token
|
|
692
|
-
```
|
|
125
|
+
# 交互式选择
|
|
126
|
+
akm
|
|
693
127
|
|
|
694
|
-
|
|
695
|
-
-
|
|
696
|
-
- IDE 类型
|
|
697
|
-
- 认证模式
|
|
698
|
-
- 环境变量设置
|
|
699
|
-
- 启动参数
|
|
700
|
-
- 模型配置
|
|
128
|
+
# 直接切换到指定供应商
|
|
129
|
+
akm my-provider
|
|
701
130
|
|
|
702
|
-
|
|
703
|
-
|
|
131
|
+
# 通过别名切换
|
|
132
|
+
akm prod
|
|
704
133
|
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
akm edit
|
|
134
|
+
# 仅显示 Claude Code 供应商
|
|
135
|
+
akm switch --claude
|
|
708
136
|
|
|
709
|
-
#
|
|
710
|
-
akm
|
|
137
|
+
# 仅显示 Codex CLI 供应商
|
|
138
|
+
akm switch --codex
|
|
711
139
|
```
|
|
712
140
|
|
|
713
|
-
|
|
714
|
-
- 显示名称
|
|
715
|
-
- 认证令牌
|
|
716
|
-
- 基础 URL
|
|
717
|
-
- 启动参数
|
|
718
|
-
- 模型配置
|
|
719
|
-
|
|
720
|
-
#### `akm remove`
|
|
721
|
-
删除供应商配置
|
|
141
|
+
### 快速启动
|
|
722
142
|
|
|
723
143
|
```bash
|
|
724
|
-
#
|
|
725
|
-
akm
|
|
144
|
+
# 使用上次的启动参数
|
|
145
|
+
akm my-provider -q
|
|
726
146
|
|
|
727
|
-
#
|
|
728
|
-
akm
|
|
147
|
+
# 以空参数启动
|
|
148
|
+
akm my-provider --no-args
|
|
729
149
|
```
|
|
730
150
|
|
|
731
|
-
|
|
732
|
-
验证供应商配置的有效性
|
|
733
|
-
|
|
734
|
-
```bash
|
|
735
|
-
# 验证单个供应商
|
|
736
|
-
akm validate my-provider
|
|
151
|
+
参数优先级:`--no-args` > `--quick`
|
|
737
152
|
|
|
738
|
-
|
|
739
|
-
akm validate prod
|
|
153
|
+
### 查看配置
|
|
740
154
|
|
|
741
|
-
|
|
742
|
-
|
|
155
|
+
```bash
|
|
156
|
+
# 列出所有供应商(默认不检测状态,秒出)
|
|
157
|
+
akm list
|
|
743
158
|
|
|
744
|
-
#
|
|
745
|
-
akm
|
|
159
|
+
# 列出并检测在线状态
|
|
160
|
+
akm list --status
|
|
746
161
|
|
|
747
|
-
#
|
|
748
|
-
akm
|
|
749
|
-
|
|
162
|
+
# 按 IDE 类型过滤
|
|
163
|
+
akm list --claude
|
|
164
|
+
akm list --codex
|
|
750
165
|
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
- ⚡ API 响应时间
|
|
754
|
-
- 🔍 配置完整性检查
|
|
755
|
-
- 💡 错误诊断和修复建议
|
|
166
|
+
# 显示完整 Token
|
|
167
|
+
akm list --show-token
|
|
756
168
|
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
═══════════════════════════════════════════════════════
|
|
761
|
-
|
|
762
|
-
✓ 状态: 可用
|
|
763
|
-
消息: 可用 120ms
|
|
764
|
-
响应时间: 120ms
|
|
765
|
-
|
|
766
|
-
配置详情:
|
|
767
|
-
供应商名称: my-production-api
|
|
768
|
-
显示名称: Production API
|
|
769
|
-
别名: prod
|
|
770
|
-
IDE: Claude Code
|
|
771
|
-
认证模式: api_key
|
|
772
|
-
基础URL: https://api.anthropic.com
|
|
169
|
+
# 查看当前激活的配置
|
|
170
|
+
akm current
|
|
171
|
+
akm current --show-token
|
|
773
172
|
```
|
|
774
173
|
|
|
775
|
-
###
|
|
776
|
-
|
|
777
|
-
akm 提供了两种快速启动模式,可以跳过参数选择,直接启动:
|
|
174
|
+
### 克隆供应商
|
|
778
175
|
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
使用上次的启动参数(如果没有则使用默认参数)快速启动:
|
|
176
|
+
快速基于现有配置创建新供应商:
|
|
782
177
|
|
|
783
178
|
```bash
|
|
784
|
-
#
|
|
785
|
-
akm
|
|
179
|
+
# 交互式选择源供应商
|
|
180
|
+
akm clone
|
|
786
181
|
|
|
787
|
-
#
|
|
788
|
-
akm
|
|
789
|
-
|
|
790
|
-
# 也适用于 switch 命令
|
|
791
|
-
akm switch my-provider -q
|
|
182
|
+
# 直接指定源供应商
|
|
183
|
+
akm clone my-provider
|
|
792
184
|
```
|
|
793
185
|
|
|
794
|
-
|
|
795
|
-
1. 首次启动时会记录你选择的参数
|
|
796
|
-
2. 下次使用 `-q` 时自动使用上次的参数
|
|
797
|
-
3. 如果没有历史记录,使用默认配置的参数
|
|
186
|
+
克隆时可以修改名称、认证模式、Token、基础 URL 等。
|
|
798
187
|
|
|
799
|
-
|
|
188
|
+
### MCP 服务器管理
|
|
800
189
|
|
|
801
|
-
|
|
190
|
+
管理 `~/.claude.json` 中的 MCP 服务器配置:
|
|
802
191
|
|
|
803
192
|
```bash
|
|
804
|
-
#
|
|
805
|
-
akm
|
|
806
|
-
|
|
807
|
-
# 通过别名以空参数启动
|
|
808
|
-
akm prod --no-args
|
|
809
|
-
```
|
|
810
|
-
|
|
811
|
-
**参数优先级:** `--no-args` > `--quick`
|
|
193
|
+
# 列出已配置的 MCP 服务器
|
|
194
|
+
akm mcp list
|
|
812
195
|
|
|
813
|
-
|
|
196
|
+
# 添加 MCP 服务器(支持预设模板和手动配置)
|
|
197
|
+
akm mcp add
|
|
814
198
|
|
|
815
|
-
|
|
199
|
+
# 编辑 MCP 服务器
|
|
200
|
+
akm mcp edit
|
|
816
201
|
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
```bash
|
|
820
|
-
akm add
|
|
821
|
-
# 输入供应商名称: my-production-api
|
|
822
|
-
# 输入显示名称: Production API
|
|
823
|
-
# 输入别名: prod ← 设置别名
|
|
202
|
+
# 删除 MCP 服务器
|
|
203
|
+
akm mcp remove
|
|
824
204
|
```
|
|
825
205
|
|
|
826
|
-
|
|
206
|
+
内置预设模板:Playwright、filesystem、memory、fetch。
|
|
827
207
|
|
|
828
|
-
|
|
829
|
-
akm edit my-production-api
|
|
830
|
-
# 可以修改或删除别名
|
|
831
|
-
```
|
|
208
|
+
### Claude Code 配置清理
|
|
832
209
|
|
|
833
|
-
|
|
210
|
+
清理 `~/.claude.json` 中的冗余数据(如过期的项目记录):
|
|
834
211
|
|
|
835
212
|
```bash
|
|
836
|
-
#
|
|
837
|
-
akm
|
|
213
|
+
# 清理配置
|
|
214
|
+
akm claude clean
|
|
838
215
|
|
|
839
|
-
#
|
|
840
|
-
akm
|
|
841
|
-
|
|
842
|
-
# 通过别名验证
|
|
843
|
-
akm validate prod
|
|
844
|
-
|
|
845
|
-
# 通过别名编辑
|
|
846
|
-
akm edit prod
|
|
216
|
+
# 分析配置(仅查看,不修改)
|
|
217
|
+
akm claude analyze
|
|
847
218
|
```
|
|
848
219
|
|
|
849
|
-
|
|
850
|
-
- 🔤 不区分大小写(`prod` 和 `PROD` 相同)
|
|
851
|
-
- ✏️ 可随时修改或删除
|
|
852
|
-
- 📋 在列表中会高亮显示
|
|
853
|
-
- 🎯 支持所有命令
|
|
220
|
+
### 备份与迁移
|
|
854
221
|
|
|
855
|
-
**示例:**
|
|
856
222
|
```bash
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
输出:
|
|
860
|
-
✅ ✓ [Claude] my-production-api (Production API) [别名: prod] - 可用 120ms
|
|
861
|
-
🔹 ✓ [Claude] my-dev-api (Development API) [别名: dev] - 可用 85ms
|
|
862
|
-
🔹 ✓ [Codex] my-codex (Codex Account) [别名: cx] - 可用 95ms
|
|
863
|
-
```
|
|
223
|
+
# 创建备份
|
|
224
|
+
akm backup
|
|
864
225
|
|
|
865
|
-
|
|
226
|
+
# 列出备份
|
|
227
|
+
akm backup --list
|
|
866
228
|
|
|
867
|
-
|
|
229
|
+
# 恢复备份
|
|
230
|
+
akm backup --restore <file>
|
|
868
231
|
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
akm my-provider
|
|
232
|
+
# 导出配置(可分享)
|
|
233
|
+
akm export my-config.json
|
|
872
234
|
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
◯ --search
|
|
876
|
-
◯ --full-auto
|
|
235
|
+
# 导出脱敏版本(配置模板)
|
|
236
|
+
akm export template.json --mask
|
|
877
237
|
|
|
878
|
-
#
|
|
238
|
+
# 导入配置
|
|
239
|
+
akm import my-config.json
|
|
240
|
+
akm import my-config.json --overwrite
|
|
879
241
|
```
|
|
880
242
|
|
|
881
|
-
|
|
882
|
-
```bash
|
|
883
|
-
akm my-provider
|
|
884
|
-
|
|
885
|
-
💡 正在使用上次的启动参数
|
|
886
|
-
|
|
887
|
-
? 选择启动参数:
|
|
888
|
-
◉ --continue ← 自动选中
|
|
889
|
-
◉ --search ← 自动选中
|
|
890
|
-
◯ --full-auto
|
|
891
|
-
```
|
|
243
|
+
### 配置验证
|
|
892
244
|
|
|
893
|
-
**与快速启动结合:**
|
|
894
245
|
```bash
|
|
895
|
-
#
|
|
896
|
-
akm my-provider
|
|
897
|
-
# 选择: --continue, --search
|
|
246
|
+
# 验证单个供应商
|
|
247
|
+
akm validate my-provider
|
|
898
248
|
|
|
899
|
-
#
|
|
900
|
-
akm
|
|
901
|
-
|
|
249
|
+
# 验证所有供应商
|
|
250
|
+
akm validate
|
|
251
|
+
|
|
252
|
+
# 按 IDE 类型过滤
|
|
253
|
+
akm validate --claude
|
|
254
|
+
akm validate --codex
|
|
902
255
|
```
|
|
903
256
|
|
|
904
|
-
|
|
257
|
+
验证内容:Token 有效性、API 响应时间、配置完整性。
|
|
905
258
|
|
|
906
|
-
|
|
907
|
-
导出配置到文件
|
|
259
|
+
---
|
|
908
260
|
|
|
909
|
-
|
|
910
|
-
# 导出到默认文件 (akm-config-{timestamp}.json)
|
|
911
|
-
akm export
|
|
261
|
+
## 配置示例
|
|
912
262
|
|
|
913
|
-
|
|
914
|
-
akm export my-backup.json
|
|
263
|
+
### Claude Code — API Key 模式
|
|
915
264
|
|
|
916
|
-
|
|
917
|
-
|
|
265
|
+
```yaml
|
|
266
|
+
供应商名称: my-claude
|
|
267
|
+
认证模式: api_key
|
|
268
|
+
Token (ANTHROPIC_API_KEY): sk-ant-api03-xxxxxxxx
|
|
269
|
+
基础URL (ANTHROPIC_BASE_URL): https://api.anthropic.com
|
|
918
270
|
```
|
|
919
271
|
|
|
920
|
-
|
|
921
|
-
```json
|
|
922
|
-
{
|
|
923
|
-
"version": "1.0",
|
|
924
|
-
"exportedAt": "2025-12-15T05:30:00.000Z",
|
|
925
|
-
"providers": {
|
|
926
|
-
"my-provider": {
|
|
927
|
-
"name": "my-provider",
|
|
928
|
-
"displayName": "My Provider",
|
|
929
|
-
"ideName": "claude",
|
|
930
|
-
"authMode": "api_key",
|
|
931
|
-
"authToken": "sk-ant-***",
|
|
932
|
-
"baseUrl": "https://api.anthropic.com"
|
|
933
|
-
}
|
|
934
|
-
},
|
|
935
|
-
"currentProvider": "my-provider"
|
|
936
|
-
}
|
|
937
|
-
```
|
|
272
|
+
### Claude Code — Auth Token 模式
|
|
938
273
|
|
|
939
|
-
|
|
940
|
-
|
|
274
|
+
```yaml
|
|
275
|
+
供应商名称: third-party
|
|
276
|
+
认证模式: auth_token
|
|
277
|
+
Token (ANTHROPIC_AUTH_TOKEN): your-auth-token
|
|
278
|
+
基础URL (ANTHROPIC_BASE_URL): https://your-provider.com/v1
|
|
279
|
+
```
|
|
941
280
|
|
|
942
|
-
|
|
943
|
-
# 导入配置(跳过已存在的供应商)
|
|
944
|
-
akm import my-backup.json
|
|
281
|
+
### Codex CLI
|
|
945
282
|
|
|
946
|
-
|
|
947
|
-
|
|
283
|
+
```yaml
|
|
284
|
+
供应商名称: my-codex
|
|
285
|
+
API Key (OPENAI_API_KEY): sk-xxxxxxxx
|
|
286
|
+
基础URL (OPENAI_BASE_URL): https://api.openai.com
|
|
948
287
|
```
|
|
949
288
|
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
#### `akm backup`
|
|
953
|
-
备份和恢复配置
|
|
289
|
+
### 多账号配置
|
|
954
290
|
|
|
955
291
|
```bash
|
|
956
|
-
#
|
|
957
|
-
akm
|
|
958
|
-
|
|
959
|
-
# 指定备份目录
|
|
960
|
-
akm backup --dir /path/to/backups
|
|
961
|
-
|
|
962
|
-
# 列出所有备份
|
|
963
|
-
akm backup --list
|
|
292
|
+
# 工作账号
|
|
293
|
+
akm add --claude # 名称: work
|
|
964
294
|
|
|
965
|
-
#
|
|
966
|
-
akm
|
|
295
|
+
# 个人账号
|
|
296
|
+
akm add --claude # 名称: personal
|
|
967
297
|
|
|
968
|
-
#
|
|
969
|
-
akm
|
|
298
|
+
# 快速切换
|
|
299
|
+
akm work -q
|
|
300
|
+
akm personal -q
|
|
970
301
|
```
|
|
971
302
|
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
## 🎨 IDE 支持
|
|
975
|
-
|
|
976
|
-
### Claude Code (Anthropic 官方)
|
|
977
|
-
|
|
978
|
-
**认证模式:**
|
|
979
|
-
- **oauth_token** - OAuth 令牌模式(官方推荐)
|
|
980
|
-
- **api_key** - 通用 API 密钥模式
|
|
981
|
-
- **auth_token** - 认证令牌模式
|
|
982
|
-
|
|
983
|
-
**切换原理:**
|
|
303
|
+
---
|
|
984
304
|
|
|
985
|
-
|
|
305
|
+
## 交互式界面
|
|
986
306
|
|
|
987
|
-
|
|
988
|
-
2. **构建环境变量** → 根据认证模式构建相应的环境变量
|
|
989
|
-
3. **启动子进程** → 使用 `spawn('claude', args, { env })` 启动 Claude Code
|
|
307
|
+
### 主界面
|
|
990
308
|
|
|
991
309
|
```
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
310
|
+
? 请选择要切换的供应商 (总计 3 个):
|
|
311
|
+
🟢 [Claude] my-claude (My Claude Account) --- 上次使用 - 可用
|
|
312
|
+
🟢 [Claude] work (Work Account) - 可用
|
|
313
|
+
❯ 🟢 [Codex] my-codex (Codex Account) - 可用
|
|
314
|
+
──────────────
|
|
315
|
+
➕ 添加新供应商
|
|
316
|
+
📋 供应商管理 (编辑/删除)
|
|
317
|
+
📁 打开配置文件
|
|
318
|
+
❌ 退出
|
|
1000
319
|
```
|
|
1001
320
|
|
|
1002
|
-
|
|
321
|
+
### 状态图标
|
|
1003
322
|
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
323
|
+
| 图标 | 含义 |
|
|
324
|
+
|-----|------|
|
|
325
|
+
| 🟢 | API 可用 |
|
|
326
|
+
| 🟡 | 有限可用/响应慢 |
|
|
327
|
+
| 🔴 | API 不可用 |
|
|
328
|
+
| ⏳ | 正在检测 |
|
|
329
|
+
| ⚪ | 未知状态 |
|
|
1011
330
|
|
|
1012
|
-
|
|
1013
|
-
- `--continue` - 继续上次对话
|
|
1014
|
-
- `--dangerously-skip-permissions` - 跳过权限检查(沙盒环境)
|
|
331
|
+
### 快捷键
|
|
1015
332
|
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
333
|
+
| 按键 | 功能 |
|
|
334
|
+
|------|------|
|
|
335
|
+
| ↑/↓ | 上下导航 |
|
|
336
|
+
| Space | 切换选中(多选) |
|
|
337
|
+
| A | 全选 |
|
|
338
|
+
| I | 反选 |
|
|
339
|
+
| Enter | 确认 |
|
|
340
|
+
| ESC | 返回上级 / 取消 |
|
|
341
|
+
| Ctrl+C | 退出程序 |
|
|
1021
342
|
|
|
1022
|
-
|
|
343
|
+
---
|
|
1023
344
|
|
|
1024
|
-
|
|
1025
|
-
|
|
345
|
+
## 架构设计
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
┌──────────────────────────────────────────────────────┐
|
|
349
|
+
│ akm (CLI 入口) │
|
|
350
|
+
├──────────────────────────────────────────────────────┤
|
|
351
|
+
│ CommandRegistry 命令注册中心,懒加载命令模块 │
|
|
352
|
+
│ ├── 核心: add, switch, remove, list, current, edit │
|
|
353
|
+
│ ├── 运维: export, import, backup, validate, clone │
|
|
354
|
+
│ └── 工具: stats, health, batch, benchmark, │
|
|
355
|
+
│ claude-clean, mcp │
|
|
356
|
+
├──────────────────────────────────────────────────────┤
|
|
357
|
+
│ ConfigManager 配置管理 (~/.akm-config.json) │
|
|
358
|
+
│ ├── 懒加载 & 缓存 │
|
|
359
|
+
│ ├── 版本迁移 │
|
|
360
|
+
│ └── 文件权限管理 (0600) │
|
|
361
|
+
├──────────────────────────────────────────────────────┤
|
|
362
|
+
│ IDE 启动器 │
|
|
363
|
+
│ ├── env-launcher.js Claude Code(环境变量注入) │
|
|
364
|
+
│ └── codex-launcher.js Codex CLI(配置文件+环境变量) │
|
|
365
|
+
└──────────────────────────────────────────────────────┘
|
|
366
|
+
```
|
|
1026
367
|
|
|
1027
368
|
**切换原理:**
|
|
1028
369
|
|
|
1029
|
-
|
|
370
|
+
- **Claude Code** — 通过环境变量注入启动子进程,不修改配置文件,切换只在当前会话生效
|
|
371
|
+
- **Codex CLI** — 写入 `~/.codex/auth.json` 和 `config.toml`,切换后直接运行 `codex` 也能使用新配置
|
|
1030
372
|
|
|
1031
|
-
|
|
1032
|
-
2. **更新 config.toml** → 设置 `preferred_auth_method = "apikey"`
|
|
1033
|
-
3. **写入 auth.json** → 包含选中供应商的 API Key
|
|
1034
|
-
4. **注入环境变量** → 启动时传递 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`
|
|
373
|
+
**环境变量映射:**
|
|
1035
374
|
|
|
1036
375
|
```
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
└── backup-20251217_120000/
|
|
1042
|
-
├── config.toml
|
|
1043
|
-
└── auth.json
|
|
1044
|
-
```
|
|
376
|
+
Claude Code:
|
|
377
|
+
api_key → ANTHROPIC_API_KEY + ANTHROPIC_BASE_URL
|
|
378
|
+
auth_token → ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL
|
|
379
|
+
(可选) → ANTHROPIC_MODEL, ANTHROPIC_SMALL_FAST_MODEL
|
|
1045
380
|
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
**启动参数:**
|
|
1049
|
-
- `resume` - 继续上次对话(子命令)
|
|
1050
|
-
- `--full-auto` - 全自动模式(自动批准 + 工作区沙盒)⚠️ 与 `--dangerously-bypass-approvals-and-sandbox` 互斥
|
|
1051
|
-
- `--dangerously-bypass-approvals-and-sandbox` - 跳过所有安全检查 ⚠️ 与 `--full-auto` 互斥
|
|
1052
|
-
- `--search` - 启用网页搜索
|
|
1053
|
-
|
|
1054
|
-
**配置导入:**
|
|
1055
|
-
```bash
|
|
1056
|
-
akm add --codex
|
|
1057
|
-
# 选择 "从 ~/.codex 导入现有配置" 自动读取现有配置
|
|
1058
|
-
# 或选择 "手动输入配置" 手动设置
|
|
381
|
+
Codex CLI:
|
|
382
|
+
→ OPENAI_API_KEY + OPENAI_BASE_URL
|
|
1059
383
|
```
|
|
1060
384
|
|
|
1061
|
-
|
|
1062
|
-
```bash
|
|
1063
|
-
# 方式1:从现有 Codex 配置导入
|
|
1064
|
-
akm add --codex
|
|
1065
|
-
# -> 选择 "从 ~/.codex 导入现有配置"
|
|
1066
|
-
# -> 自动读取 ~/.codex/auth.json 和 config.toml
|
|
1067
|
-
|
|
1068
|
-
# 方式2:手动配置
|
|
1069
|
-
akm add --codex
|
|
1070
|
-
# -> 选择 "手动输入配置"
|
|
1071
|
-
# -> 输入 API Key 和 Base URL
|
|
1072
|
-
```
|
|
385
|
+
---
|
|
1073
386
|
|
|
1074
|
-
##
|
|
387
|
+
## 配置文件
|
|
1075
388
|
|
|
1076
|
-
|
|
389
|
+
位置:`~/.akm-config.json`
|
|
1077
390
|
|
|
1078
|
-
**完整示例:**
|
|
1079
391
|
```json
|
|
1080
392
|
{
|
|
1081
393
|
"version": "2.0.0",
|
|
@@ -1083,12 +395,11 @@ akm add --codex
|
|
|
1083
395
|
"providers": {
|
|
1084
396
|
"my-claude": {
|
|
1085
397
|
"name": "my-claude",
|
|
1086
|
-
"displayName": "Claude
|
|
398
|
+
"displayName": "My Claude",
|
|
1087
399
|
"ideName": "claude",
|
|
1088
|
-
"authMode": "
|
|
1089
|
-
"authToken": "sk-ant-
|
|
1090
|
-
"baseUrl":
|
|
1091
|
-
"tokenType": null,
|
|
400
|
+
"authMode": "api_key",
|
|
401
|
+
"authToken": "sk-ant-api03-xxx",
|
|
402
|
+
"baseUrl": "https://api.anthropic.com",
|
|
1092
403
|
"launchArgs": ["--continue"],
|
|
1093
404
|
"models": {
|
|
1094
405
|
"primary": "claude-sonnet-4",
|
|
@@ -1096,280 +407,62 @@ akm add --codex
|
|
|
1096
407
|
},
|
|
1097
408
|
"createdAt": "2025-12-15T05:00:00.000Z",
|
|
1098
409
|
"lastUsed": "2025-12-15T05:30:00.000Z"
|
|
1099
|
-
},
|
|
1100
|
-
"my-codex": {
|
|
1101
|
-
"name": "my-codex",
|
|
1102
|
-
"displayName": "Codex CLI",
|
|
1103
|
-
"ideName": "codex",
|
|
1104
|
-
"authMode": "openai_api_key",
|
|
1105
|
-
"authToken": "sk-xxx",
|
|
1106
|
-
"baseUrl": "https://api.openai.com",
|
|
1107
|
-
"tokenType": null,
|
|
1108
|
-
"launchArgs": ["resume", "--full-auto"],
|
|
1109
|
-
"createdAt": "2025-12-15T05:00:00.000Z",
|
|
1110
|
-
"lastUsed": "2025-12-15T05:25:00.000Z"
|
|
1111
410
|
}
|
|
1112
411
|
}
|
|
1113
412
|
}
|
|
1114
413
|
```
|
|
1115
414
|
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
```
|
|
1119
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
1120
|
-
│ akm (CLI 入口) │
|
|
1121
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
1122
|
-
│ CommandRegistry 命令注册中心,懒加载命令模块 │
|
|
1123
|
-
│ ├── add 添加供应商 │
|
|
1124
|
-
│ ├── switch 切换供应商(默认命令) │
|
|
1125
|
-
│ ├── list 列出供应商 │
|
|
1126
|
-
│ ├── edit 编辑供应商 │
|
|
1127
|
-
│ ├── remove 删除供应商 │
|
|
1128
|
-
│ ├── export/import 导入导出 │
|
|
1129
|
-
│ └── backup 备份恢复 │
|
|
1130
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
1131
|
-
│ ConfigManager 配置管理(~/.akm-config.json) │
|
|
1132
|
-
│ ├── 懒加载 & 缓存 │
|
|
1133
|
-
│ ├── 版本迁移 │
|
|
1134
|
-
│ └── 文件权限管理 (0600) │
|
|
1135
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
1136
|
-
│ IDE 启动器 │
|
|
1137
|
-
│ ├── env-launcher.js Claude Code(环境变量注入) │
|
|
1138
|
-
│ └── codex-launcher.js Codex CLI(配置文件 + 环境变量) │
|
|
1139
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
1140
|
-
```
|
|
1141
|
-
|
|
1142
|
-
**核心设计原则:**
|
|
1143
|
-
|
|
1144
|
-
1. **命令懒加载** - 通过 `CommandRegistry` 按需加载命令模块,减少启动时间
|
|
1145
|
-
2. **配置缓存** - `ConfigManager` 单例模式,避免重复读取配置文件
|
|
1146
|
-
3. **IDE 差异化处理** - Claude Code 用环境变量,Codex CLI 写配置文件
|
|
1147
|
-
4. **安全优先** - 配置文件权限 0600,Token 默认脱敏显示
|
|
1148
|
-
5. **自动备份** - 切换配置前自动备份,支持回滚
|
|
1149
|
-
|
|
1150
|
-
## 🎯 使用场景
|
|
1151
|
-
|
|
1152
|
-
### 场景 1: 同时使用多个 API Key
|
|
1153
|
-
|
|
1154
|
-
```bash
|
|
1155
|
-
# 添加工作账号
|
|
1156
|
-
akm add --claude
|
|
1157
|
-
# 名称: work
|
|
1158
|
-
# 显示名称: Work Account
|
|
1159
|
-
# Token: sk-ant-work-xxx
|
|
1160
|
-
|
|
1161
|
-
# 添加个人账号
|
|
1162
|
-
akm add --claude
|
|
1163
|
-
# 名称: personal
|
|
1164
|
-
# 显示名称: Personal Account
|
|
1165
|
-
# Token: sk-ant-personal-xxx
|
|
1166
|
-
|
|
1167
|
-
# 快速切换
|
|
1168
|
-
akm # 选择 work 或 personal
|
|
1169
|
-
```
|
|
1170
|
-
|
|
1171
|
-
### 场景 2: Claude Code 和 Codex CLI 混合使用
|
|
1172
|
-
|
|
1173
|
-
```bash
|
|
1174
|
-
# 添加 Claude Code 配置
|
|
1175
|
-
akm add --claude
|
|
1176
|
-
|
|
1177
|
-
# 添加 Codex CLI 配置
|
|
1178
|
-
akm add --codex
|
|
1179
|
-
|
|
1180
|
-
# 查看所有配置(带 IDE 标签)
|
|
1181
|
-
akm list
|
|
1182
|
-
|
|
1183
|
-
# 仅切换 Codex 供应商
|
|
1184
|
-
akm switch --codex
|
|
1185
|
-
|
|
1186
|
-
# 仅切换 Claude 供应商
|
|
1187
|
-
akm switch --claude
|
|
1188
|
-
```
|
|
1189
|
-
|
|
1190
|
-
### 场景 3: 团队配置分享
|
|
415
|
+
---
|
|
1191
416
|
|
|
1192
|
-
|
|
1193
|
-
# 导出配置模板(脱敏)
|
|
1194
|
-
akm export team-template.json --mask
|
|
417
|
+
## 常见问题
|
|
1195
418
|
|
|
1196
|
-
|
|
1197
|
-
akm import team-template.json
|
|
1198
|
-
akm edit my-provider # 设置自己的 Token
|
|
1199
|
-
```
|
|
419
|
+
### 切换 Codex 后提示 "Token data is not available"
|
|
1200
420
|
|
|
1201
|
-
|
|
421
|
+
`~/.codex/auth.json` 格式不正确。重新切换即可:
|
|
1202
422
|
|
|
1203
423
|
```bash
|
|
1204
|
-
|
|
1205
|
-
akm export my-config.json
|
|
1206
|
-
|
|
1207
|
-
# 新机器:导入配置
|
|
1208
|
-
akm import my-config.json
|
|
424
|
+
akm my-codex
|
|
1209
425
|
```
|
|
1210
426
|
|
|
1211
|
-
|
|
427
|
+
akm 会自动设置 `preferred_auth_method = "apikey"` 并写入正确格式的 `auth.json`。
|
|
1212
428
|
|
|
1213
|
-
|
|
1214
|
-
# 创建备份
|
|
1215
|
-
akm backup
|
|
429
|
+
### Claude Code 切换后环境变量不生效
|
|
1216
430
|
|
|
1217
|
-
|
|
1218
|
-
akm backup --list
|
|
431
|
+
`~/.claude/settings.json` 中可能存在冲突的环境变量。切换时 akm 会自动检测并提示处理。
|
|
1219
432
|
|
|
1220
|
-
|
|
1221
|
-
akm backup --restore akm-backup-2025-12-15T05-30-00.json
|
|
1222
|
-
```
|
|
433
|
+
### 找不到 claude/codex 命令
|
|
1223
434
|
|
|
1224
|
-
|
|
435
|
+
需要先安装对应的 CLI 工具:
|
|
1225
436
|
|
|
1226
437
|
```bash
|
|
1227
|
-
#
|
|
1228
|
-
|
|
1229
|
-
# 名称: my-production-api
|
|
1230
|
-
# 别名: prod
|
|
1231
|
-
# 配置完成...
|
|
1232
|
-
|
|
1233
|
-
# 2. 首次启动,选择参数
|
|
1234
|
-
akm prod
|
|
1235
|
-
# 选择: --continue, --search
|
|
1236
|
-
# ✨ 参数会自动记录
|
|
1237
|
-
|
|
1238
|
-
# 3. 后续快速启动(0.5秒启动)
|
|
1239
|
-
akm prod -q
|
|
1240
|
-
# 💡 自动使用上次的参数
|
|
1241
|
-
|
|
1242
|
-
# 4. 验证配置
|
|
1243
|
-
akm validate
|
|
1244
|
-
# 📊 批量验证所有供应商
|
|
438
|
+
# Claude Code
|
|
439
|
+
npm install -g @anthropic-ai/claude-code
|
|
1245
440
|
|
|
1246
|
-
#
|
|
1247
|
-
|
|
1248
|
-
akm personal -q # 下班后切换个人账号
|
|
1249
|
-
akm dev -q # 开发时使用测试账号
|
|
441
|
+
# Codex CLI
|
|
442
|
+
npm install -g @openai/codex
|
|
1250
443
|
```
|
|
1251
444
|
|
|
1252
|
-
|
|
1253
|
-
- ⚡ 启动时间:从 10 秒 → 2 秒(80% 提升)
|
|
1254
|
-
- 🎯 操作步骤:从 3 步 → 1 步
|
|
1255
|
-
- 💡 无需记忆:自动记住所有参数
|
|
445
|
+
### 配置文件权限问题
|
|
1256
446
|
|
|
1257
|
-
|
|
447
|
+
akm 会自动设置权限为 `0600`。手动修复:
|
|
1258
448
|
|
|
1259
449
|
```bash
|
|
1260
|
-
|
|
1261
|
-
akm add
|
|
1262
|
-
# 名称: company-prod
|
|
1263
|
-
# 别名: prod
|
|
1264
|
-
# 配置 API 和默认参数...
|
|
1265
|
-
|
|
1266
|
-
# 导出配置模板(脱敏)
|
|
1267
|
-
akm export team-config.json --mask
|
|
1268
|
-
|
|
1269
|
-
# 团队成员:导入并配置
|
|
1270
|
-
akm import team-config.json
|
|
1271
|
-
akm edit prod # 填入自己的 Token
|
|
1272
|
-
|
|
1273
|
-
# 验证配置
|
|
1274
|
-
akm validate prod
|
|
1275
|
-
|
|
1276
|
-
# 日常使用
|
|
1277
|
-
akm prod -q # 快速启动,无需记忆命令
|
|
450
|
+
chmod 600 ~/.akm-config.json
|
|
1278
451
|
```
|
|
1279
452
|
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
某些参数不能同时使用,akm 会自动检测并提示:
|
|
1283
|
-
|
|
1284
|
-
**Codex CLI:**
|
|
1285
|
-
- `--full-auto` ⚔️ `--dangerously-bypass-approvals-and-sandbox`
|
|
1286
|
-
|
|
1287
|
-
如果同时选择互斥参数,会显示警告并要求重新选择。
|
|
1288
|
-
|
|
1289
|
-
## ⌨️ 快捷键
|
|
1290
|
-
|
|
1291
|
-
- **↑/↓** - 上下导航
|
|
1292
|
-
- **Space** - 切换选中(多选)
|
|
1293
|
-
- **Enter** - 确认
|
|
1294
|
-
- **ESC** - 返回上级菜单 / 取消操作
|
|
1295
|
-
- **Ctrl+C** - 退出程序
|
|
453
|
+
---
|
|
1296
454
|
|
|
1297
|
-
##
|
|
455
|
+
## 系统要求
|
|
1298
456
|
|
|
1299
457
|
- Node.js >= 14.0.0
|
|
1300
458
|
- macOS / Linux / Windows
|
|
1301
459
|
|
|
1302
|
-
##
|
|
1303
|
-
|
|
1304
|
-
### v1.0.40 (最新) - 🚀 体验大升级
|
|
1305
|
-
|
|
1306
|
-
**🎉 Phase 1 优化完成 - 效率提升 80%**
|
|
1307
|
-
|
|
1308
|
-
#### ⚡ 快速启动模式
|
|
1309
|
-
- ✨ 新增 `-q, --quick` 选项:使用上次参数快速启动
|
|
1310
|
-
- ✨ 新增 `--no-args` 选项:以空参数快速启动
|
|
1311
|
-
- 🎯 启动时间从 10 秒降至 2 秒
|
|
1312
|
-
|
|
1313
|
-
#### 🧠 智能记忆功能
|
|
1314
|
-
- ✨ 自动记录上次使用的启动参数
|
|
1315
|
-
- ✨ 下次启动时优先显示上次的选择
|
|
1316
|
-
- 📊 记录使用次数和最后使用时间
|
|
1317
|
-
|
|
1318
|
-
#### 🏷️ 别名系统
|
|
1319
|
-
- ✨ 为供应商设置简短别名
|
|
1320
|
-
- ✨ 通过别名快速访问:`akm prod -q`
|
|
1321
|
-
- 🔤 别名查找不区分大小写
|
|
1322
|
-
- 📋 在列表中高亮显示别名
|
|
1323
|
-
|
|
1324
|
-
#### ✅ 配置验证
|
|
1325
|
-
- ✨ 新增 `akm validate` 命令
|
|
1326
|
-
- ✅ 验证 Token 有效性和 API 可用性
|
|
1327
|
-
- ⚡ 显示 API 响应时间
|
|
1328
|
-
- 🔍 提供错误诊断和修复建议
|
|
1329
|
-
- 📊 批量验证所有供应商
|
|
1330
|
-
|
|
1331
|
-
#### 🧪 测试覆盖
|
|
1332
|
-
- 🎯 新增 41 个单元测试
|
|
1333
|
-
- ✅ 总测试数达到 326 个
|
|
1334
|
-
- 💯 测试通过率 100%
|
|
1335
|
-
|
|
1336
|
-
### v1.0.37
|
|
1337
|
-
- 🐛 修复 Codex 切换时无法更新 `~/.codex/auth.json` 的问题
|
|
1338
|
-
- ✨ 切换 Codex 供应商时自动写入配置文件
|
|
1339
|
-
- ✨ 自动设置 `preferred_auth_method = "apikey"`
|
|
1340
|
-
- 💾 切换前自动备份现有 Codex 配置
|
|
1341
|
-
|
|
1342
|
-
### v1.0.27
|
|
1343
|
-
- ✨ 新增参数互斥校验
|
|
1344
|
-
- ✨ 新增 `export` / `import` / `backup` 命令
|
|
1345
|
-
- 🧪 测试覆盖率提升 46%
|
|
1346
|
-
|
|
1347
|
-
### v1.0.26
|
|
1348
|
-
- ✨ Codex 添加 `resume` 子命令支持
|
|
1349
|
-
|
|
1350
|
-
### v1.0.25
|
|
1351
|
-
- 🐛 修复 Codex 启动参数
|
|
1352
|
-
|
|
1353
|
-
### v1.0.23
|
|
1354
|
-
- ✨ list 和 switch 命令显示 IDE 类型标签
|
|
1355
|
-
|
|
1356
|
-
### v1.0.22
|
|
1357
|
-
- ✨ 完整的 Codex CLI 支持优化
|
|
1358
|
-
|
|
1359
|
-
## 🤝 贡献
|
|
1360
|
-
|
|
1361
|
-
欢迎提交 Issue 和 Pull Request!
|
|
1362
|
-
|
|
1363
|
-
## 📄 许可证
|
|
460
|
+
## 许可证
|
|
1364
461
|
|
|
1365
462
|
MIT License
|
|
1366
463
|
|
|
1367
|
-
##
|
|
1368
|
-
|
|
1369
|
-
- **GitHub**: https://github.com/pikecode/api-key-manager
|
|
1370
|
-
- **NPM**: https://www.npmjs.com/package/@pikecode/api-key-manager
|
|
1371
|
-
- **Issues**: https://github.com/pikecode/api-key-manager/issues
|
|
1372
|
-
|
|
1373
|
-
---
|
|
464
|
+
## 链接
|
|
1374
465
|
|
|
1375
|
-
|
|
466
|
+
- [NPM](https://www.npmjs.com/package/@pikecode/api-key-manager)
|
|
467
|
+
- [GitHub](https://github.com/pikecode/api-key-manager)
|
|
468
|
+
- [Issues](https://github.com/pikecode/api-key-manager/issues)
|