coding-tool-x 3.3.8 → 3.4.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.
Files changed (79) hide show
  1. package/CHANGELOG.md +17 -2
  2. package/README.md +253 -326
  3. package/dist/web/assets/{Analytics-DLpoDZ2M.js → Analytics-DEjfL5Jx.js} +4 -4
  4. package/dist/web/assets/Analytics-RNn1BUbG.css +1 -0
  5. package/dist/web/assets/{ConfigTemplates-D_hRb55W.js → ConfigTemplates-DkRL_-tf.js} +1 -1
  6. package/dist/web/assets/Home-BQxQ1LhR.css +1 -0
  7. package/dist/web/assets/Home-CF-L640I.js +1 -0
  8. package/dist/web/assets/{PluginManager-JXsyym1s.js → PluginManager-BzNYTdNB.js} +1 -1
  9. package/dist/web/assets/{ProjectList-DZWSeb-q.js → ProjectList-C0-JgHMM.js} +1 -1
  10. package/dist/web/assets/{SessionList-Cs624DR3.js → SessionList-CkZUdX5N.js} +1 -1
  11. package/dist/web/assets/{SkillManager-bEliz7qz.js → SkillManager-Cak0-4d4.js} +1 -1
  12. package/dist/web/assets/{WorkspaceManager-J3RecFGn.js → WorkspaceManager-CGDJzwEr.js} +1 -1
  13. package/dist/web/assets/{icons-Cuc23WS7.js → icons-B5Pl4lrD.js} +1 -1
  14. package/dist/web/assets/index-D_WItvHE.js +2 -0
  15. package/dist/web/assets/index-Dz7v9OM0.css +1 -0
  16. package/dist/web/assets/{markdown-C9MYpaSi.js → markdown-DyTJGI4N.js} +1 -1
  17. package/dist/web/assets/{naive-ui-CxpuzdjU.js → naive-ui-Bdxp09n2.js} +1 -1
  18. package/dist/web/assets/{vendors-DMjSfzlv.js → vendors-CKPV1OAU.js} +2 -2
  19. package/dist/web/assets/{vue-vendor-DET08QYg.js → vue-vendor-3bf-fPGP.js} +1 -1
  20. package/dist/web/index.html +7 -7
  21. package/docs/home.png +0 -0
  22. package/package.json +13 -5
  23. package/src/commands/daemon.js +3 -2
  24. package/src/commands/security.js +1 -2
  25. package/src/config/paths.js +638 -93
  26. package/src/server/api/agents.js +1 -1
  27. package/src/server/api/claude-hooks.js +13 -8
  28. package/src/server/api/codex-proxy.js +5 -4
  29. package/src/server/api/hooks.js +45 -0
  30. package/src/server/api/plugins.js +0 -1
  31. package/src/server/api/statistics.js +4 -4
  32. package/src/server/api/ui-config.js +5 -0
  33. package/src/server/api/workspaces.js +1 -3
  34. package/src/server/codex-proxy-server.js +89 -59
  35. package/src/server/gemini-proxy-server.js +107 -88
  36. package/src/server/index.js +1 -0
  37. package/src/server/opencode-proxy-server.js +381 -225
  38. package/src/server/proxy-server.js +86 -60
  39. package/src/server/services/alias.js +3 -3
  40. package/src/server/services/channels.js +3 -2
  41. package/src/server/services/codex-channels.js +38 -87
  42. package/src/server/services/codex-env-manager.js +426 -0
  43. package/src/server/services/codex-settings-manager.js +15 -15
  44. package/src/server/services/codex-statistics-service.js +3 -27
  45. package/src/server/services/config-export-service.js +20 -7
  46. package/src/server/services/config-registry-service.js +3 -2
  47. package/src/server/services/config-sync-manager.js +1 -1
  48. package/src/server/services/favorites.js +4 -3
  49. package/src/server/services/gemini-channels.js +3 -3
  50. package/src/server/services/gemini-statistics-service.js +3 -25
  51. package/src/server/services/mcp-service.js +2 -3
  52. package/src/server/services/model-detector.js +4 -3
  53. package/src/server/services/native-oauth-adapters.js +2 -1
  54. package/src/server/services/network-access.js +39 -1
  55. package/src/server/services/notification-hooks.js +951 -0
  56. package/src/server/services/opencode-channels.js +6 -6
  57. package/src/server/services/opencode-sessions.js +2 -2
  58. package/src/server/services/opencode-statistics-service.js +3 -27
  59. package/src/server/services/plugins-service.js +110 -31
  60. package/src/server/services/prompts-service.js +2 -3
  61. package/src/server/services/proxy-log-helper.js +242 -0
  62. package/src/server/services/proxy-runtime.js +6 -4
  63. package/src/server/services/repo-scanner-base.js +12 -4
  64. package/src/server/services/request-logger.js +7 -7
  65. package/src/server/services/security-config.js +4 -4
  66. package/src/server/services/session-cache.js +2 -2
  67. package/src/server/services/sessions.js +2 -2
  68. package/src/server/services/skill-service.js +174 -55
  69. package/src/server/services/statistics-service.js +10 -6
  70. package/src/server/services/ui-config.js +4 -3
  71. package/src/server/services/workspace-service.js +101 -156
  72. package/src/server/websocket-server.js +5 -4
  73. package/dist/web/assets/Analytics-DuYvId7u.css +0 -1
  74. package/dist/web/assets/Home-BMoFdAwy.css +0 -1
  75. package/dist/web/assets/Home-DNwp-0J-.js +0 -1
  76. package/dist/web/assets/index-BXeSvAwU.js +0 -2
  77. package/dist/web/assets/index-DWAC3Tdv.css +0 -1
  78. package/docs/bannel.png +0 -0
  79. package/docs/model-redirection.md +0 -251
package/README.md CHANGED
@@ -1,439 +1,366 @@
1
- <div align="center">
1
+ # Coding-Tool-X
2
2
 
3
- <img src="docs/logo.png" alt="Coding-Tool-X Logo" width="140" />
3
+ > 面向 Claude Code、Codex CLI、Gemini CLI、OpenCode 的统一增强控制台
4
+ > Web UI + CLI + Proxy + Config Sync + MCP/Skills/Agents/Prompts 管理
4
5
 
5
- # Coding-Tool-X
6
+ 本项目基于 [CooperJiang/coding-tool](https://github.com/CooperJiang/coding-tool) 扩展而来,在原有会话管理和渠道切换能力之上,继续补齐了多平台代理、配置同步、工作区编排、MCP 管理、Skills/Commands/Agents 管理、OAuth 凭证管理、配置导入导出、OpenCode 适配与分析面板等能力。
7
+
8
+ ![Home Preview](docs/home.png)
9
+
10
+ ## 项目定位
11
+
12
+ `coding-tool-x` 不只是一个会话浏览器,而是一个多平台代理与配置中枢:
13
+
14
+ - 统一查看 Claude / Codex / Gemini / OpenCode 的项目与会话
15
+ - 为各平台配置多渠道、代理、模型重定向、测速与健康检查
16
+ - 管理并同步 Prompts、Skills、Commands、Agents、MCP、插件配置
17
+ - 提供工作区、Git worktree、配置模板、导入导出与诊断能力
18
+ - 通过 Web 面板查看实时日志、请求统计、Token/费用趋势
19
+
20
+ ## 当前核心能力
21
+
22
+ ### 1. 多平台会话与代理
23
+
24
+ - 统一管理 `Claude`、`Codex`、`Gemini`、`OpenCode` 四类项目与会话
25
+ - 支持会话别名、最近会话、全局搜索、会话 Fork、跨平台会话转换
26
+ - 每个平台都有独立代理入口与独立端口
27
+ - 支持多渠道启用/停用、测速、健康状态、优先级与模型列表探测
28
+ - 支持 Claude / Codex / Gemini 的模型重定向与默认测速模型配置
29
+ - OpenCode 支持网关适配与会话格式转换/导出
30
+
31
+ ### 2. 配置与同步中枢
6
32
 
7
- **Claude Code / Codex / Gemini CLI 增强工具**
33
+ - 集中存储项目配置到 `~/.cc-tool`
34
+ - 自动读写平台原生配置目录,而不是替换你的平台使用方式
35
+ - 支持 Prompts 预设创建、激活、停用与平台状态查看
36
+ - 支持配置模板、工作区模板与导入配置时的预览
37
+ - 支持 ZIP / JSON 配置导入导出
38
+ - 支持 Claude / Codex / Gemini / OpenCode 的配置同步
8
39
 
9
- 智能会话管理 | 多渠道动态切换 | 实时 Token 监控
40
+ ### 3. 扩展能力
10
41
 
11
- [![npm version](https://img.shields.io/npm/v/coding-tool-x.svg?style=flat-square)](https://www.npmjs.com/package/coding-tool-x)
12
- [![npm downloads](https://img.shields.io/npm/dm/coding-tool-x.svg?style=flat-square)](https://www.npmjs.com/package/coding-tool-x)
13
- [![GitHub stars](https://img.shields.io/github/stars/CooperJiang/cc-tool?style=flat-square)](https://github.com/ZeaoZhang/coding-tool/stargazers)
14
- [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](LICENSE)
15
- [![Node](https://img.shields.io/badge/node-%3E%3D14.0.0-brightgreen.svg?style=flat-square)](package.json)
42
+ - MCP 服务器管理、平台启用开关、连通性测试、预设与导入
43
+ - Skills 管理:远程仓库安装、本地托管、详情查看、按平台安装
44
+ - Commands 管理:当前支持 Claude / OpenCode
45
+ - Agents 管理:当前支持 Claude / Codex / OpenCode
46
+ - 插件系统:支持 Git 安装、启用/禁用、升级、配置
47
+ - OAuth 凭证管理:集中管理 Claude / Codex / Gemini / OpenCode OAuth 数据
16
48
 
17
- <br />
49
+ ### 4. 运维与观测
18
50
 
19
- <img src="docs/home.png" alt="Coding-Tool Preview" width="90%" />
51
+ - 首页 Dashboard 按平台展示状态卡、代理状态、实时日志和快捷操作
52
+ - Analytics 页面查看多平台请求数、Token、费用趋势并导出 CSV/JSON
53
+ - `ctx logs` 查看 UI/代理日志,支持 `--follow` / `--lines` / `--clear`
54
+ - `ctx stats` 查看总体和分平台统计
55
+ - `ctx doctor` 做环境、端口、配置、日志、磁盘与进程诊断
56
+ - Web UI 支持访问密码;`--host` 暴露 LAN 时默认禁止远程写操作
20
57
 
21
- <p><sub>现代化 Web 界面 - 项目管理、会话浏览、实时日志监控</sub></p>
22
58
 
23
- </div>
59
+ ## 架构概览
24
60
 
25
- ---
61
+ ### CLI 层
26
62
 
27
- ## ✨ 特性
63
+ - 命令入口:`bin/ctx.js`
64
+ - 主逻辑:`src/index.js`
65
+ - 后台运行:PM2 管理 `ctx start / stop / restart / status`
28
66
 
29
- | 功能 | 描述 |
30
- |------|------|
31
- | **智能会话管理** | 自动识别 Claude/Codex/Gemini 历史会话,支持命名、搜索、Fork 分支 |
32
- | **多渠道负载均衡** | 同时启用多个渠道,按权重自动分配请求,支持并发控制和健康检查 |
33
- | **动态渠道切换** | 管理多个 API 渠道,一键切换无需重启,成本优化与稳定性兼得 |
34
- | **模型智能重定向** | 代理模式下自动将高成本模型重定向到低成本模型(如 opus → sonnet),大幅节省 token 消耗 |
35
- | **实时 Token 监控** | 可视化展示每次请求的 Token 消耗(输入/输出/缓存命中) |
36
- | **全局搜索** | `⌘/Ctrl + K` 跨项目搜索会话内容,快速定位历史对话 |
37
- | **现代化 Web UI** | 响应式设计,支持亮色/暗色主题,三列拖拽排序 |
67
+ ### 服务端
38
68
 
39
- ---
69
+ - Express API:`src/server/index.js`
70
+ - WebSocket:用于 Dashboard / 日志 / 状态推送
71
+ - API 范围覆盖:
72
+ - 项目 / 会话
73
+ - 渠道 / 代理
74
+ - Skills / Commands / Agents / Plugins
75
+ - Prompts / MCP / OAuth / Config Export / Config Sync
76
+ - Dashboard / Analytics / Security / Workspace
40
77
 
41
- ## 📦 安装
78
+ ### 前端
42
79
 
43
- ### npm(推荐)
80
+ - Vue 3 + Vite + Pinia + Naive UI + ECharts
81
+ - 主要页面:
82
+ - Dashboard 首页
83
+ - 四个平台的项目/会话列表
84
+ - Workspaces
85
+ - Config Templates
86
+ - Skills
87
+ - Plugins
88
+ - Analytics
89
+
90
+ ## 安装
91
+
92
+ ### 方式 1:全局安装
44
93
 
45
94
  ```bash
46
95
  npm install -g coding-tool-x
47
96
  ```
48
97
 
49
- > 包名为 `coding-tool-x`(无 npm 作用域)。
50
-
51
- ### 从源码构建
98
+ ### 方式 2:从源码运行
52
99
 
53
100
  ```bash
54
101
  git clone https://github.com/ZeaoZhang/coding-tool.git
55
102
  cd coding-tool
56
- npm install && npm link
103
+ npm install
104
+ npm run build:web
105
+ npm link
57
106
  ```
58
107
 
108
+ ### 环境要求
109
+
110
+ - Node.js `>= 14.0.0`(仓库当前 `package.json` 的声明)
111
+ - 建议先至少运行过目标 CLI 一次,以便生成其原生配置目录
112
+
59
113
  ### 验证安装
60
114
 
61
115
  ```bash
62
116
  ctx --version
117
+ ctx --help
63
118
  ```
64
119
 
65
- ---
120
+ ## 快速开始
66
121
 
67
- ## 🚀 快速开始
68
-
69
- ### 启动 Web UI(推荐)
122
+ ### 推荐方式:后台启动整套服务
70
123
 
71
124
  ```bash
72
- ctx ui
125
+ ctx start
126
+ ctx status
73
127
  ```
74
128
 
75
- 浏览器自动打开 `http://localhost:19999`,即可开始管理会话和渠道。
129
+ 默认访问地址:
76
130
 
77
- ### 命令行交互模式
131
+ - Web UI: `http://localhost:19999`
132
+
133
+ ### 前台启动 Web UI
78
134
 
79
135
  ```bash
80
- ctx
136
+ ctx ui
81
137
  ```
82
138
 
83
- 启动交互式菜单,通过键盘完成会话管理和渠道切换。
139
+ ### 开启 LAN 访问
84
140
 
85
- ---
141
+ ```bash
142
+ ctx ui --host
143
+ ```
86
144
 
87
- ## 📋 命令参考
145
+ 说明:
88
146
 
89
- ### 核心命令
147
+ - `--host` 会让服务监听 `0.0.0.0`
148
+ - LAN 模式下,服务端默认阻止远程写操作
149
+ - 如确需允许远程写操作,可显式设置环境变量:
90
150
 
91
- | 命令 | 描述 |
92
- |------|------|
93
- | `ctx` | 启动交互式命令行界面 |
94
- | `ctx ui` | 启动 Web UI 管理界面 |
95
- | `ctx update` | 检查并更新到最新版本 |
96
- | `ctx --version` | 显示版本号 |
97
- | `ctx --help` | 显示帮助信息 |
151
+ ```bash
152
+ CC_TOOL_ALLOW_REMOTE_WRITE=true ctx ui --host
153
+ ```
98
154
 
99
- ### 代理管理
155
+ ### 分平台启动代理
100
156
 
101
- | 命令 | 描述 |
102
- |------|------|
103
- | `ctx proxy start` | 启动代理服务(动态切换渠道) |
104
- | `ctx proxy stop` | 停止代理服务 |
105
- | `ctx proxy status` | 查看代理运行状态 |
157
+ ```bash
158
+ ctx claude start
159
+ ctx codex start
160
+ ctx gemini start
161
+ ctx opencode start
162
+ ```
106
163
 
107
- ### 后台运行(基于 PM2)
164
+ ## 常用命令
108
165
 
109
- | 命令 | 描述 |
110
- |------|------|
111
- | `ctx daemon start` | 后台启动服务(可关闭终端) |
112
- | `ctx daemon stop` | 停止后台服务 |
113
- | `ctx daemon restart` | 重启后台服务 |
114
- | `ctx daemon status` | 查看后台服务状态 |
115
- | `ctx daemon logs` | 查看 PM2 运行日志 |
166
+ ### 服务与 UI
116
167
 
117
- ### 日志管理
168
+ | 命令 | 说明 |
169
+ | --- | --- |
170
+ | `ctx start` | 后台启动服务(推荐) |
171
+ | `ctx stop` | 停止后台服务 |
172
+ | `ctx restart` | 重启后台服务 |
173
+ | `ctx status` | 查看后台服务状态 |
174
+ | `ctx ui` | 前台启动 Web UI |
175
+ | `ctx ui --host` | 前台启动 Web UI 并允许局域网访问 |
118
176
 
119
- | 命令 | 描述 |
120
- |------|------|
121
- | `ctx logs` | 查看所有日志 |
122
- | `ctx logs ui` | 查看 Web UI 日志 |
123
- | `ctx logs claude` | 查看 Claude 代理日志 |
124
- | `ctx logs codex` | 查看 Codex 代理日志 |
125
- | `ctx logs gemini` | 查看 Gemini 代理日志 |
126
- | `ctx logs --follow` | 实时跟踪日志输出 |
127
- | `ctx logs --lines 100` | 显示最后 100 行日志 |
128
- | `ctx logs --clear` | 清空所有日志文件 |
177
+ ### 分平台代理
129
178
 
130
- ### 系统工具
131
-
132
- | 命令 | 描述 |
133
- |------|------|
134
- | `ctx doctor` | 运行系统诊断,检查配置和环境 |
135
- | `ctx port` | 配置 Web UI 和各代理端口 |
136
- | `ctx stats` | 查看使用统计(会话数、Token 等) |
137
- | `ctx reset` | 重置配置文件 |
179
+ | 命令 | 说明 |
180
+ | --- | --- |
181
+ | `ctx claude start|stop|restart|status` | Claude 代理管理 |
182
+ | `ctx codex start|stop|restart|status` | Codex 代理管理 |
183
+ | `ctx gemini start|stop|restart|status` | Gemini 代理管理 |
184
+ | `ctx opencode start|stop|restart|status` | OpenCode 代理管理 |
138
185
 
139
- ---
186
+ ### 日志、统计、诊断
140
187
 
141
- ## 📖 核心功能
188
+ | 命令 | 说明 |
189
+ | --- | --- |
190
+ | `ctx logs` | 查看全部日志 |
191
+ | `ctx logs ui` | 查看 UI 日志 |
192
+ | `ctx logs claude` | 查看 Claude 代理日志 |
193
+ | `ctx logs --follow` | 实时追踪日志 |
194
+ | `ctx logs --lines 100` | 查看最近 100 行 |
195
+ | `ctx logs --clear` | 清空日志 |
196
+ | `ctx stats` | 查看总体统计 |
197
+ | `ctx stats claude` | 查看某个平台统计 |
198
+ | `ctx stats export` | 导出统计数据 |
199
+ | `ctx doctor` | 运行系统诊断 |
142
200
 
143
- ### 会话管理
201
+ ### 配置与维护
144
202
 
145
- - **多平台支持**:统一管理 Claude Code、Codex CLI、Gemini CLI 的会话
146
- - **会话别名**:为会话设置易记的名称,方便识别
147
- - **Fork 会话**:基于现有对话创建分支,探索不同方向
148
- - **快速启动**:一键在终端中恢复历史会话
203
+ | 命令 | 说明 |
204
+ | --- | --- |
205
+ | `ctx update` | 检查并更新版本 |
206
+ | `ctx port` | 配置默认端口 |
207
+ | `ctx reset` | 重置 cc-tool 配置 |
208
+ | `ctx security reset` | 清除 Web UI 访问密码 |
209
+ | `ctx plugin list` | 查看已安装插件 |
210
+ | `ctx plugin install <git-url>` | 从 Git 安装插件 |
149
211
 
150
- ### 多渠道管理
212
+ ### 兼容命令
151
213
 
152
- - **多渠道负载均衡**:同时启用多个渠道,系统自动按权重分配请求
153
- - **权重配置**:为每个渠道设置权重(1-100),高权重渠道获得更多流量
154
- - **并发控制**:为每个渠道设置最大并发数,精细控制负载
155
- - **健康检查**:自动检测渠道状态,问题渠道自动冻结和恢复
156
- - **会话绑定**:可选开启,确保同一会话的请求发送到同一渠道
157
- - **可视化配置**:添加、编辑、删除渠道,拖拽调整优先级
158
- - **安全存储**:API Key 脱敏显示,配置本地加密存储
214
+ `ctx proxy start|stop|status` 仍然保留,但它是偏旧的 Claude 兼容入口。当前更推荐使用按平台拆分的命令:`ctx claude ...`、`ctx codex ...`、`ctx gemini ...`、`ctx opencode ...`。
159
215
 
160
- ### 后台运行模式
216
+ ## Web UI 主要模块
161
217
 
162
- - **PM2 集成**:基于 PM2 进程管理,稳定可靠
163
- - **持久化运行**:启动后可关闭终端,服务持续运行
164
- - **开机自启**:支持系统启动时自动启动服务
165
- - **日志管理**:统一日志存储,支持实时查看和清理
166
- - **状态监控**:随时查看后台服务运行状态
218
+ ### 首页 Dashboard
167
219
 
168
- ### 系统诊断与监控
220
+ - 四个平台列式面板
221
+ - 拖拽排序
222
+ - 代理状态
223
+ - 实时日志
224
+ - 快捷操作
169
225
 
170
- - **健康检查**:`ctx doctor` 一键诊断系统健康状态
171
- - Node.js 版本兼容性检查
172
- - 配置文件完整性验证
173
- - 端口占用情况检测
174
- - 磁盘空间监控
175
- - **日志管理**:`ctx logs` 查看和管理各类日志
176
- - 支持按类型筛选(UI/Claude/Codex/Gemini)
177
- - 实时跟踪模式(--follow)
178
- - 灵活的行数控制
179
- - **使用统计**:`ctx stats` 查看详细统计信息
180
- - 会话数量和分布
181
- - Token 使用情况
182
- - API 调用统计
226
+ ### 项目 / 会话
183
227
 
184
- ### 实时监控
228
+ - 项目列表与排序
229
+ - 最近会话
230
+ - 全局搜索
231
+ - 会话别名
232
+ - 会话 Fork
233
+ - 会话详情查看
185
234
 
186
- - **WebSocket 推送**:实时查看 API 请求详情
187
- - **Token 统计**:输入/输出/缓存写入/缓存命中分类统计
188
- - **成本估算**:基于自定义价格计算 API 调用成本
235
+ ### 工作区
189
236
 
190
- ---
237
+ - 聚合多个项目为一个工作区
238
+ - 支持为 Git 仓库创建 worktree
239
+ - 支持使用工作区内配置模版
191
240
 
192
- ## 🎨 使用技巧
241
+ ### 配置与扩展
193
242
 
194
- <details>
195
- <summary><b>多渠道负载均衡配置</b></summary>
243
+ - Config Templates
244
+ - Prompts
245
+ - Skills
246
+ - Commands
247
+ - Agents
248
+ - MCP
249
+ - Plugins
250
+ - OAuth Credentials
251
+ - Config Export / Import
196
252
 
197
- 1. 在 Web UI 的渠道管理中添加多个渠道
198
- 2. 点击渠道卡片上的「启用」按钮,启用需要参与负载均衡的渠道
199
- 3. 设置每个渠道的**权重**(1-100),权重越高获得的请求越多
200
- 4. 设置每个渠道的**最大并发数**,控制同时处理的请求数量
201
- 5. 启动代理后,系统自动按权重分配请求到各个启用的渠道
253
+ ### Analytics
202
254
 
203
- > **提示**:渠道出现问题时会自动冻结,恢复后自动解冻,无需人工干预
255
+ - 多平台统一统计
256
+ - 模型 / 渠道 / 工具维度分析
257
+ - 1d / 3d / 7d / 30d / 90d / 自定义区间
258
+ - CSV / JSON 导出
204
259
 
205
- </details>
260
+ ## 默认端口
206
261
 
207
- <details>
208
- <summary><b>模型智能重定向(节省 Token)</b></summary>
262
+ | 服务 | 默认端口 |
263
+ | --- | --- |
264
+ | Web UI / WebSocket | `19999` |
265
+ | Claude Proxy | `20088` |
266
+ | Codex Proxy | `20089` |
267
+ | Gemini Proxy | `20090` |
268
+ | OpenCode Proxy | `20091` |
209
269
 
210
- 在代理模式下,可以将高成本模型自动重定向到低成本模型,大幅节省 token 消耗。
270
+ 可通过 `ctx port` 修改。
211
271
 
212
- **使用场景**:
213
- - GitHub 插件或 oh-my-claudecode skills 默认使用 opus 模型
214
- - 修改插件配置过于复杂,希望透明地降低成本
272
+ ## 目录与数据存放
215
273
 
216
- **配置步骤**:
217
- 1. 启动代理:`ctx proxy start`
218
- 2. 在 Web UI 中编辑渠道,展开「模型重定向」部分
219
- 3. 配置重定向规则,例如:
220
- - **Opus 重定向** → `claude-sonnet-4-5`(将所有 opus 请求重定向到 sonnet)
221
- - **Sonnet 重定向** → 留空(保持不变)
222
- - **Haiku 重定向** → 留空(保持不变)
223
- 4. 保存配置,重定向立即生效
274
+ ### Coding-Tool-X 中央目录
224
275
 
225
- **成本节省示例**:
226
- - Opus → Sonnet:节省约 **80%** 成本($15/M → $3/M 输入,$75/M → $15/M 输出)
227
- - 对于大量使用 opus 的场景,成本节省非常显著
276
+ 默认集中存放在:
228
277
 
229
- **验证重定向**:
230
- - 查看代理服务器控制台,会输出重定向日志:
231
- ```
232
- [Model Redirect] claude-opus-4-20250514 → claude-sonnet-4-5 (channel: xxx)
233
- ```
278
+ ```text
279
+ ~/.cc-tool
280
+ ```
234
281
 
235
- > **注意**:模型重定向仅在代理开启时生效。代理关闭时,modelConfig 用于模型映射(写入 settings.json)。
282
+ 其中常见文件/目录包括:
236
283
 
237
- 详细文档:[docs/model-redirection.md](docs/model-redirection.md)
284
+ - `config/`:主配置、UI 配置、Prompts、MCP、OAuth、工作区等集中配置
285
+ - `storage/`:渠道、运行时状态、统计、缓存、请求快照、托管 skills 仓库等内部数据
286
+ - `logs/`:日志
287
+ - `configs/`:同步管理的 skills / commands / agents / plugins
288
+ - `plugins/`:插件安装与插件配置
238
289
 
239
- </details>
290
+ ### 平台原生配置目录
240
291
 
241
- <details>
242
- <summary><b>后台运行服务</b></summary>
292
+ 工具会继续读写各平台的原生配置目录:
243
293
 
244
- 1. 使用 `ctx daemon start` 启动后台服务
245
- 2. 服务启动后,可以安全关闭终端窗口
246
- 3. 使用 `ctx daemon status` 随时查看运行状态
247
- 4. 使用 `ctx daemon logs` 查看实时日志
294
+ - Claude:`~/.claude`
295
+ - Codex:`${CODEX_HOME:-~/.codex}`
296
+ - Gemini:`~/.gemini`
297
+ - OpenCode:按系统/XDG 规则解析,常见为:
298
+ - 配置:`~/.config/opencode`
299
+ - 数据:`~/.local/share/opencode`
248
300
 
249
- > **优势**:无需保持终端窗口打开,服务持久运行
301
+ 说明:
250
302
 
251
- </details>
303
+ - Coding-Tool-X 负责集中管理与同步
304
+ - 平台自身仍然可以直接使用原生目录
305
+ - 仓库内实现对旧的 `~/.claude/cc-tool` 数据做自动迁移
252
306
 
253
- <details>
254
- <summary><b>系统诊断</b></summary>
307
+ ## 开发
255
308
 
256
- 遇到问题时,首先运行 `ctx doctor` 进行全面诊断:
309
+ ### 安装依赖
257
310
 
258
311
  ```bash
259
- ctx doctor
312
+ npm install
260
313
  ```
261
314
 
262
- 诊断工具会自动检查:
263
- - Node.js 版本是否兼容
264
- - 配置文件是否正常
265
- - 端口是否被占用
266
- - 磁盘空间是否充足
267
-
268
- 并提供针对性的修复建议。
269
-
270
- </details>
271
-
272
- <details>
273
- <summary><b>日志管理</b></summary>
274
-
275
- 查看实时日志,排查问题:
315
+ ### 启动前端开发服务器
276
316
 
277
317
  ```bash
278
- # 实时跟踪所有日志
279
- ctx logs --follow
280
-
281
- # 查看 Claude 代理日志的最后 100 行
282
- ctx logs claude --lines 100
283
-
284
- # 清空所有日志文件
285
- ctx logs --clear
318
+ npm run dev:web
286
319
  ```
287
320
 
288
- </details>
289
-
290
- <details>
291
- <summary><b>全局搜索</b></summary>
292
-
293
- 1. 在任意页面按 `⌘/Ctrl + K`
294
- 2. 输入关键词搜索所有项目的会话内容
295
- 3. 点击搜索结果直接启动对话
296
-
297
- </details>
298
-
299
- <details>
300
- <summary><b>渠道管理</b></summary>
301
-
302
- 1. 在渠道列表中点击「启用/禁用」按钮切换渠道状态
303
- 2. 启用的渠道会自动参与负载均衡
304
- 3. 可以随时调整权重和并发数,实时生效
305
- 4. 渠道健康状态异常时可点击「重置」恢复
306
-
307
- > **注意**:使用 `ctx daemon start` 后台运行时,渠道变更会实时生效
308
-
309
- </details>
310
-
311
- <details>
312
- <summary><b>Fork 会话</b></summary>
313
-
314
- 1. 在会话列表中点击 Fork 按钮
315
- 2. 新会话继承原会话的所有历史消息
316
- 3. 可以基于相同上下文探索不同方向
317
-
318
- </details>
319
-
320
- ---
321
-
322
- ## ❓ 常见问题
323
-
324
- <details>
325
- <summary>如何后台运行服务?</summary>
326
-
327
- 使用 `ctx daemon start` 启动后台服务,基于 PM2 进程管理,启动后可以安全关闭终端窗口。
328
-
329
- 查看状态:`ctx daemon status`
330
- 查看日志:`ctx daemon logs`
331
- 停止服务:`ctx daemon stop`
332
-
333
- </details>
334
-
335
- <details>
336
- <summary>后台服务如何开机自启?</summary>
337
-
338
- 在 Web UI 的设置中,开启"开机自启"选项,或使用 API:
321
+ ### 启动后端开发模式
339
322
 
340
323
  ```bash
341
- ctx daemon start
342
- # 然后在 Web UI 设置中启用开机自启
324
+ npm run dev:server
343
325
  ```
344
326
 
345
- </details>
346
-
347
- <details>
348
- <summary>如何查看运行日志?</summary>
349
-
350
- 使用 `ctx logs` 命令:
327
+ ### 构建前端
351
328
 
352
329
  ```bash
353
- ctx logs # 查看所有日志
354
- ctx logs claude # 查看 Claude 代理日志
355
- ctx logs --follow # 实时跟踪日志
356
- ctx logs --clear # 清空日志
330
+ npm run build:web
357
331
  ```
358
332
 
359
- 日志文件存储在 `~/.cc-tool/logs/` 目录。
360
-
361
- </details>
362
-
363
- <details>
364
- <summary>遇到问题如何诊断?</summary>
365
-
366
- 运行 `ctx doctor` 进行系统诊断,会自动检查:
367
- - Node.js 版本
368
- - 配置文件
369
- - 端口占用
370
- - 磁盘空间
371
- - 进程状态
333
+ ### 运行测试
372
334
 
373
- 并提供针对性的修复建议。
374
-
375
- </details>
376
-
377
- <details>
378
- <summary>如何配置多渠道负载均衡?</summary>
379
-
380
- 1. 添加多个渠道到系统
381
- 2. 启用需要参与负载均衡的渠道
382
- 3. 为每个渠道设置权重和最大并发数
383
- 4. 启动代理,系统自动按权重分配请求
384
-
385
- 渠道出现问题时会自动冻结,恢复后自动解冻。
386
-
387
- </details>
388
-
389
- <details>
390
- <summary>动态切换不生效?</summary>
391
-
392
- 1.6.0 版本后,不再需要手动切换"默认渠道"。系统会自动在所有启用的渠道间进行负载均衡。
393
-
394
- 确保至少有一个渠道处于启用状态,代理启动后会自动使用。
395
-
396
- </details>
397
-
398
- <details>
399
- <summary>实时日志不显示?</summary>
400
-
401
- 实时日志需要先开启「动态切换」功能,代理服务运行后才能捕获请求。
402
-
403
- 推荐使用 `ctx daemon start` 后台运行,然后通过 `ctx logs --follow` 查看实时日志。
404
-
405
- </details>
406
-
407
- <details>
408
- <summary>如何备份配置?</summary>
409
-
410
- 直接复制以下目录即可备份所有配置和数据:
411
- - 配置:`~/.cc-tool/`
412
- - 日志:`~/.cc-tool/logs/`
413
-
414
- </details>
415
-
416
- ---
335
+ ```bash
336
+ npm test
337
+ ```
417
338
 
418
- ## 📝 更新日志
339
+ 当前仓库内置的测试覆盖了基础命令、API 一致性、Codex agents 与 skills provider 回归。
419
340
 
420
- ### v2.4.0 (2026-01-18)
341
+ ## 与上游仓库的关系
421
342
 
422
- **模板管理增强**
423
- - ♻️ 移除内置/自定义模板区分:所有模板在界面上不再显示"内置"或"自定义"标签
424
- - 🔓 允许编辑所有模板:内置模板现在可以编辑和删除,编辑后自动保存为自定义覆盖版本
425
- - 🎨 简化模板显示:配置模板下拉选项中不再显示"(内置)"后缀
343
+ 本仓库不是对上游 README 的原样搬运,而是在 [CooperJiang/coding-tool](https://github.com/CooperJiang/coding-tool) 的基础上继续演进。当前代码相较原始项目,重点扩展在:
426
344
 
427
- 查看完整更新日志:**[CHANGELOG.md](CHANGELOG.md)**
345
+ - 四平台统一支持:Claude / Codex / Gemini / OpenCode
346
+ - 分平台代理与统计体系
347
+ - OpenCode 网关适配、会话转换与导出
348
+ - Skills / Commands / Agents / Prompts / MCP 的集中管理
349
+ - OAuth 凭证管理与原生配置同步
350
+ - 工作区、Git worktree、配置模板、配置导入导出
351
+ - 更完整的 Dashboard 与 Analytics 面板
428
352
 
429
- ---
353
+ ## 已知说明
430
354
 
431
- ## 🤝 贡献
355
+ - `ctx ui --host` 开启 LAN 访问时,默认不允许远程写操作,这是服务端的安全保护,不是故障。
356
+ - 部分高级能力依赖目标平台本身的原生目录存在;首次使用前请先启动对应 CLI。
432
357
 
433
- 欢迎提交 [Issue](https://github.com/ZeaoZhang/coding-tool/issues) 和 [Pull Request](https://github.com/ZeaoZhang/coding-tool/pulls)!
358
+ ## 相关文档
434
359
 
435
- ---
360
+ - [CHANGELOG.md](CHANGELOG.md)
361
+ - [docs/multi-channel-load-balancing.md](docs/multi-channel-load-balancing.md)
362
+ - [src/web/README.md](src/web/README.md)
436
363
 
437
- ## 📄 许可证
364
+ ## License
438
365
 
439
- [MIT License](LICENSE) © 2026
366
+ [MIT](LICENSE)