@minniexcode/codex-switch 0.0.3 → 0.0.4
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.AI.md +8 -3
- package/README.md +160 -91
- package/dist/app/edit-provider.js +64 -0
- package/dist/app/import-providers.js +10 -1
- package/dist/app/list-backups.js +17 -0
- package/dist/app/rollback-backup.js +30 -0
- package/dist/app/setup-codex.js +138 -0
- package/dist/app/show-provider.js +22 -0
- package/dist/cli/add-interactive.js +25 -31
- package/dist/cli/args.js +8 -5
- package/dist/cli/help.js +70 -12
- package/dist/cli/interactive.js +67 -8
- package/dist/cli/output.js +34 -1
- package/dist/cli/prompt.js +19 -2
- package/dist/cli.js +160 -12
- package/dist/domain/backups.js +103 -0
- package/dist/domain/errors.js +3 -3
- package/dist/domain/providers.js +10 -0
- package/dist/domain/setup.js +30 -0
- package/dist/infra/backup-repo.js +65 -6
- package/dist/infra/codex-cli.js +62 -0
- package/dist/infra/codex-discovery.js +48 -0
- package/dist/infra/codex-paths.js +14 -1
- package/dist/infra/providers-repo.js +29 -0
- package/docs/PRD/codex-switch-prd-v0.1.0.md +393 -0
- package/docs/{codex-switch-prd.md → PRD/codex-switch-prd.md} +9 -5
- package/docs/cli-usage.md +580 -0
- package/docs/codex-switch-command-design.md +1 -1
- package/docs/codex-switch-product-overview.md +1 -1
- package/docs/codex-switch-product-research.md +2 -2
- package/docs/codex-switch-technical-architecture.md +1 -1
- package/docs/codex-switch-v0.0.4-design.md +874 -0
- package/package.json +1 -1
|
@@ -0,0 +1,580 @@
|
|
|
1
|
+
# codex-switch CLI Usage
|
|
2
|
+
|
|
3
|
+
本文档详细介绍 `codex-switch` 在 `0.0.4` 版本中的命令、参数、交互规则和典型使用方式。
|
|
4
|
+
|
|
5
|
+
可执行命令名:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
codexs
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 1. 概览
|
|
12
|
+
|
|
13
|
+
`codex-switch` 用来管理本地 Codex 目录中的 provider/profile 配置,默认目标目录是 `~/.codex`。
|
|
14
|
+
|
|
15
|
+
它的核心设计有三点:
|
|
16
|
+
|
|
17
|
+
1. 本地优先,不依赖远端服务保存状态
|
|
18
|
+
2. 写入前先备份,异常时支持回滚
|
|
19
|
+
3. 同时兼容人类终端使用和脚本/Agent 自动化调用
|
|
20
|
+
|
|
21
|
+
默认管理的文件:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
~/.codex/
|
|
25
|
+
config.toml
|
|
26
|
+
auth.json
|
|
27
|
+
providers.json
|
|
28
|
+
backups/
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 2. 安装与入口
|
|
32
|
+
|
|
33
|
+
全局安装:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm install -g @minniexcode/codex-switch
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
临时执行:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx @minniexcode/codex-switch --help
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
查看总帮助:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
codexs --help
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
查看版本:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
codexs --version
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 3. 全局规则
|
|
58
|
+
|
|
59
|
+
### 3.1 全局参数
|
|
60
|
+
|
|
61
|
+
所有命令都支持以下全局参数:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
--json
|
|
65
|
+
--codex-dir <path>
|
|
66
|
+
--help
|
|
67
|
+
--version
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
说明:
|
|
71
|
+
|
|
72
|
+
- `--json`:输出标准 JSON 结果,并禁用所有交互 prompt
|
|
73
|
+
- `--codex-dir <path>`:将目标目录从默认 `~/.codex` 改成指定路径
|
|
74
|
+
- `--help`:查看命令帮助
|
|
75
|
+
- `--version`:输出当前 CLI 版本
|
|
76
|
+
|
|
77
|
+
### 3.2 交互规则
|
|
78
|
+
|
|
79
|
+
CLI 的交互行为遵循以下规则:
|
|
80
|
+
|
|
81
|
+
- 只有在真实 TTY 终端下才会出现 prompt
|
|
82
|
+
- 只要传入 `--json`,就绝不会出现 prompt
|
|
83
|
+
- 面向脚本或 CI 的调用应显式传参,并优先使用 `--json`
|
|
84
|
+
- 某些危险操作在交互模式下会确认,在非交互模式下则要求显式参数
|
|
85
|
+
|
|
86
|
+
### 3.3 备份与回滚
|
|
87
|
+
|
|
88
|
+
所有受管理的写操作都会先备份相关文件,再执行写入。
|
|
89
|
+
|
|
90
|
+
典型受影响命令包括:
|
|
91
|
+
|
|
92
|
+
- `setup`
|
|
93
|
+
- `add`
|
|
94
|
+
- `edit`
|
|
95
|
+
- `switch`
|
|
96
|
+
- `remove`
|
|
97
|
+
- `import`
|
|
98
|
+
|
|
99
|
+
如果操作失败,命令内部会尽量自动回滚。你也可以稍后手动执行:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
codexs rollback
|
|
103
|
+
codexs rollback <backup-id>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## 4. 读取类命令
|
|
107
|
+
|
|
108
|
+
### 4.1 `list`
|
|
109
|
+
|
|
110
|
+
列出 `providers.json` 中的全部 provider。
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
codexs list [--json] [--codex-dir <path>]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
示例:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
codexs list
|
|
120
|
+
codexs list --json
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
适用场景:
|
|
124
|
+
|
|
125
|
+
- 查看当前已管理 provider 列表
|
|
126
|
+
- 给后续 `switch`、`show`、`edit`、`remove` 提供候选名称
|
|
127
|
+
|
|
128
|
+
### 4.2 `show`
|
|
129
|
+
|
|
130
|
+
查看单个 provider 的完整记录。
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
codexs show <provider> [--json] [--codex-dir <path>]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
示例:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
codexs show packycode
|
|
140
|
+
codexs show packycode --json
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
说明:
|
|
144
|
+
|
|
145
|
+
- 普通文本输出会默认隐藏 `apiKey`
|
|
146
|
+
- `--json` 模式会输出完整 provider 数据,适合本地自动化
|
|
147
|
+
|
|
148
|
+
### 4.3 `current`
|
|
149
|
+
|
|
150
|
+
查看 `config.toml` 当前激活的顶层 profile。
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
codexs current [--json] [--codex-dir <path>]
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
示例:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
codexs current
|
|
160
|
+
codexs current --json
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
说明:
|
|
164
|
+
|
|
165
|
+
- 如果缺少 `config.toml`,或配置中没有顶层 profile,会直接报错
|
|
166
|
+
|
|
167
|
+
### 4.4 `status`
|
|
168
|
+
|
|
169
|
+
输出本地 Codex 目录的快速状态摘要。
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
codexs status [--json] [--codex-dir <path>]
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
示例:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
codexs status
|
|
179
|
+
codexs status --json
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
通常会覆盖这些信息:
|
|
183
|
+
|
|
184
|
+
- 关键文件是否存在
|
|
185
|
+
- 当前激活 profile 是什么
|
|
186
|
+
- 当前运行态是否能在受管理的 provider 映射中找到
|
|
187
|
+
|
|
188
|
+
### 4.5 `backups list`
|
|
189
|
+
|
|
190
|
+
查看历史备份清单。
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
codexs backups list [--json] [--codex-dir <path>]
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
示例:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
codexs backups list
|
|
200
|
+
codexs backups list --json
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
说明:
|
|
204
|
+
|
|
205
|
+
- 返回结果按 `createdAt` 倒序排列
|
|
206
|
+
- 损坏的备份 manifest 会被跳过,并给出 warning,不会导致整个命令失败
|
|
207
|
+
|
|
208
|
+
## 5. 变更类命令
|
|
209
|
+
|
|
210
|
+
### 5.1 `setup`
|
|
211
|
+
|
|
212
|
+
从现有 Codex 目录初始化 `providers.json`。
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
codexs setup [--json] [--codex-dir <path>] [--merge|--overwrite]
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
示例:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
codexs setup
|
|
222
|
+
codexs setup --overwrite --json
|
|
223
|
+
codexs setup --merge --codex-dir ./.tmp-codex
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
行为说明:
|
|
227
|
+
|
|
228
|
+
- 读取 `config.toml` 中已有 profile
|
|
229
|
+
- 收集每个 profile 对应的 provider 记录
|
|
230
|
+
- 在受管备份流程下写入 `providers.json`
|
|
231
|
+
- 成功后会自动运行一次 `doctor`
|
|
232
|
+
|
|
233
|
+
交互模式:
|
|
234
|
+
|
|
235
|
+
- 如果 `providers.json` 已存在,会让你选择 `merge`、`overwrite` 或取消
|
|
236
|
+
- 如果需要补全 provider 细节,会在 TTY 中询问
|
|
237
|
+
|
|
238
|
+
非交互模式:
|
|
239
|
+
|
|
240
|
+
- `providers.json` 已存在时,必须显式传入 `--merge` 或 `--overwrite`
|
|
241
|
+
- `--json` 模式下不会进入任何引导式输入
|
|
242
|
+
|
|
243
|
+
### 5.2 `add`
|
|
244
|
+
|
|
245
|
+
新增一个 provider。
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
codexs add <provider> --profile <name> --api-key <key> [--base-url <url>] [--note <text>] [--tag <tag> ...]
|
|
249
|
+
codexs add [--profile <name>] [--api-key <key>] [--base-url <url>] [--note <text>] [--tag <tag> ...]
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
示例:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
codexs add packycode --profile packycode --api-key sk-xxx
|
|
256
|
+
codexs add packycode --profile packycode --api-key sk-xxx --tag paid --tag daily
|
|
257
|
+
codexs add
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
字段说明:
|
|
261
|
+
|
|
262
|
+
- `provider`:provider 名称,也是后续 `switch/show/edit/remove` 的标识
|
|
263
|
+
- `--profile`:写入到 `config.toml` 的 profile 名称
|
|
264
|
+
- `--api-key`:provider API key
|
|
265
|
+
- `--base-url`:可选的 API base URL
|
|
266
|
+
- `--note`:备注
|
|
267
|
+
- `--tag`:标签,可重复传多次
|
|
268
|
+
|
|
269
|
+
交互模式:
|
|
270
|
+
|
|
271
|
+
- 如果缺少 `provider`、`profile`、`apiKey`,会在 TTY 中补问
|
|
272
|
+
- profile 选择会优先复用现有 `config.toml` profile
|
|
273
|
+
- API key 的隐藏输入会做二次确认
|
|
274
|
+
- tag 支持预设多选和自定义逗号分隔输入
|
|
275
|
+
|
|
276
|
+
非交互模式:
|
|
277
|
+
|
|
278
|
+
- 必须显式传入所有必填字段
|
|
279
|
+
|
|
280
|
+
### 5.3 `edit`
|
|
281
|
+
|
|
282
|
+
编辑单个 provider 的字段。
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
codexs edit <provider> [--profile <name>] [--api-key <key>] [--base-url <url>] [--note <text>] [--tag <tag> ...] [--json] [--codex-dir <path>]
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
示例:
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
codexs edit packycode --note primary
|
|
292
|
+
codexs edit packycode --api-key sk-new --base-url https://example.com/v1
|
|
293
|
+
codexs edit packycode --tag daily --tag paid
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
行为说明:
|
|
297
|
+
|
|
298
|
+
- 只会更新你显式传入的字段
|
|
299
|
+
- 未传入的字段保持不变
|
|
300
|
+
- `--tag` 会替换整组标签,而不是追加单个 tag
|
|
301
|
+
- 写入前会备份 `providers.json`
|
|
302
|
+
|
|
303
|
+
交互模式:
|
|
304
|
+
|
|
305
|
+
- 如果没有传任何可编辑字段,TTY 下会进入交互编辑
|
|
306
|
+
|
|
307
|
+
非交互模式:
|
|
308
|
+
|
|
309
|
+
- 至少要提供一个需要修改的字段
|
|
310
|
+
|
|
311
|
+
### 5.4 `switch`
|
|
312
|
+
|
|
313
|
+
切换当前使用的 provider/profile。
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
codexs switch <provider> [--no-login] [--json] [--codex-dir <path>]
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
示例:
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
codexs switch freemodel
|
|
323
|
+
codexs switch freemodel --no-login
|
|
324
|
+
codexs switch --no-login
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
行为说明:
|
|
328
|
+
|
|
329
|
+
- 根据 `providers.json` 找到目标 provider
|
|
330
|
+
- 更新相关运行态配置
|
|
331
|
+
- 默认会执行 Codex 登录刷新流程
|
|
332
|
+
- 会先备份 `config.toml` 和 `auth.json`
|
|
333
|
+
|
|
334
|
+
参数说明:
|
|
335
|
+
|
|
336
|
+
- `--no-login`:切换后不执行登录刷新
|
|
337
|
+
|
|
338
|
+
交互模式:
|
|
339
|
+
|
|
340
|
+
- 如果没有传 `<provider>`,TTY 下会弹出 provider 选择器
|
|
341
|
+
- 如果已经传了 `<provider>`,则直接执行,不再额外确认
|
|
342
|
+
|
|
343
|
+
### 5.5 `remove`
|
|
344
|
+
|
|
345
|
+
删除一个 provider 记录。
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
codexs remove <provider> [--force] [--json] [--codex-dir <path>]
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
示例:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
codexs remove freemodel
|
|
355
|
+
codexs remove freemodel --force --json
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
行为说明:
|
|
359
|
+
|
|
360
|
+
- 删除的是 `providers.json` 中的记录
|
|
361
|
+
- 删除前会备份 `providers.json`
|
|
362
|
+
|
|
363
|
+
交互模式:
|
|
364
|
+
|
|
365
|
+
- 如果没传 provider,可以在 TTY 中选择
|
|
366
|
+
- 无论是否显式传入 provider,交互模式下都会要求确认删除
|
|
367
|
+
|
|
368
|
+
非交互模式:
|
|
369
|
+
|
|
370
|
+
- 必须同时传入 `<provider>` 和 `--force`
|
|
371
|
+
|
|
372
|
+
### 5.6 `import`
|
|
373
|
+
|
|
374
|
+
从外部 JSON 文件导入 provider 配置。
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
codexs import <file> [--merge] [--json] [--codex-dir <path>]
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
示例:
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
codexs import ./providers.json
|
|
384
|
+
codexs import ./providers.json --merge
|
|
385
|
+
codexs import ./providers.json --merge --json
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
行为说明:
|
|
389
|
+
|
|
390
|
+
- 默认会用导入文件替换当前 `providers.json`
|
|
391
|
+
- 加上 `--merge` 后,会按 provider 名称做浅合并
|
|
392
|
+
- 冲突时,以导入文件中的 provider 记录为准
|
|
393
|
+
|
|
394
|
+
交互模式:
|
|
395
|
+
|
|
396
|
+
- 会在写入前确认是替换还是合并结果
|
|
397
|
+
|
|
398
|
+
非交互模式:
|
|
399
|
+
|
|
400
|
+
- 不会弹出路径向导或确认框
|
|
401
|
+
- 会先验证输入文件,再执行写入
|
|
402
|
+
|
|
403
|
+
### 5.7 `export`
|
|
404
|
+
|
|
405
|
+
导出当前 `providers.json` 到指定文件。
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
codexs export <file> [--force] [--json] [--codex-dir <path>]
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
示例:
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
codexs export ./providers-backup.json
|
|
415
|
+
codexs export ./providers-backup.json --force
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
行为说明:
|
|
419
|
+
|
|
420
|
+
- 将当前受管理 provider 注册表导出为外部 JSON 文件
|
|
421
|
+
|
|
422
|
+
覆盖规则:
|
|
423
|
+
|
|
424
|
+
- 如果目标文件不存在,直接导出
|
|
425
|
+
- 如果目标文件已存在,交互模式下会询问是否覆盖
|
|
426
|
+
- 非交互模式下必须显式传 `--force`
|
|
427
|
+
|
|
428
|
+
## 6. 诊断与恢复
|
|
429
|
+
|
|
430
|
+
### 6.1 `doctor`
|
|
431
|
+
|
|
432
|
+
运行本地配置与环境诊断。
|
|
433
|
+
|
|
434
|
+
```bash
|
|
435
|
+
codexs doctor [--json] [--codex-dir <path>]
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
示例:
|
|
439
|
+
|
|
440
|
+
```bash
|
|
441
|
+
codexs doctor
|
|
442
|
+
codexs doctor --json
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
通常会检查:
|
|
446
|
+
|
|
447
|
+
- 必要文件是否存在
|
|
448
|
+
- provider/profile 映射是否一致
|
|
449
|
+
- 当前运行态是否有漂移
|
|
450
|
+
- Codex CLI 是否可用
|
|
451
|
+
|
|
452
|
+
### 6.2 `rollback`
|
|
453
|
+
|
|
454
|
+
回滚到最近一次备份,或者指定备份 ID。
|
|
455
|
+
|
|
456
|
+
```bash
|
|
457
|
+
codexs rollback [<backup-id>] [--json] [--codex-dir <path>]
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
示例:
|
|
461
|
+
|
|
462
|
+
```bash
|
|
463
|
+
codexs rollback
|
|
464
|
+
codexs rollback 20260511-221457-switch
|
|
465
|
+
codexs rollback 20260511-221457-switch --json
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
行为说明:
|
|
469
|
+
|
|
470
|
+
- 不带参数时,默认回滚最近一次受管备份
|
|
471
|
+
- 传入 `<backup-id>` 时,回滚到指定备份
|
|
472
|
+
|
|
473
|
+
交互模式:
|
|
474
|
+
|
|
475
|
+
- 会先展示目标备份和受影响文件,再要求确认
|
|
476
|
+
|
|
477
|
+
非交互模式:
|
|
478
|
+
|
|
479
|
+
- 直接执行,不会二次确认
|
|
480
|
+
|
|
481
|
+
## 7. JSON 输出与自动化建议
|
|
482
|
+
|
|
483
|
+
如果你是在脚本、CI 或 Agent 环境中调用,建议遵循以下约束:
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
codexs <command> --json
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
推荐实践:
|
|
490
|
+
|
|
491
|
+
- 始终显式传入必需参数,不依赖交互输入
|
|
492
|
+
- 使用 `--json` 获取稳定输出
|
|
493
|
+
- 对危险命令显式传入控制参数,例如 `--force`、`--merge`、`--overwrite`
|
|
494
|
+
- 对多环境调试使用 `--codex-dir <path>`,避免误改默认 `~/.codex`
|
|
495
|
+
|
|
496
|
+
适合自动化的例子:
|
|
497
|
+
|
|
498
|
+
```bash
|
|
499
|
+
codexs list --json
|
|
500
|
+
codexs show packycode --json
|
|
501
|
+
codexs switch packycode --no-login --json
|
|
502
|
+
codexs export ./providers.snapshot.json --force --json
|
|
503
|
+
codexs rollback 20260511-221457-switch --json
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
## 8. 典型使用流程
|
|
507
|
+
|
|
508
|
+
### 8.1 第一次接管现有 Codex 配置
|
|
509
|
+
|
|
510
|
+
```bash
|
|
511
|
+
codexs setup
|
|
512
|
+
codexs list
|
|
513
|
+
codexs doctor
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
### 8.2 新增并切换到一个 provider
|
|
517
|
+
|
|
518
|
+
```bash
|
|
519
|
+
codexs add my-provider --profile my-provider --api-key sk-xxx
|
|
520
|
+
codexs switch my-provider
|
|
521
|
+
codexs current
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
### 8.3 批量迁移 provider 配置
|
|
525
|
+
|
|
526
|
+
```bash
|
|
527
|
+
codexs export ./providers.backup.json
|
|
528
|
+
codexs import ./team.providers.json --merge
|
|
529
|
+
codexs doctor
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
### 8.4 出现错误后恢复
|
|
533
|
+
|
|
534
|
+
```bash
|
|
535
|
+
codexs backups list
|
|
536
|
+
codexs rollback
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
或者:
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
codexs rollback <backup-id>
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
## 9. 危险命令说明
|
|
546
|
+
|
|
547
|
+
以下命令会修改本地配置或覆盖文件,使用前应明确预期:
|
|
548
|
+
|
|
549
|
+
- `setup`
|
|
550
|
+
- `add`
|
|
551
|
+
- `edit`
|
|
552
|
+
- `switch`
|
|
553
|
+
- `remove`
|
|
554
|
+
- `import`
|
|
555
|
+
- `export`(目标文件已存在时)
|
|
556
|
+
- `rollback`
|
|
557
|
+
|
|
558
|
+
建议:
|
|
559
|
+
|
|
560
|
+
- 人工操作先执行 `backups list`
|
|
561
|
+
- 自动化操作统一加 `--json`
|
|
562
|
+
- 在测试目录中先用 `--codex-dir <path>` 验证流程
|
|
563
|
+
|
|
564
|
+
## 10. 查看命令帮助
|
|
565
|
+
|
|
566
|
+
可以查看总帮助:
|
|
567
|
+
|
|
568
|
+
```bash
|
|
569
|
+
codexs --help
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
也可以查看单个命令帮助:
|
|
573
|
+
|
|
574
|
+
```bash
|
|
575
|
+
codexs help setup
|
|
576
|
+
codexs help add
|
|
577
|
+
codexs help switch
|
|
578
|
+
codexs help backups
|
|
579
|
+
codexs help rollback
|
|
580
|
+
```
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
- 文档类型:命令设计文档
|
|
6
6
|
- 适用范围:`codex-switch` MVP
|
|
7
7
|
- 关联文档:
|
|
8
|
-
- [`codex-switch-prd.md`](./codex-switch-prd.md)
|
|
8
|
+
- [`PRD/codex-switch-prd.md`](./PRD/codex-switch-prd.md)
|
|
9
9
|
- [`codex-switch-technical-architecture.md`](./codex-switch-technical-architecture.md)
|
|
10
10
|
|
|
11
11
|
## 1. 文档目标
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
相关文档:
|
|
10
10
|
|
|
11
11
|
- 研究输入稿:[`codex-switch-product-research.md`](./codex-switch-product-research.md)
|
|
12
|
-
- 正式 PRD:[`codex-switch-prd.md`](./codex-switch-prd.md)
|
|
12
|
+
- 正式 PRD:[`PRD/codex-switch-prd.md`](./PRD/codex-switch-prd.md)
|
|
13
13
|
- 技术架构设计:[`codex-switch-technical-architecture.md`](./codex-switch-technical-architecture.md)
|
|
14
14
|
- 命令设计说明:[`codex-switch-command-design.md`](./codex-switch-command-design.md)
|
|
15
15
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## 背景与当前结论
|
|
4
4
|
|
|
5
|
-
这份文档的定位不是正式 PRD,而是 `codex-switch` 的前置分析稿。它用于整合当前对参考项目、产品边界和技术方向的判断,并为后续单独编写 `codex-switch-prd.md` 提供输入。
|
|
5
|
+
这份文档的定位不是正式 PRD,而是 `codex-switch` 的前置分析稿。它用于整合当前对参考项目、产品边界和技术方向的判断,并为后续单独编写 `PRD/codex-switch-prd.md` 提供输入。
|
|
6
6
|
|
|
7
7
|
当前已经相对明确、可以先锁定的基础结论如下:
|
|
8
8
|
|
|
@@ -317,7 +317,7 @@ Rust / Zig 不是不能做,而是当前收益不足。只有在下面这些诉
|
|
|
317
317
|
|
|
318
318
|
## 后续 PRD 输入项
|
|
319
319
|
|
|
320
|
-
以下内容应留给后续单独的 `codex-switch-prd.md` 详细展开,这次只列为输入清单,不在本稿中定死:
|
|
320
|
+
以下内容应留给后续单独的 `PRD/codex-switch-prd.md` 详细展开,这次只列为输入清单,不在本稿中定死:
|
|
321
321
|
|
|
322
322
|
- 目标用户和典型场景
|
|
323
323
|
- 例如个人多 provider 用户、需要让 AI 执行切换命令的开发者、需要本地安全回滚的用户
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- 对应产品文档:
|
|
8
8
|
- [`codex-switch-product-overview.md`](./codex-switch-product-overview.md)
|
|
9
9
|
- [`codex-switch-product-research.md`](./codex-switch-product-research.md)
|
|
10
|
-
- [`codex-switch-prd.md`](./codex-switch-prd.md)
|
|
10
|
+
- [`PRD/codex-switch-prd.md`](./PRD/codex-switch-prd.md)
|
|
11
11
|
- [`codex-switch-command-design.md`](./codex-switch-command-design.md)
|
|
12
12
|
|
|
13
13
|
## 1. 文档目标
|