codexmate 0.0.7 → 0.0.9

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 (47) hide show
  1. package/.github/workflows/release.yml +122 -8
  2. package/.planning/.fix-attempts +1 -0
  3. package/.planning/.lock +6 -0
  4. package/.planning/.verify-cache.json +14 -0
  5. package/.planning/CHECKPOINT.json +46 -0
  6. package/.planning/DESIGN.md +26 -0
  7. package/.planning/HISTORY.json +124 -0
  8. package/.planning/PLAN.md +69 -0
  9. package/.planning/REVIEW.md +41 -0
  10. package/.planning/STATE.md +12 -0
  11. package/.planning/STATS.json +13 -0
  12. package/.planning/VERIFICATION.md +70 -0
  13. package/.planning/daude-code-plan.md +51 -0
  14. package/.planning/research/architecture.md +32 -0
  15. package/.planning/research/conventions.md +36 -0
  16. package/.planning/task_1-REVIEW.md +29 -0
  17. package/.planning/task_1-SUMMARY.md +32 -0
  18. package/.planning/task_2-REVIEW.md +24 -0
  19. package/.planning/task_2-SUMMARY.md +37 -0
  20. package/.planning/task_3-REVIEW.md +25 -0
  21. package/.planning/task_3-SUMMARY.md +31 -0
  22. package/README.md +58 -52
  23. package/README.zh-CN.md +68 -56
  24. package/cli.js +1142 -1427
  25. package/lib/cli-file-utils.js +151 -0
  26. package/lib/cli-models-utils.js +152 -0
  27. package/lib/cli-network-utils.js +148 -0
  28. package/lib/cli-session-utils.js +121 -0
  29. package/lib/cli-utils.js +139 -0
  30. package/package.json +4 -2
  31. package/res/json5.min.js +1 -0
  32. package/res/vue.global.js +18552 -0
  33. package/tests/e2e/helpers.js +214 -0
  34. package/tests/e2e/recent-health.e2e.js +6 -0
  35. package/tests/e2e/run.js +103 -306
  36. package/tests/e2e/test-claude.js +21 -0
  37. package/tests/e2e/test-config.js +124 -0
  38. package/tests/e2e/test-health-speed.js +79 -0
  39. package/tests/e2e/test-openclaw.js +47 -0
  40. package/tests/e2e/test-session-search.js +114 -0
  41. package/tests/e2e/test-sessions.js +69 -0
  42. package/tests/e2e/test-setup.js +159 -0
  43. package/tests/unit/run.mjs +29 -0
  44. package/tests/unit/web-ui-logic.test.mjs +186 -0
  45. package/web-ui/app.js +2841 -0
  46. package/web-ui/logic.mjs +157 -0
  47. package/web-ui.html +1045 -2996
package/README.zh-CN.md CHANGED
@@ -7,6 +7,8 @@
7
7
 
8
8
  [English](README.md) | 中文
9
9
 
10
+ ![Codex Mate Web UI](res/screenshot.png)
11
+
10
12
  ## 概览
11
13
 
12
14
  Codex Mate 让 Codex 与 Claude Code 的提供商/模型切换变成“一条命令或一次点击”,并在同一 Web 页面浏览、导出两者的本地会话记录。
@@ -19,6 +21,12 @@ Codex Mate 让 Codex 与 Claude Code 的提供商/模型切换变成“一条命
19
21
  - 配置变更可回溯、有备份
20
22
  - Codex + Claude Code 统一会话浏览(查看/导出/可用时复制恢复命令)
21
23
 
24
+ ## 概览
25
+
26
+ 一键切换 Codex/Claude Code 提供商与模型,并把本地会话统一管理/浏览/导出。
27
+
28
+ - 会话管理:列表/筛选/导出/删除 Codex/Claude 本地会话;关键词搜索支持 Codex/Claude
29
+
22
30
  ## 功能总览
23
31
 
24
32
  | 模块 | 解决的问题 | 关键能力 |
@@ -26,30 +34,30 @@ Codex Mate 让 Codex 与 Claude Code 的提供商/模型切换变成“一条命
26
34
  | Codex 配置 | 多提供商/多模型切换麻烦 | 提供商/模型切换、模型管理、CLI + Web 双入口、模板确认写入 |
27
35
  | Claude Code 配置 | 多方案共存、写入路径不统一 | 多配置方案管理、默认写入 `~/.claude/settings.json` |
28
36
  | OpenClaw 配置 | OpenClaw 配置分散 | JSON5 多配置管理、应用到 `~/.openclaw/openclaw.json`、Workspace 指令文件管理 |
29
- | 会话浏览 | 本地会话难以追踪 | 会话列表/筛选、Markdown 导出、可用时复制恢复命令、删除与批量清理 |
37
+ | 会话浏览 | 本地会话难以追踪 | 会话列表/筛选、关键词搜索(支持 Codex/Claude)、Markdown 导出、可用时复制恢复命令、删除与批量清理 |
30
38
  | 附属工具 | 压缩/解压需额外工具 | 优先 7-Zip,JS 库兜底 |
31
39
 
32
- ## 为什么选择 Codex Mate
40
+ ## 为什么选 Codex Mate
33
41
 
34
- - 聚焦三件事:Codex 提供商/模型切换 + Claude Code 配置应用 + OpenClaw 配置应用
35
- - 本地优先:配置与 API Key 写入本地文件,不走云端
36
- - 轻量好用:CLI + Web 双入口,无需安装桌面端
37
- - 可回退:首次接管前自动备份旧配置
42
+ - 聚焦三件事:Codex 切换 + Claude Code 配置 + OpenClaw 配置
43
+ - 本地优先:配置与密钥落地本机
44
+ - 轻量:CLI + Web,无需桌面客户端
45
+ - 安全感:首次接管前自动备份
38
46
 
39
47
  ## 适用场景
40
48
 
41
- - 频繁切换提供商/模型,想要一条命令完成
49
+ - 频繁切换提供商/模型,想一条命令搞定
42
50
  - 同时用 Codex 与 Claude Code,需要统一入口
43
- - 需要浏览/导出本地会话记录,并在可用时复制恢复命令
44
- - 使用 OpenClaw 多配置,希望快速切换
45
- - 多项目/多环境切换,希望快速改写配置
46
- - 想可视化改配置但又不想上大体量客户端
51
+ - 浏览/导出本地会话记录,必要时复制恢复命令
52
+ - OpenClaw 多配置快速切换
53
+ - 多项目/多环境快速改写配置
54
+ - 想用可视化界面但不装笨重客户端
47
55
 
48
56
  ## 范围与边界
49
57
 
50
58
  - 只做 Codex、Claude Code 与 OpenClaw 的配置管理,不做全量多工具一体化
51
59
  - 不内置代理/转发/费用面板/云同步(保持轻量)
52
- - Web UI 仅在你启动时运行(`codexmate start`)
60
+ - Web UI 仅在你启动时运行(`codexmate run`)
53
61
 
54
62
  ## 30 秒上手(免安装)
55
63
 
@@ -58,7 +66,7 @@ npx codexmate@latest status
58
66
  ```
59
67
 
60
68
  ```bash
61
- npx codexmate@latest start
69
+ npx codexmate@latest run
62
70
  ```
63
71
 
64
72
  然后在浏览器中打开 `http://localhost:3737`。
@@ -87,7 +95,7 @@ codexmate status
87
95
 
88
96
  4. 启动 Web 界面:
89
97
  ```bash
90
- codexmate start
98
+ codexmate run
91
99
  ```
92
100
 
93
101
  然后在浏览器中打开 `http://localhost:3737`。
@@ -96,10 +104,6 @@ codexmate start
96
104
 
97
105
  - cc-switch: https://github.com/farion1231/cc-switch
98
106
 
99
- ## 界面预览
100
-
101
- ![Codex Mate Web UI](res/screenshot.png)
102
-
103
107
  ## 安装
104
108
 
105
109
  ### 全局安装(推荐)
@@ -123,7 +127,7 @@ npx codexmate@latest status
123
127
  ```
124
128
 
125
129
  ```bash
126
- npx codexmate@latest start
130
+ npx codexmate@latest run
127
131
  ```
128
132
 
129
133
  ### 从源码安装
@@ -152,18 +156,19 @@ npm link
152
156
  | `codexmate use <模型名称>` | 切换模型 |
153
157
  | `codexmate add <名称> <URL> [API密钥]` | 添加新提供商 |
154
158
  | `codexmate delete <提供商名称>` | 删除提供商 |
159
+ | `codexmate claude <BaseURL> <API密钥> [模型]` | 一键写入 Claude Code 配置到 `~/.claude/settings.json` |
155
160
  | `codexmate models` | 列出所有模型 |
156
- | `codexmate add-model <模型名称>` | 添加模型 |
157
- | `codexmate delete-model <模型名称>` | 删除模型 |
158
- | `codexmate start` | 启动 Web 界面 |
159
- | `codexmate export-session --source <codex|claude> (--session-id <ID>|--file <PATH>) [--output <PATH>] [--max-messages <N|all|Infinity>]` | 导出指定会话为 Markdown |
161
+ | `codexmate add-model <模型名称>` | 添加模型 |
162
+ | `codexmate delete-model <模型名称>` | 删除模型 |
163
+ | `codexmate run` | 启动 Web 界面 |
164
+ | `codexmate export-session --source <codex|claude> (--session-id <ID>|--file <PATH>) [--output <PATH>] [--max-messages <N|all|Infinity>]` | 导出指定会话为 Markdown |
160
165
 
161
166
  ## Web 界面
162
167
 
163
168
  启动 Web 界面(自动打开浏览器):
164
169
 
165
170
  ```bash
166
- codexmate start
171
+ codexmate run
167
172
  ```
168
173
 
169
174
  ### Codex 配置模式
@@ -180,6 +185,13 @@ codexmate start
180
185
  - 管理多个 Claude Code 配置方案
181
186
  - 配置 API Key、Base URL 和模型
182
187
  - 默认写入 `~/.claude/settings.json` 的 `env` 字段:`env.ANTHROPIC_API_KEY` / `env.ANTHROPIC_BASE_URL` / `env.ANTHROPIC_MODEL`
188
+ - CLI 一行应用示例:
189
+
190
+ ```bash
191
+ codexmate claude https://api.example.com/v1 sk-ant-xxx claude-3-7-sonnet
192
+ ```
193
+
194
+ - Web 界面中每个 Claude 配置卡片新增“分享导入命令”按钮,可复制一条 `codexmate claude <BaseURL> <API Key> <模型>` 命令便于分享。
183
195
 
184
196
  ### OpenClaw 配置模式
185
197
 
@@ -243,43 +255,43 @@ codexmate add myapi https://api.example.com/v1 sk-your-api-key
243
255
  codexmate switch myapi
244
256
  ```
245
257
 
246
- ### 切换到不同的模型
247
-
248
- ```bash
249
- codexmate use gpt-4-turbo
250
- ```
251
-
252
- ### 导出会话(CLI)
253
-
254
- ```bash
255
- codexmate export-session --source codex --session-id 123456
256
- codexmate export-session --source claude --file "~/.claude/projects/demo/session.jsonl" --max-messages=all
257
- ```
258
-
259
- 默认最多导出 1000 条消息;如需完整导出可用 `--max-messages=all`(或 `Infinity`)。
260
-
261
- ### 配置 Claude Code(跨平台)
262
-
263
- 1. 启动 Web 界面:`codexmate start`
258
+ ### 切换到不同的模型
259
+
260
+ ```bash
261
+ codexmate use gpt-4-turbo
262
+ ```
263
+
264
+ ### 导出会话(CLI)
265
+
266
+ ```bash
267
+ codexmate export-session --source codex --session-id 123456
268
+ codexmate export-session --source claude --file "~/.claude/projects/demo/session.jsonl" --max-messages=all
269
+ ```
270
+
271
+ 默认最多导出 1000 条消息;如需完整导出可用 `--max-messages=all`(或 `Infinity`)。
272
+
273
+ ### 配置 Claude Code(跨平台)
274
+
275
+ 1. 启动 Web 界面:`codexmate run`
264
276
  2. 在浏览器中切换到 "Claude Code 配置" 模式
265
277
  3. 添加配置方案(例如智谱 GLM):配置名称=智谱GLM,API Key=你的 API Key,Base URL=`https://open.bigmodel.cn/api/anthropic`,模型=`glm-4.7`
266
278
  4. 点击配置卡片直接应用,或在编辑弹窗点击“保存并应用到 Claude 配置”
267
279
  5. 默认写入 `~/.claude/settings.json`
268
280
  6. 重启 Claude Code,新的配置即生效
269
281
 
270
- ### 启动 Web 界面
271
-
272
- ```bash
273
- codexmate start
274
- ```
275
-
276
- 默认仅监听 `127.0.0.1`。如需局域网访问,可用 `--host` 或 `CODEXMATE_HOST`:
277
-
278
- ```bash
279
- codexmate start --host 0.0.0.0
280
- ```
281
-
282
- 然后在浏览器中打开 `http://localhost:3737`(或你指定的地址)。注意:监听 `0.0.0.0` 在不可信网络下不安全。
282
+ ### 启动 Web 界面
283
+
284
+ ```bash
285
+ codexmate run
286
+ ```
287
+
288
+ 默认仅监听 `127.0.0.1`。如需局域网访问,可用 `--host` 或 `CODEXMATE_HOST`:
289
+
290
+ ```bash
291
+ codexmate run --host 0.0.0.0
292
+ ```
293
+
294
+ 然后在浏览器中打开 `http://localhost:3737`(或你指定的地址)。注意:监听 `0.0.0.0` 在不可信网络下不安全。
283
295
 
284
296
  ## 常见问题
285
297
 
@@ -351,7 +363,7 @@ codexmate unzip ./backup.zip D:/restored
351
363
 
352
364
  ## 发布(GitHub Actions)
353
365
 
354
- 创建与 `package.json` 版本一致的标签(例如 `v0.0.1`)。然后在 GitHub Actions 中手动运行 `release` 工作流并输入该标签,系统会创建 GitHub Release,并附带 `npm pack` 生成的 `.tgz` 产物。
366
+ 创建与 `package.json` 版本一致的标签(例如 `v0.0.8`)。然后在 GitHub Actions 中手动运行 `release` 工作流并输入该标签,系统会创建 GitHub Release,并附带 `npm pack` 生成的 `.tgz` 产物。
355
367
 
356
368
  ## 许可证
357
369