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.
- package/CHANGELOG.md +17 -2
- package/README.md +253 -326
- package/dist/web/assets/{Analytics-DLpoDZ2M.js → Analytics-DEjfL5Jx.js} +4 -4
- package/dist/web/assets/Analytics-RNn1BUbG.css +1 -0
- package/dist/web/assets/{ConfigTemplates-D_hRb55W.js → ConfigTemplates-DkRL_-tf.js} +1 -1
- package/dist/web/assets/Home-BQxQ1LhR.css +1 -0
- package/dist/web/assets/Home-CF-L640I.js +1 -0
- package/dist/web/assets/{PluginManager-JXsyym1s.js → PluginManager-BzNYTdNB.js} +1 -1
- package/dist/web/assets/{ProjectList-DZWSeb-q.js → ProjectList-C0-JgHMM.js} +1 -1
- package/dist/web/assets/{SessionList-Cs624DR3.js → SessionList-CkZUdX5N.js} +1 -1
- package/dist/web/assets/{SkillManager-bEliz7qz.js → SkillManager-Cak0-4d4.js} +1 -1
- package/dist/web/assets/{WorkspaceManager-J3RecFGn.js → WorkspaceManager-CGDJzwEr.js} +1 -1
- package/dist/web/assets/{icons-Cuc23WS7.js → icons-B5Pl4lrD.js} +1 -1
- package/dist/web/assets/index-D_WItvHE.js +2 -0
- package/dist/web/assets/index-Dz7v9OM0.css +1 -0
- package/dist/web/assets/{markdown-C9MYpaSi.js → markdown-DyTJGI4N.js} +1 -1
- package/dist/web/assets/{naive-ui-CxpuzdjU.js → naive-ui-Bdxp09n2.js} +1 -1
- package/dist/web/assets/{vendors-DMjSfzlv.js → vendors-CKPV1OAU.js} +2 -2
- package/dist/web/assets/{vue-vendor-DET08QYg.js → vue-vendor-3bf-fPGP.js} +1 -1
- package/dist/web/index.html +7 -7
- package/docs/home.png +0 -0
- package/package.json +13 -5
- package/src/commands/daemon.js +3 -2
- package/src/commands/security.js +1 -2
- package/src/config/paths.js +638 -93
- package/src/server/api/agents.js +1 -1
- package/src/server/api/claude-hooks.js +13 -8
- package/src/server/api/codex-proxy.js +5 -4
- package/src/server/api/hooks.js +45 -0
- package/src/server/api/plugins.js +0 -1
- package/src/server/api/statistics.js +4 -4
- package/src/server/api/ui-config.js +5 -0
- package/src/server/api/workspaces.js +1 -3
- package/src/server/codex-proxy-server.js +89 -59
- package/src/server/gemini-proxy-server.js +107 -88
- package/src/server/index.js +1 -0
- package/src/server/opencode-proxy-server.js +381 -225
- package/src/server/proxy-server.js +86 -60
- package/src/server/services/alias.js +3 -3
- package/src/server/services/channels.js +3 -2
- package/src/server/services/codex-channels.js +38 -87
- package/src/server/services/codex-env-manager.js +426 -0
- package/src/server/services/codex-settings-manager.js +15 -15
- package/src/server/services/codex-statistics-service.js +3 -27
- package/src/server/services/config-export-service.js +20 -7
- package/src/server/services/config-registry-service.js +3 -2
- package/src/server/services/config-sync-manager.js +1 -1
- package/src/server/services/favorites.js +4 -3
- package/src/server/services/gemini-channels.js +3 -3
- package/src/server/services/gemini-statistics-service.js +3 -25
- package/src/server/services/mcp-service.js +2 -3
- package/src/server/services/model-detector.js +4 -3
- package/src/server/services/native-oauth-adapters.js +2 -1
- package/src/server/services/network-access.js +39 -1
- package/src/server/services/notification-hooks.js +951 -0
- package/src/server/services/opencode-channels.js +6 -6
- package/src/server/services/opencode-sessions.js +2 -2
- package/src/server/services/opencode-statistics-service.js +3 -27
- package/src/server/services/plugins-service.js +110 -31
- package/src/server/services/prompts-service.js +2 -3
- package/src/server/services/proxy-log-helper.js +242 -0
- package/src/server/services/proxy-runtime.js +6 -4
- package/src/server/services/repo-scanner-base.js +12 -4
- package/src/server/services/request-logger.js +7 -7
- package/src/server/services/security-config.js +4 -4
- package/src/server/services/session-cache.js +2 -2
- package/src/server/services/sessions.js +2 -2
- package/src/server/services/skill-service.js +174 -55
- package/src/server/services/statistics-service.js +10 -6
- package/src/server/services/ui-config.js +4 -3
- package/src/server/services/workspace-service.js +101 -156
- package/src/server/websocket-server.js +5 -4
- package/dist/web/assets/Analytics-DuYvId7u.css +0 -1
- package/dist/web/assets/Home-BMoFdAwy.css +0 -1
- package/dist/web/assets/Home-DNwp-0J-.js +0 -1
- package/dist/web/assets/index-BXeSvAwU.js +0 -2
- package/dist/web/assets/index-DWAC3Tdv.css +0 -1
- package/docs/bannel.png +0 -0
- package/docs/model-redirection.md +0 -251
package/README.md
CHANGED
|
@@ -1,439 +1,366 @@
|
|
|
1
|
-
|
|
1
|
+
# Coding-Tool-X
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> 面向 Claude Code、Codex CLI、Gemini CLI、OpenCode 的统一增强控制台
|
|
4
|
+
> Web UI + CLI + Proxy + Config Sync + MCP/Skills/Agents/Prompts 管理
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
本项目基于 [CooperJiang/coding-tool](https://github.com/CooperJiang/coding-tool) 扩展而来,在原有会话管理和渠道切换能力之上,继续补齐了多平台代理、配置同步、工作区编排、MCP 管理、Skills/Commands/Agents 管理、OAuth 凭证管理、配置导入导出、OpenCode 适配与分析面板等能力。
|
|
7
|
+
|
|
8
|
+

|
|
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
|
-
|
|
33
|
+
- 集中存储项目配置到 `~/.cc-tool`
|
|
34
|
+
- 自动读写平台原生配置目录,而不是替换你的平台使用方式
|
|
35
|
+
- 支持 Prompts 预设创建、激活、停用与平台状态查看
|
|
36
|
+
- 支持配置模板、工作区模板与导入配置时的预览
|
|
37
|
+
- 支持 ZIP / JSON 配置导入导出
|
|
38
|
+
- 支持 Claude / Codex / Gemini / OpenCode 的配置同步
|
|
8
39
|
|
|
9
|
-
|
|
40
|
+
### 3. 扩展能力
|
|
10
41
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
49
|
+
### 4. 运维与观测
|
|
18
50
|
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
125
|
+
ctx start
|
|
126
|
+
ctx status
|
|
73
127
|
```
|
|
74
128
|
|
|
75
|
-
|
|
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
|
-
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
|
|
157
|
+
```bash
|
|
158
|
+
ctx claude start
|
|
159
|
+
ctx codex start
|
|
160
|
+
ctx gemini start
|
|
161
|
+
ctx opencode start
|
|
162
|
+
```
|
|
106
163
|
|
|
107
|
-
|
|
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
|
|
135
|
-
| `ctx
|
|
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
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
|
|
163
|
-
- **持久化运行**:启动后可关闭终端,服务持续运行
|
|
164
|
-
- **开机自启**:支持系统启动时自动启动服务
|
|
165
|
-
- **日志管理**:统一日志存储,支持实时查看和清理
|
|
166
|
-
- **状态监控**:随时查看后台服务运行状态
|
|
218
|
+
### 首页 Dashboard
|
|
167
219
|
|
|
168
|
-
|
|
220
|
+
- 四个平台列式面板
|
|
221
|
+
- 拖拽排序
|
|
222
|
+
- 代理状态
|
|
223
|
+
- 实时日志
|
|
224
|
+
- 快捷操作
|
|
169
225
|
|
|
170
|
-
|
|
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
|
-
|
|
187
|
-
- **Token 统计**:输入/输出/缓存写入/缓存命中分类统计
|
|
188
|
-
- **成本估算**:基于自定义价格计算 API 调用成本
|
|
235
|
+
### 工作区
|
|
189
236
|
|
|
190
|
-
|
|
237
|
+
- 聚合多个项目为一个工作区
|
|
238
|
+
- 支持为 Git 仓库创建 worktree
|
|
239
|
+
- 支持使用工作区内配置模版
|
|
191
240
|
|
|
192
|
-
|
|
241
|
+
### 配置与扩展
|
|
193
242
|
|
|
194
|
-
|
|
195
|
-
|
|
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
|
-
|
|
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
|
-
|
|
260
|
+
## 默认端口
|
|
206
261
|
|
|
207
|
-
|
|
208
|
-
|
|
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
|
-
|
|
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
|
-
|
|
282
|
+
其中常见文件/目录包括:
|
|
236
283
|
|
|
237
|
-
|
|
284
|
+
- `config/`:主配置、UI 配置、Prompts、MCP、OAuth、工作区等集中配置
|
|
285
|
+
- `storage/`:渠道、运行时状态、统计、缓存、请求快照、托管 skills 仓库等内部数据
|
|
286
|
+
- `logs/`:日志
|
|
287
|
+
- `configs/`:同步管理的 skills / commands / agents / plugins
|
|
288
|
+
- `plugins/`:插件安装与插件配置
|
|
238
289
|
|
|
239
|
-
|
|
290
|
+
### 平台原生配置目录
|
|
240
291
|
|
|
241
|
-
|
|
242
|
-
<summary><b>后台运行服务</b></summary>
|
|
292
|
+
工具会继续读写各平台的原生配置目录:
|
|
243
293
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
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
|
-
|
|
303
|
+
- Coding-Tool-X 负责集中管理与同步
|
|
304
|
+
- 平台自身仍然可以直接使用原生目录
|
|
305
|
+
- 仓库内实现对旧的 `~/.claude/cc-tool` 数据做自动迁移
|
|
252
306
|
|
|
253
|
-
|
|
254
|
-
<summary><b>系统诊断</b></summary>
|
|
307
|
+
## 开发
|
|
255
308
|
|
|
256
|
-
|
|
309
|
+
### 安装依赖
|
|
257
310
|
|
|
258
311
|
```bash
|
|
259
|
-
|
|
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
|
-
|
|
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
|
-
|
|
342
|
-
# 然后在 Web UI 设置中启用开机自启
|
|
324
|
+
npm run dev:server
|
|
343
325
|
```
|
|
344
326
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
<details>
|
|
348
|
-
<summary>如何查看运行日志?</summary>
|
|
349
|
-
|
|
350
|
-
使用 `ctx logs` 命令:
|
|
327
|
+
### 构建前端
|
|
351
328
|
|
|
352
329
|
```bash
|
|
353
|
-
|
|
354
|
-
ctx logs claude # 查看 Claude 代理日志
|
|
355
|
-
ctx logs --follow # 实时跟踪日志
|
|
356
|
-
ctx logs --clear # 清空日志
|
|
330
|
+
npm run build:web
|
|
357
331
|
```
|
|
358
332
|
|
|
359
|
-
|
|
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
|
-
|
|
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
|
-
|
|
341
|
+
## 与上游仓库的关系
|
|
421
342
|
|
|
422
|
-
|
|
423
|
-
- ♻️ 移除内置/自定义模板区分:所有模板在界面上不再显示"内置"或"自定义"标签
|
|
424
|
-
- 🔓 允许编辑所有模板:内置模板现在可以编辑和删除,编辑后自动保存为自定义覆盖版本
|
|
425
|
-
- 🎨 简化模板显示:配置模板下拉选项中不再显示"(内置)"后缀
|
|
343
|
+
本仓库不是对上游 README 的原样搬运,而是在 [CooperJiang/coding-tool](https://github.com/CooperJiang/coding-tool) 的基础上继续演进。当前代码相较原始项目,重点扩展在:
|
|
426
344
|
|
|
427
|
-
|
|
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
|
-
|
|
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
|
|
366
|
+
[MIT](LICENSE)
|