@kaitranntt/ccs 5.16.0 → 5.17.0-dev.1
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 +107 -927
- package/VERSION +1 -1
- package/dist/cliproxy/auth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth-handler.js +23 -20
- package/dist/cliproxy/auth-handler.js.map +1 -1
- package/dist/cliproxy/binary-manager.d.ts +25 -0
- package/dist/cliproxy/binary-manager.d.ts.map +1 -1
- package/dist/cliproxy/binary-manager.js +86 -5
- package/dist/cliproxy/binary-manager.js.map +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +45 -17
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/config-generator.d.ts.map +1 -1
- package/dist/cliproxy/config-generator.js +6 -3
- package/dist/cliproxy/config-generator.js.map +1 -1
- package/dist/cliproxy/index.d.ts +1 -1
- package/dist/cliproxy/index.d.ts.map +1 -1
- package/dist/cliproxy/index.js +7 -2
- package/dist/cliproxy/index.js.map +1 -1
- package/dist/commands/cliproxy-command.d.ts.map +1 -1
- package/dist/commands/cliproxy-command.js +50 -19
- package/dist/commands/cliproxy-command.js.map +1 -1
- package/dist/commands/install-command.d.ts +2 -2
- package/dist/commands/install-command.d.ts.map +1 -1
- package/dist/commands/install-command.js +9 -6
- package/dist/commands/install-command.js.map +1 -1
- package/dist/commands/migrate-command.d.ts.map +1 -1
- package/dist/commands/migrate-command.js +20 -20
- package/dist/commands/migrate-command.js.map +1 -1
- package/dist/commands/shell-completion-command.d.ts.map +1 -1
- package/dist/commands/shell-completion-command.js +10 -9
- package/dist/commands/shell-completion-command.js.map +1 -1
- package/dist/commands/sync-command.d.ts.map +1 -1
- package/dist/commands/sync-command.js +5 -4
- package/dist/commands/sync-command.js.map +1 -1
- package/dist/commands/update-command.d.ts.map +1 -1
- package/dist/commands/update-command.js +59 -46
- package/dist/commands/update-command.js.map +1 -1
- package/dist/commands/version-command.d.ts +1 -1
- package/dist/commands/version-command.d.ts.map +1 -1
- package/dist/commands/version-command.js +18 -17
- package/dist/commands/version-command.js.map +1 -1
- package/dist/config/migration-manager.d.ts.map +1 -1
- package/dist/config/migration-manager.js +4 -7
- package/dist/config/migration-manager.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts +1 -0
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +27 -2
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +2 -0
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +5 -5
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/delegation/delegation-handler.d.ts.map +1 -1
- package/dist/delegation/delegation-handler.js +6 -5
- package/dist/delegation/delegation-handler.js.map +1 -1
- package/dist/delegation/headless-executor.d.ts.map +1 -1
- package/dist/delegation/headless-executor.js +14 -14
- package/dist/delegation/headless-executor.js.map +1 -1
- package/dist/management/doctor.d.ts +6 -2
- package/dist/management/doctor.d.ts.map +1 -1
- package/dist/management/doctor.js +109 -21
- package/dist/management/doctor.js.map +1 -1
- package/dist/management/recovery-manager.d.ts.map +1 -1
- package/dist/management/recovery-manager.js +3 -2
- package/dist/management/recovery-manager.js.map +1 -1
- package/dist/management/shared-manager.d.ts.map +1 -1
- package/dist/management/shared-manager.js +19 -18
- package/dist/management/shared-manager.js.map +1 -1
- package/dist/ui/assets/{accounts-Bl9qfu_d.js → accounts-BeL69fgi.js} +1 -1
- package/dist/ui/assets/analytics-CAiq9C19.js +64 -0
- package/dist/ui/assets/{api-DoPJHgqb.js → api-CvY-Z9t4.js} +1 -1
- package/dist/ui/assets/{cliproxy-DRxRpTJv.js → cliproxy-DbfUkLCy.js} +1 -1
- package/dist/ui/assets/cliproxy-control-panel-DTiBzA5u.js +1 -0
- package/dist/ui/assets/{code-editor-ek-uxeLN.js → code-editor-xnukAIwJ.js} +1 -1
- package/dist/ui/assets/{health-DBc3-gE9.js → health-D29me3pE.js} +1 -1
- package/dist/ui/assets/icons-Alnq4BWm.js +1 -0
- package/dist/ui/assets/{index-D-zCRwmw.js → index-CVMaabkX.js} +5 -5
- package/dist/ui/assets/{settings-Dh8DSszQ.js → settings-C-IIOnQo.js} +1 -1
- package/dist/ui/assets/{shared-n31ZWpeq.js → shared-DRWHGJPD.js} +1 -1
- package/dist/ui/index.html +2 -2
- package/dist/utils/claude-dir-installer.js +3 -3
- package/dist/utils/claude-dir-installer.js.map +1 -1
- package/dist/utils/claude-symlink-manager.js +3 -3
- package/dist/utils/claude-symlink-manager.js.map +1 -1
- package/dist/utils/config-manager.js +10 -10
- package/dist/utils/config-manager.js.map +1 -1
- package/dist/utils/error-manager.d.ts.map +1 -1
- package/dist/utils/error-manager.js +11 -4
- package/dist/utils/error-manager.js.map +1 -1
- package/dist/utils/platform-commands.d.ts +53 -0
- package/dist/utils/platform-commands.d.ts.map +1 -0
- package/dist/utils/platform-commands.js +189 -0
- package/dist/utils/platform-commands.js.map +1 -0
- package/dist/utils/update-checker.d.ts.map +1 -1
- package/dist/utils/update-checker.js +5 -5
- package/dist/utils/update-checker.js.map +1 -1
- package/dist/web-server/data-aggregator.d.ts +11 -1
- package/dist/web-server/data-aggregator.d.ts.map +1 -1
- package/dist/web-server/data-aggregator.js +87 -1
- package/dist/web-server/data-aggregator.js.map +1 -1
- package/dist/web-server/shutdown.d.ts.map +1 -1
- package/dist/web-server/shutdown.js +4 -3
- package/dist/web-server/shutdown.js.map +1 -1
- package/dist/web-server/usage-disk-cache.d.ts +3 -2
- package/dist/web-server/usage-disk-cache.d.ts.map +1 -1
- package/dist/web-server/usage-disk-cache.js +11 -9
- package/dist/web-server/usage-disk-cache.js.map +1 -1
- package/dist/web-server/usage-routes.d.ts.map +1 -1
- package/dist/web-server/usage-routes.js +173 -17
- package/dist/web-server/usage-routes.js.map +1 -1
- package/dist/web-server/usage-types.d.ts +13 -0
- package/dist/web-server/usage-types.d.ts.map +1 -1
- package/dist/web-server/websocket.d.ts.map +1 -1
- package/dist/web-server/websocket.js +7 -6
- package/dist/web-server/websocket.js.map +1 -1
- package/package.json +3 -3
- package/dist/ui/assets/analytics-BHnr8pTE.js +0 -64
- package/dist/ui/assets/cliproxy-control-panel-CNpMpeWs.js +0 -1
- package/dist/ui/assets/icons-CqXn5eV0.js +0 -1
package/README.md
CHANGED
|
@@ -4,1070 +4,250 @@
|
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
7
|
-
###
|
|
8
|
-
|
|
9
|
-
**Switch between multiple Claude accounts, GLM, and Kimi instantly.**<br>
|
|
10
|
-
Stop hitting rate limits. Keep working continuously.<br>
|
|
11
|
-
Features a modern React 19 dashboard with real-time updates.
|
|
7
|
+
### Manage multiple AI accounts from one dashboard.
|
|
8
|
+
Run Claude, Gemini, GLM, and more - concurrently, without conflicts.
|
|
12
9
|
|
|
13
10
|
[](LICENSE)
|
|
14
|
-
[]()
|
|
15
|
-
[](https://claudekit.cc?ref=HMNKXOHN)
|
|
16
|
-
|
|
17
11
|
[](https://www.npmjs.com/package/@kaitranntt/ccs)
|
|
18
|
-
[](https://www.typescriptlang.org/)
|
|
12
|
+
[](https://claudekit.cc?ref=HMNKXOHN)
|
|
20
13
|
|
|
21
|
-
**
|
|
14
|
+
**[Features & Pricing](https://ccs.kaitran.ca)** | **[Documentation](./docs/en/)** | [Tiếng Việt](docs/vi/README.md) | [日本語](docs/ja/README.md)
|
|
22
15
|
|
|
23
16
|
</div>
|
|
24
17
|
|
|
25
18
|
<br>
|
|
26
19
|
|
|
27
|
-
##
|
|
28
|
-
|
|
29
|
-
### Installation
|
|
30
|
-
|
|
31
|
-
**npm Package (Recommended)**
|
|
32
|
-
|
|
33
|
-
**macOS / Linux / Windows**
|
|
34
|
-
```bash
|
|
35
|
-
npm install -g @kaitranntt/ccs
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
**All major package managers are supported:**
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
# yarn
|
|
42
|
-
yarn global add @kaitranntt/ccs
|
|
43
|
-
|
|
44
|
-
# pnpm (70% less disk space)
|
|
45
|
-
pnpm add -g @kaitranntt/ccs
|
|
46
|
-
|
|
47
|
-
# bun (30x faster)
|
|
48
|
-
bun add -g @kaitranntt/ccs
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
<details>
|
|
52
|
-
<summary><strong>[!] DEPRECATED: Native Shell Installers (Legacy)</strong></summary>
|
|
53
|
-
|
|
54
|
-
<br>
|
|
55
|
-
|
|
56
|
-
> [!WARNING]
|
|
57
|
-
> **These installers are deprecated and will be removed in a future version.**
|
|
58
|
-
> They now auto-redirect to npm installation. Please use npm directly.
|
|
59
|
-
|
|
60
|
-
**macOS / Linux**
|
|
61
|
-
```bash
|
|
62
|
-
curl -fsSL ccs.kaitran.ca/install | bash
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
**Windows PowerShell**
|
|
66
|
-
```powershell
|
|
67
|
-
irm ccs.kaitran.ca/install | iex
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**Note:** Scripts show deprecation warning and automatically run npm installation if Node.js is available.
|
|
20
|
+
## The Three Pillars
|
|
71
21
|
|
|
72
|
-
|
|
22
|
+
| Capability | What It Does | Manage Via |
|
|
23
|
+
|------------|--------------|------------|
|
|
24
|
+
| **Multiple Claude Accounts** | Run work + personal Claude subs simultaneously | Dashboard |
|
|
25
|
+
| **OAuth Providers** | Gemini, Codex, Antigravity - zero API keys needed | Dashboard |
|
|
26
|
+
| **API Profiles** | GLM, Kimi with your own API keys | Dashboard |
|
|
73
27
|
|
|
74
28
|
<br>
|
|
75
29
|
|
|
76
|
-
##
|
|
77
|
-
|
|
78
|
-
**New in v5.0.0**: Instant access to premium models with zero API key setup. Browser-based OAuth authentication.
|
|
79
|
-
|
|
80
|
-
> Powered by [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) - the universal API proxy for AI models.
|
|
81
|
-
|
|
82
|
-
| Provider | Default Model | Opus | Haiku | Example |
|
|
83
|
-
|:---------|:--------------|:-----|:------|:--------|
|
|
84
|
-
| **Gemini** | gemini-2.5-pro | gemini-2.5-pro | gemini-2.5-flash | `ccs gemini "explain code"` |
|
|
85
|
-
| **Codex** | gpt-5.1-codex-max | gpt-5.1-codex-max-high | gpt-5.1-codex-mini-high | `ccs codex "implement API"` |
|
|
86
|
-
| **Antigravity** | gemini-3-pro-preview | gemini-3-pro-preview | gemini-2.5-flash | `ccs agy "review architecture"` |
|
|
87
|
-
|
|
88
|
-
**First Run**: Browser opens for authentication. Tokens cached in `~/.ccs/cliproxy/auth/<provider>/`.
|
|
89
|
-
|
|
90
|
-
**Subsequent Runs**: Instant - no re-auth needed until token expires.
|
|
91
|
-
|
|
92
|
-
### Authentication Commands
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
# Interactive OAuth (default) - browser opens, complete auth
|
|
96
|
-
ccs gemini
|
|
97
|
-
|
|
98
|
-
# Authenticate only (save tokens, don't start session)
|
|
99
|
-
ccs gemini --auth
|
|
100
|
-
ccs codex --auth
|
|
101
|
-
|
|
102
|
-
# Headless mode (for SSH/servers without browser)
|
|
103
|
-
ccs agy --headless # Displays URL, paste in browser elsewhere
|
|
104
|
-
|
|
105
|
-
# Logout (clear tokens)
|
|
106
|
-
ccs gemini --logout
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Multi-Account for OAuth Providers
|
|
110
|
-
|
|
111
|
-
Use multiple accounts per provider (work + personal):
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
# First account (default)
|
|
115
|
-
ccs gemini --auth
|
|
116
|
-
|
|
117
|
-
# Add another account
|
|
118
|
-
ccs gemini --auth --add
|
|
119
|
-
|
|
120
|
-
# Add with nickname for easy identification
|
|
121
|
-
ccs gemini --auth --add --nickname work
|
|
122
|
-
|
|
123
|
-
# Codex provider examples
|
|
124
|
-
ccs codex --auth # First account for Codex
|
|
125
|
-
ccs codex --auth --add # Add another Codex account
|
|
126
|
-
ccs codex --auth --add --nickname work # Named account
|
|
127
|
-
|
|
128
|
-
# List all accounts (any provider)
|
|
129
|
-
ccs gemini --accounts
|
|
130
|
-
ccs codex --accounts
|
|
131
|
-
ccs agy --accounts
|
|
132
|
-
|
|
133
|
-
# Switch to a different account
|
|
134
|
-
ccs gemini --use work
|
|
135
|
-
ccs codex --use work
|
|
136
|
-
ccs agy --use work
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Accounts are stored in `~/.ccs/cliproxy/accounts.json` and can be managed via web dashboard (`ccs config`).
|
|
140
|
-
|
|
141
|
-
### OAuth vs API Key Models
|
|
142
|
-
|
|
143
|
-
| Feature | OAuth Providers<br>(gemini, codex, agy) | API Key Models<br>(glm, kimi) |
|
|
144
|
-
|:--------|:----------------------------------------|:------------------------------|
|
|
145
|
-
| **Setup** | Browser auth on first run | Edit settings.json, add API key |
|
|
146
|
-
| **Token Storage** | `~/.ccs/cliproxy/auth/<provider>/` | `~/.ccs/*.settings.json` |
|
|
147
|
-
| **Renewal** | Automatic (OAuth refresh tokens) | Manual (update key when expired) |
|
|
148
|
-
| **Binary** | Auto-downloads CLIProxyAPI (~15MB) | No additional binaries |
|
|
149
|
-
| **Port** | 8317 (configurable) | N/A |
|
|
150
|
-
| **Best For** | Quick testing, no key management | Production, explicit key control |
|
|
151
|
-
|
|
152
|
-
### Troubleshooting OAuth
|
|
153
|
-
|
|
154
|
-
**OAuth timeout (2min limit)**:
|
|
155
|
-
```bash
|
|
156
|
-
# If browser doesn't load in time:
|
|
157
|
-
ccs gemini --auth --headless # Get URL manually
|
|
158
|
-
```
|
|
30
|
+
## Quick Start
|
|
159
31
|
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
ccs doctor # Check port availability
|
|
163
|
-
# Error: "Port 8317 in use"
|
|
164
|
-
lsof -ti:8317 | xargs kill # Unix: kill process using port
|
|
165
|
-
```
|
|
32
|
+
### 1. Install
|
|
166
33
|
|
|
167
|
-
**Binary download failures**:
|
|
168
34
|
```bash
|
|
169
|
-
|
|
170
|
-
# Manual download: https://github.com/router-for-me/CLIProxyAPI/releases
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
<br>
|
|
174
|
-
|
|
175
|
-
### Configuration (Auto-created)
|
|
176
|
-
|
|
177
|
-
**CCS automatically creates configuration during installation** (via npm postinstall script).
|
|
178
|
-
|
|
179
|
-
**~/.ccs/config.json**:
|
|
180
|
-
```json
|
|
181
|
-
{
|
|
182
|
-
"profiles": {
|
|
183
|
-
"glm": "~/.ccs/glm.settings.json",
|
|
184
|
-
"glmt": "~/.ccs/glmt.settings.json",
|
|
185
|
-
"kimi": "~/.ccs/kimi.settings.json",
|
|
186
|
-
"default": "~/.claude/settings.json"
|
|
187
|
-
}
|
|
188
|
-
}
|
|
35
|
+
npm install -g @kaitranntt/ccs
|
|
189
36
|
```
|
|
190
37
|
|
|
191
38
|
<details>
|
|
192
|
-
<summary
|
|
193
|
-
|
|
194
|
-
<br>
|
|
195
|
-
|
|
196
|
-
If Claude CLI is installed in a non-standard location (D drive, custom directory), set `CCS_CLAUDE_PATH`:
|
|
39
|
+
<summary>Alternative package managers</summary>
|
|
197
40
|
|
|
198
41
|
```bash
|
|
199
|
-
|
|
200
|
-
|
|
42
|
+
yarn global add @kaitranntt/ccs # yarn
|
|
43
|
+
pnpm add -g @kaitranntt/ccs # pnpm (70% less disk space)
|
|
44
|
+
bun add -g @kaitranntt/ccs # bun (30x faster)
|
|
201
45
|
```
|
|
202
46
|
|
|
203
|
-
**See also:** [Troubleshooting Guide](./docs/en/troubleshooting.md#claude-cli-in-non-standard-location) for detailed setup instructions.
|
|
204
|
-
|
|
205
47
|
</details>
|
|
206
48
|
|
|
207
|
-
|
|
208
|
-
<summary><h3>Windows Symlink Support (Developer Mode)</h3></summary>
|
|
209
|
-
|
|
210
|
-
<br>
|
|
211
|
-
|
|
212
|
-
**Windows users**: Enable Developer Mode for true symlinks (better performance, instant sync):
|
|
213
|
-
|
|
214
|
-
1. Open **Settings** → **Privacy & Security** → **For developers**
|
|
215
|
-
2. Enable **Developer Mode**
|
|
216
|
-
3. Reinstall CCS: `npm install -g @kaitranntt/ccs`
|
|
217
|
-
|
|
218
|
-
**Warning:** Without Developer Mode, CCS automatically falls back to copying directories (works but no instant sync across profiles).
|
|
219
|
-
|
|
220
|
-
</details>
|
|
221
|
-
|
|
222
|
-
<br>
|
|
223
|
-
|
|
224
|
-
### Your First Switch
|
|
225
|
-
|
|
226
|
-
> [!IMPORTANT]
|
|
227
|
-
> **Before using alternative models, update API keys in settings files:**
|
|
228
|
-
>
|
|
229
|
-
> - **GLM**: Edit `~/.ccs/glm.settings.json` and add your Z.AI Coding Plan API Key
|
|
230
|
-
> - **GLMT**: Edit `~/.ccs/glmt.settings.json` and add your Z.AI Coding Plan API Key
|
|
231
|
-
> - **Kimi**: Edit `~/.ccs/kimi.settings.json` and add your Kimi API key
|
|
232
|
-
|
|
233
|
-
<br>
|
|
234
|
-
|
|
235
|
-
**Parallel Workflow: Planning + Execution**
|
|
49
|
+
### 2. Open Dashboard
|
|
236
50
|
|
|
237
51
|
```bash
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
# Terminal 2 - Execution (GLM, cost-optimized)
|
|
242
|
-
ccs glm "Implement the user authentication endpoints from the plan"
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
<details>
|
|
246
|
-
<summary><strong>Thinking Models (Kimi & GLMT)</strong></summary>
|
|
247
|
-
|
|
248
|
-
<br>
|
|
249
|
-
|
|
250
|
-
```bash
|
|
251
|
-
# Kimi - Stable thinking support
|
|
252
|
-
ccs kimi "Design a caching strategy with trade-off analysis"
|
|
253
|
-
|
|
254
|
-
# GLMT - Experimental (see full disclaimer below)
|
|
255
|
-
ccs glmt "Debug complex algorithm with reasoning steps"
|
|
52
|
+
ccs config
|
|
53
|
+
# Opens http://localhost:3000
|
|
256
54
|
```
|
|
257
55
|
|
|
258
|
-
|
|
56
|
+
### 3. Configure Your Accounts
|
|
259
57
|
|
|
260
|
-
|
|
58
|
+
The dashboard provides visual management for all account types:
|
|
261
59
|
|
|
262
|
-
|
|
60
|
+
- **Claude Accounts**: Create isolated instances (work, personal, client)
|
|
61
|
+
- **OAuth Providers**: One-click auth for Gemini, Codex, Antigravity
|
|
62
|
+
- **API Profiles**: Configure GLM, Kimi with your keys
|
|
63
|
+
- **Health Monitor**: Real-time status across all profiles
|
|
263
64
|
|
|
264
|
-
|
|
65
|
+
**Analytics (Light/Dark Theme)**
|
|
265
66
|
|
|
266
|
-
|
|
67
|
+

|
|
267
68
|
|
|
268
|
-
|
|
69
|
+

|
|
269
70
|
|
|
270
|
-
**
|
|
271
|
-
</div>
|
|
71
|
+
**API Profiles & OAuth Providers**
|
|
272
72
|
|
|
273
|
-
|
|
274
|
-
Then: 🔴 _"You've reached your usage limit."_
|
|
73
|
+

|
|
275
74
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
## **The Solution: Parallel Workflows**
|
|
279
|
-
|
|
280
|
-
<details>
|
|
281
|
-
<summary><strong>❌ OLD WAY:</strong> Switch When You Hit Limits (Reactive)</summary>
|
|
75
|
+

|
|
282
76
|
|
|
283
77
|
<br>
|
|
284
78
|
|
|
285
|
-
|
|
286
|
-
graph LR
|
|
287
|
-
A[2pm: Building features<br/>In the zone] --> B[3pm: Usage limit hit<br/>BLOCKED]
|
|
288
|
-
B --> C[3:05pm: Stop work<br/>Edit settings.json]
|
|
289
|
-
C --> D[3:15pm: Switch accounts<br/>Context lost]
|
|
290
|
-
D --> E[3:30pm: Restart<br/>Trying to focus]
|
|
291
|
-
E --> F[4pm: Finally productive<br/>Back in flow]
|
|
292
|
-
|
|
293
|
-
style A fill:#d4edda,stroke:#333,color:#000
|
|
294
|
-
style B fill:#f8d7da,stroke:#333,color:#000
|
|
295
|
-
style C fill:#fff3cd,stroke:#333,color:#000
|
|
296
|
-
style D fill:#f8d7da,stroke:#333,color:#000
|
|
297
|
-
style E fill:#fff3cd,stroke:#333,color:#000
|
|
298
|
-
style F fill:#d4edda,stroke:#333,color:#000
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
**Result:** 1 hour lost, momentum destroyed, frustration builds
|
|
79
|
+
## Supported Providers
|
|
302
80
|
|
|
303
|
-
|
|
81
|
+
| Provider | Auth Type | Command | Best For |
|
|
82
|
+
|----------|-----------|---------|----------|
|
|
83
|
+
| **Claude** | Subscription | `ccs` | Default, strategic planning |
|
|
84
|
+
| **Gemini** | OAuth | `ccs gemini` | Zero-config, fast iteration |
|
|
85
|
+
| **Codex** | OAuth | `ccs codex` | Code generation |
|
|
86
|
+
| **Antigravity** | OAuth | `ccs agy` | Alternative routing |
|
|
87
|
+
| **GLM** | API Key | `ccs glm` | Cost-optimized execution |
|
|
88
|
+
| **Kimi** | API Key | `ccs kimi` | Long-context, thinking mode |
|
|
304
89
|
|
|
305
|
-
|
|
306
|
-
<summary><strong>✨ NEW WAY:</strong> Run Parallel From Start (Proactive) - <strong>RECOMMENDED</strong></summary>
|
|
90
|
+
> **OAuth providers** authenticate via browser on first run. Tokens are cached in `~/.ccs/cliproxy/auth/`.
|
|
307
91
|
|
|
308
92
|
<br>
|
|
309
93
|
|
|
310
|
-
|
|
311
|
-
graph LR
|
|
312
|
-
A[2pm: Start work] --> B[Terminal 1: Claude Pro<br/>Strategic planning]
|
|
313
|
-
A --> C[Terminal 2: GLM<br/>Code execution]
|
|
314
|
-
B --> D[3pm: Still shipping<br/>No interruptions]
|
|
315
|
-
C --> D
|
|
316
|
-
D --> E[4pm: Flow state<br/>Productivity peak]
|
|
317
|
-
E --> F[5pm: Features shipped<br/>Context maintained]
|
|
318
|
-
|
|
319
|
-
style A fill:#e7f3ff,stroke:#333,color:#000
|
|
320
|
-
style B fill:#cfe2ff,stroke:#333,color:#000
|
|
321
|
-
style C fill:#cfe2ff,stroke:#333,color:#000
|
|
322
|
-
style D fill:#d4edda,stroke:#333,color:#000
|
|
323
|
-
style E fill:#d4edda,stroke:#333,color:#000
|
|
324
|
-
style F fill:#d4edda,stroke:#333,color:#000
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
**Result:** Zero downtime, continuous productivity, less frustration
|
|
328
|
-
|
|
329
|
-
### 💰 **The Value Proposition:**
|
|
330
|
-
- **Setup:** Your existing Claude Pro + GLM Lite (cost-effective add-on)
|
|
331
|
-
- **Value:** Save 1 hour/day × 20 workdays = 20 hours/month recovered
|
|
332
|
-
- **ROI:** Your development time is worth more than the setup cost
|
|
333
|
-
- **Reality:** Shipping faster than the overhead
|
|
334
|
-
|
|
335
|
-
</details>
|
|
336
|
-
|
|
337
|
-
## Choose Your Path
|
|
338
|
-
|
|
339
|
-
<details>
|
|
340
|
-
<summary><strong>Budget-Focused:</strong> GLM Only</summary>
|
|
341
|
-
|
|
342
|
-
- **Best for:** Cost-conscious development, basic code generation
|
|
343
|
-
- **Usage:** Just use `ccs glm` directly for cost-effective AI assistance
|
|
344
|
-
- **Reality:** No Claude access, but capable for many coding tasks
|
|
345
|
-
- **Setup:** GLM API key only, very affordable
|
|
346
|
-
|
|
347
|
-
</details>
|
|
348
|
-
|
|
349
|
-
<details open>
|
|
350
|
-
<summary><strong>✨ Recommended for Daily Development:</strong> 1 Claude Pro + 1 GLM Lite</summary>
|
|
351
|
-
|
|
352
|
-
- **Best for:** Daily code delivery, serious development work
|
|
353
|
-
- **Usage:** `ccs` for planning + `ccs glm` for execution (parallel workflow)
|
|
354
|
-
- **Reality:** Perfect balance of capability and cost for most developers
|
|
355
|
-
- **Value:** Never hit session limits, continuous productivity
|
|
356
|
-
|
|
357
|
-
</details>
|
|
358
|
-
|
|
359
|
-
<details>
|
|
360
|
-
<summary><strong>Power User:</strong> Multiple Claude Pro + GLM Pro</summary>
|
|
94
|
+
## Usage
|
|
361
95
|
|
|
362
|
-
|
|
363
|
-
- **Unlocks:** Never drain session or weekly limits
|
|
364
|
-
- **Workflow:** 3+ terminals running specialized tasks simultaneously
|
|
96
|
+
### Basic Commands
|
|
365
97
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
- **When needed:** Strict separation of work and personal AI contexts
|
|
372
|
-
- **Setup:** `ccs auth create work` + `ccs auth create personal`
|
|
373
|
-
- **Note:** Advanced feature - most users don't need this
|
|
374
|
-
|
|
375
|
-
</details>
|
|
376
|
-
|
|
377
|
-
---
|
|
378
|
-
|
|
379
|
-
## Why CCS Instead of Manual Switching?
|
|
380
|
-
|
|
381
|
-
<div align="center">
|
|
382
|
-
|
|
383
|
-
**CCS isn't about "switching when you hit limits at 3pm."**
|
|
384
|
-
|
|
385
|
-
## **It's about running in parallel from the start.**
|
|
386
|
-
|
|
387
|
-
</div>
|
|
388
|
-
|
|
389
|
-
### The Core Difference
|
|
390
|
-
|
|
391
|
-
| **Manual Switching** | **CCS Orchestration** |
|
|
392
|
-
|:---|:---|
|
|
393
|
-
| 🔴 Hit limits → Stop work → Edit config files → Restart | ✅ Multiple terminals running different models from the start |
|
|
394
|
-
| 😰 Context loss and flow state interruption | 😌 Continuous productivity with preserved context |
|
|
395
|
-
| 📝 Sequential task handling | ⚡ Parallel workflows (planning + execution simultaneously) |
|
|
396
|
-
| 🛠️ Reactive problem solving when blocked | 🎯 Proactive workflow design prevents blocks |
|
|
397
|
-
|
|
398
|
-
### What CCS Gives You
|
|
399
|
-
|
|
400
|
-
- **Zero Context Switching**: Keep your flow state without interruption
|
|
401
|
-
- **Parallel Productivity**: Strategic planning in one terminal, code execution in another
|
|
402
|
-
- **Instant Account Management**: One command switches, no config file editing
|
|
403
|
-
- **Work-Life Separation**: Isolate contexts without logging out
|
|
404
|
-
- **Cross-Platform Consistency**: Same smooth experience on macOS, Linux, Windows
|
|
405
|
-
|
|
406
|
-
**Manual context switching breaks workflow. CCS orchestrates seamlessly.**
|
|
407
|
-
|
|
408
|
-
<br>
|
|
409
|
-
|
|
410
|
-
## Architecture
|
|
411
|
-
|
|
412
|
-
CCS resolves profiles in priority order:
|
|
413
|
-
1. **CLIProxy profiles** (gemini, codex, agy) - OAuth-based, zero config
|
|
414
|
-
2. **CLIProxy variants** (user-defined) - Custom model settings for CLIProxy providers
|
|
415
|
-
3. **Settings-based profiles** (glm, kimi) - API key required
|
|
416
|
-
4. **Account-based profiles** (work, personal) - Isolated Claude instances
|
|
417
|
-
5. **Default** - Claude CLI with subscription
|
|
418
|
-
|
|
419
|
-
### Profile Types
|
|
420
|
-
|
|
421
|
-
**CLIProxy**: gemini, codex, agy (v5.0+)
|
|
422
|
-
- OAuth-based authentication via [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)
|
|
423
|
-
- Browser auth on first run, tokens cached in `~/.ccs/cliproxy/auth/<provider>/`
|
|
424
|
-
- Proxy runs on port 8317, auto-spawned per session
|
|
425
|
-
- Binary: `~/.ccs/cliproxy/bin/cli-proxy-api` (~15MB, auto-downloaded)
|
|
426
|
-
- Model mappings:
|
|
427
|
-
- **Gemini**: gemini-2.5-pro (opus), gemini-2.0-flash (sonnet), flash-lite (haiku)
|
|
428
|
-
- **Codex**: gpt-5.1-codex-max (opus), gpt-4o (sonnet), gpt-4o-mini (haiku)
|
|
429
|
-
- **Antigravity**: agy-pro (sonnet), agy-turbo (haiku)
|
|
430
|
-
|
|
431
|
-
**CLIProxy Variants** (v5.0.2+)
|
|
432
|
-
- User-defined profile names that route through CLIProxy providers
|
|
433
|
-
- Allows multiple model configurations per provider (e.g., `flash` and `pro` for Gemini)
|
|
434
|
-
- Configure in `~/.ccs/config.json` under `cliproxy` section:
|
|
435
|
-
|
|
436
|
-
```json
|
|
437
|
-
{
|
|
438
|
-
"profiles": { ... },
|
|
439
|
-
"cliproxy": {
|
|
440
|
-
"flash": { "provider": "gemini", "settings": "~/.ccs/gemini-flash.settings.json" },
|
|
441
|
-
"pro": { "provider": "gemini", "settings": "~/.ccs/gemini-pro.settings.json" },
|
|
442
|
-
"gpt": { "provider": "codex", "settings": "~/.ccs/codex-gpt.settings.json" }
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
Usage: `ccs flash "quick task"` or `ccs pro "complex analysis"`
|
|
448
|
-
|
|
449
|
-
Settings file format (`~/.ccs/gemini-flash.settings.json`):
|
|
450
|
-
|
|
451
|
-
```json
|
|
452
|
-
{
|
|
453
|
-
"env": {
|
|
454
|
-
"ANTHROPIC_BASE_URL": "http://127.0.0.1:8317/api/provider/gemini",
|
|
455
|
-
"ANTHROPIC_AUTH_TOKEN": "ccs-internal-managed",
|
|
456
|
-
"ANTHROPIC_MODEL": "gemini-2.5-flash",
|
|
457
|
-
"ANTHROPIC_DEFAULT_OPUS_MODEL": "gemini-2.5-flash",
|
|
458
|
-
"ANTHROPIC_DEFAULT_SONNET_MODEL": "gemini-2.5-flash",
|
|
459
|
-
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "gemini-2.5-flash"
|
|
460
|
-
}
|
|
461
|
-
}
|
|
98
|
+
```bash
|
|
99
|
+
ccs # Default Claude session
|
|
100
|
+
ccs agy # Antigravity (OAuth)
|
|
101
|
+
ccs gemini # Gemini (OAuth)
|
|
102
|
+
ccs glm # GLM (API key)
|
|
462
103
|
```
|
|
463
104
|
|
|
464
|
-
|
|
465
|
-
> Copy from `~/.ccs/gemini.settings.json` (auto-generated on first `ccs gemini` run) and modify `ANTHROPIC_MODEL` to your desired model.
|
|
466
|
-
|
|
467
|
-
**Settings-based**: GLM, GLMT, Kimi, default
|
|
468
|
-
- Uses `--settings` flag pointing to config files
|
|
469
|
-
- GLMT: Embedded proxy for thinking mode support
|
|
470
|
-
|
|
471
|
-
**Account-based**: work, personal, team
|
|
472
|
-
- Uses `CLAUDE_CONFIG_DIR` for isolated instances
|
|
473
|
-
- Create with `ccs auth create <profile>`
|
|
474
|
-
|
|
475
|
-
### Shared Data (v4.4+)
|
|
105
|
+
### Parallel Workflows
|
|
476
106
|
|
|
477
|
-
|
|
478
|
-
- commands/ - Slash commands
|
|
479
|
-
- skills/ - Agent skills
|
|
480
|
-
- agents/ - Agent configs
|
|
481
|
-
- **settings.json** - Claude CLI settings (v4.4+)
|
|
482
|
-
|
|
483
|
-
**Profile-specific**:
|
|
484
|
-
- sessions/ - Conversation history
|
|
485
|
-
- todolists/ - Todo lists
|
|
486
|
-
- logs/ - Execution logs
|
|
487
|
-
- **cliproxy/auth/** - OAuth tokens (CLIProxy profiles only)
|
|
488
|
-
|
|
489
|
-
> [!NOTE]
|
|
490
|
-
> **v4.4 Breaking Change**: settings.json now shared across profiles. Previously each profile had isolated settings. Migration is automatic on install using ~/.claude/settings.json as the authoritative source. Backups created: `<instance>/settings.json.pre-shared-migration`
|
|
491
|
-
|
|
492
|
-
> [!NOTE]
|
|
493
|
-
> **Windows**: Symlink support requires Developer Mode (v4.2 will add copy fallback)
|
|
494
|
-
|
|
495
|
-
<br>
|
|
496
|
-
|
|
497
|
-
## Web Dashboard
|
|
498
|
-
|
|
499
|
-
CCS includes a modern React 19 dashboard for visual profile management and real-time monitoring:
|
|
107
|
+
Run multiple terminals with different providers:
|
|
500
108
|
|
|
501
109
|
```bash
|
|
502
|
-
#
|
|
503
|
-
ccs
|
|
110
|
+
# Terminal 1: Planning (Claude Pro)
|
|
111
|
+
ccs work "design the authentication system"
|
|
504
112
|
|
|
505
|
-
#
|
|
506
|
-
ccs
|
|
113
|
+
# Terminal 2: Execution (GLM - cost optimized)
|
|
114
|
+
ccs glm "implement the user service from the plan"
|
|
507
115
|
|
|
508
|
-
#
|
|
116
|
+
# Terminal 3: Review (Gemini)
|
|
117
|
+
ccs gemini "review the implementation for security issues"
|
|
509
118
|
```
|
|
510
119
|
|
|
511
|
-
|
|
512
|
-
- 🎨 **Modern UI**: Built with React 19, TypeScript, and shadcn/ui
|
|
513
|
-
- 📊 **Real-time Updates**: WebSocket integration for live status
|
|
514
|
-
- ⚙️ **Profile Management**: Visual configuration of all profiles
|
|
515
|
-
- 🔍 **Health Monitoring**: System diagnostics and metrics
|
|
516
|
-
- 🌙 **Dark Mode**: Eye-friendly theme switching
|
|
517
|
-
- 📱 **Responsive**: Works on desktop and mobile
|
|
518
|
-
|
|
519
|
-
### Dashboard Screenshots
|
|
520
|
-
|
|
521
|
-
*(Add screenshots here when available)*
|
|
522
|
-
|
|
523
|
-
## Usage Examples
|
|
120
|
+
### Multi-Account Claude
|
|
524
121
|
|
|
525
|
-
|
|
122
|
+
Create isolated Claude instances for work/personal separation:
|
|
526
123
|
|
|
527
124
|
```bash
|
|
528
|
-
ccs # Claude subscription (default)
|
|
529
|
-
ccs glm # GLM (cost-optimized)
|
|
530
|
-
ccs kimi # Kimi (with thinking support)
|
|
531
|
-
```
|
|
532
|
-
|
|
533
|
-
### Multi-Account Setup
|
|
534
|
-
|
|
535
|
-
```bash
|
|
536
|
-
# Create accounts
|
|
537
125
|
ccs auth create work
|
|
538
|
-
ccs auth create personal
|
|
539
|
-
```
|
|
540
126
|
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
# Terminal 1 - Work
|
|
545
|
-
ccs work "implement feature"
|
|
546
|
-
|
|
547
|
-
# Terminal 2 - Personal (concurrent)
|
|
548
|
-
ccs personal "review code"
|
|
549
|
-
```
|
|
550
|
-
|
|
551
|
-
### Help & Version
|
|
552
|
-
|
|
553
|
-
```bash
|
|
554
|
-
ccs --version # Show version
|
|
555
|
-
ccs --help # Show all commands and options
|
|
127
|
+
# Run concurrently in separate terminals
|
|
128
|
+
ccs work "implement feature" # Terminal 1
|
|
129
|
+
ccs "review code" # Terminal 2 (personal account)
|
|
556
130
|
```
|
|
557
131
|
|
|
558
132
|
<br>
|
|
559
133
|
|
|
560
|
-
##
|
|
561
|
-
|
|
562
|
-
> [!TIP]
|
|
563
|
-
> **New in v4.0**: Delegate tasks to cost-optimized models (GLM, Kimi) directly from your main Claude session. Save 81% on simple tasks with real-time visibility.
|
|
564
|
-
|
|
565
|
-
### What is Delegation?
|
|
566
|
-
|
|
567
|
-
CCS Delegation lets you **send tasks to alternative models** (`glm`, `kimi`) **from your main Claude session** using the `-p` flag or intelligent slash commands (`/ccs`, `/ccs:continue`).
|
|
568
|
-
|
|
569
|
-
**Why use it?**
|
|
570
|
-
- **Token efficiency**: Simple tasks cost 81% less on GLM vs main Claude session
|
|
571
|
-
- **Context preservation**: Main session stays clean, no pollution from mechanical tasks
|
|
572
|
-
- **Real-time visibility**: See tool usage as tasks execute (`[Tool] Write: index.html`)
|
|
573
|
-
- **Multi-turn support**: Resume sessions with `:continue` for iterative work
|
|
574
|
-
|
|
575
|
-
### Quick Examples
|
|
576
|
-
|
|
577
|
-
**Direct CLI:**
|
|
578
|
-
```bash
|
|
579
|
-
# Delegate simple task to GLM (cost-optimized)
|
|
580
|
-
ccs glm -p "add tests for UserService"
|
|
581
|
-
|
|
582
|
-
# Delegate long-context task to Kimi
|
|
583
|
-
ccs kimi -p "analyze all files in src/ and document architecture"
|
|
584
|
-
|
|
585
|
-
# Continue previous session
|
|
586
|
-
ccs glm:continue -p "run the tests and fix any failures"
|
|
587
|
-
```
|
|
134
|
+
## Maintenance
|
|
588
135
|
|
|
589
|
-
|
|
590
|
-
```bash
|
|
591
|
-
# In your main Claude session:
|
|
592
|
-
/ccs "refactor auth.js to use async/await" # Auto-selects best profile
|
|
593
|
-
/ccs --glm "fix typo in documentation" # Forces GLM profile
|
|
594
|
-
/ccs --kimi "analyze entire architecture" # Forces Kimi profile
|
|
595
|
-
/ccs:continue "also update the README examples" # Continues last session
|
|
596
|
-
```
|
|
136
|
+
### Health Check
|
|
597
137
|
|
|
598
|
-
**Via Natural Language** (Claude auto-delegates):
|
|
599
138
|
```bash
|
|
600
|
-
|
|
601
|
-
"Use ccs glm to add tests for all *.service.js files"
|
|
602
|
-
"Delegate to kimi: analyze project structure"
|
|
139
|
+
ccs doctor
|
|
603
140
|
```
|
|
604
141
|
|
|
605
|
-
|
|
142
|
+
Verifies: Claude CLI, config files, symlinks, permissions.
|
|
606
143
|
|
|
607
|
-
|
|
144
|
+
### Update
|
|
608
145
|
|
|
609
|
-
```
|
|
610
|
-
$ ccs glm -p "/cook create a landing page"
|
|
611
|
-
[i] Delegating to GLM-4.6...
|
|
612
|
-
[Tool] Write: /home/user/project/index.html
|
|
613
|
-
[Tool] Write: /home/user/project/styles.css
|
|
614
|
-
[Tool] Write: /home/user/project/script.js
|
|
615
|
-
[Tool] Edit: /home/user/project/styles.css
|
|
616
|
-
[i] Execution completed in 45.2s
|
|
617
|
-
|
|
618
|
-
╔══════════════════════════════════════════════════════╗
|
|
619
|
-
║ Working Directory: /home/user/project ║
|
|
620
|
-
║ Model: GLM-4.6 ║
|
|
621
|
-
║ Duration: 45.2s ║
|
|
622
|
-
║ Exit Code: 0 ║
|
|
623
|
-
║ Session ID: 3a4f8c21 ║
|
|
624
|
-
║ Total Cost: $0.0015 ║
|
|
625
|
-
║ Turns: 3 ║
|
|
626
|
-
╚══════════════════════════════════════════════════════╝
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
### Advanced Features
|
|
630
|
-
|
|
631
|
-
**Slash Command Support:**
|
|
632
|
-
Delegation preserves custom slash commands in prompts:
|
|
633
146
|
```bash
|
|
634
|
-
ccs
|
|
635
|
-
|
|
147
|
+
ccs update # Update to latest
|
|
148
|
+
ccs update --force # Force reinstall
|
|
149
|
+
ccs update --beta # Install dev channel
|
|
636
150
|
```
|
|
637
151
|
|
|
638
|
-
|
|
639
|
-
Ctrl+C or Esc properly kills delegated processes (no orphans):
|
|
640
|
-
```bash
|
|
641
|
-
# Hit Ctrl+C during delegation
|
|
642
|
-
[!] Parent process terminating, killing delegated session...
|
|
643
|
-
```
|
|
152
|
+
### Sync Shared Items
|
|
644
153
|
|
|
645
|
-
**Time-Based Limits:**
|
|
646
|
-
10-minute default timeout with graceful termination (supports `:continue`):
|
|
647
154
|
```bash
|
|
648
|
-
ccs
|
|
649
|
-
ccs glm:continue -p "pick up where we left off"
|
|
650
|
-
```
|
|
651
|
-
|
|
652
|
-
### Cost Savings Example
|
|
653
|
-
|
|
654
|
-
**Traditional (Main Session):**
|
|
655
|
-
```
|
|
656
|
-
Context load: 2000 tokens
|
|
657
|
-
Discussion: 1500 tokens
|
|
658
|
-
Code gen: 4500 tokens
|
|
659
|
-
─────────────────────────
|
|
660
|
-
Total: 8000 tokens → $0.032
|
|
661
|
-
```
|
|
662
|
-
|
|
663
|
-
**Delegation (GLM):**
|
|
664
|
-
```
|
|
665
|
-
3x tasks via GLM: 1500 tokens → $0.0045
|
|
666
|
-
─────────────────────────────────────────
|
|
667
|
-
Savings: $0.0275 (86% reduction)
|
|
155
|
+
ccs sync
|
|
668
156
|
```
|
|
669
157
|
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
- **Workflow Diagrams**: See [docs/ccs-delegation-diagrams.md](docs/ccs-delegation-diagrams.md) for visual architecture
|
|
673
|
-
- **Skill Reference**: `.claude/skills/ccs-delegation/` for AI decision framework (replaces deprecated agents)
|
|
674
|
-
- **Agent Docs**: `.claude/agents/ccs-delegator.md` was deprecated in v4.3.2, functionality moved to ccs-delegation skill
|
|
158
|
+
Re-creates symlinks for shared commands, skills, and settings.
|
|
675
159
|
|
|
676
160
|
<br>
|
|
677
161
|
|
|
678
|
-
##
|
|
679
|
-
|
|
680
|
-
> [!CAUTION]
|
|
681
|
-
> ### NOT PRODUCTION READY - EXPERIMENTAL FEATURE
|
|
682
|
-
>
|
|
683
|
-
> **GLMT is experimental and requires extensive debugging**:
|
|
684
|
-
> - Streaming and tool support still under active development
|
|
685
|
-
> - May experience unexpected errors, timeouts, or incomplete responses
|
|
686
|
-
> - Requires frequent debugging and manual intervention
|
|
687
|
-
> - **Not recommended for critical workflows or production use**
|
|
688
|
-
>
|
|
689
|
-
> **Alternative for GLM Thinking**: Consider going through the **CCR hustle** with the **Transformer of Bedolla** ([ZaiTransformer](https://github.com/Bedolla/ZaiTransformer/)) for a more stable implementation.
|
|
690
|
-
|
|
691
|
-
> [!IMPORTANT]
|
|
692
|
-
> GLMT requires npm installation (`npm install -g @kaitranntt/ccs`). Not available in native shell versions (requires Node.js HTTP server).
|
|
693
|
-
|
|
694
|
-
<br>
|
|
162
|
+
## Configuration
|
|
695
163
|
|
|
696
|
-
|
|
697
|
-
> ### Acknowledgments: The Foundation That Made GLMT Possible
|
|
698
|
-
>
|
|
699
|
-
> **CCS's GLMT implementation owes its existence to the groundbreaking work of [@Bedolla](https://github.com/Bedolla)**, who created [ZaiTransformer](https://github.com/Bedolla/ZaiTransformer/) - the **first integration** to bridge [Claude Code Router (CCR)](https://github.com/musistudio/claude-code-router) with Z.AI's reasoning capabilities.
|
|
700
|
-
>
|
|
701
|
-
> **Why this matters**: Before ZaiTransformer, no one had successfully integrated Z.AI's thinking mode with Claude Code's workflow. Bedolla's work wasn't just helpful - it was **foundational**. His implementation of:
|
|
702
|
-
>
|
|
703
|
-
> - **Request/response transformation architecture** - The conceptual blueprint for how to bridge Anthropic and OpenAI formats
|
|
704
|
-
> - **Thinking mode control mechanisms** - The patterns for managing reasoning_content delivery
|
|
705
|
-
> - **Embedded proxy design** - The architecture that CCS's GLMT proxy is built upon
|
|
706
|
-
>
|
|
707
|
-
> These contributions directly inspired and enabled GLMT's design. **Without ZaiTransformer's pioneering work, GLMT wouldn't exist in its current form**. The technical patterns, transformation logic, and proxy architecture implemented in CCS are a direct evolution of the concepts Bedolla first proved viable.
|
|
708
|
-
>
|
|
709
|
-
> **Recognition**: If you benefit from GLMT's thinking capabilities, you're benefiting from Bedolla's vision and engineering. Please consider starring [ZaiTransformer](https://github.com/Bedolla/ZaiTransformer/) to support pioneering work in the Claude Code ecosystem.
|
|
164
|
+
CCS auto-creates config on install. Dashboard is the recommended way to manage settings.
|
|
710
165
|
|
|
711
|
-
|
|
166
|
+
**Config location**: `~/.ccs/config.yaml`
|
|
712
167
|
|
|
713
168
|
<details>
|
|
714
|
-
<summary
|
|
715
|
-
|
|
716
|
-
<br>
|
|
717
|
-
|
|
718
|
-
<div align="center">
|
|
169
|
+
<summary>Custom Claude CLI path</summary>
|
|
719
170
|
|
|
720
|
-
|
|
721
|
-
|:--------|:----------------|:------------------|
|
|
722
|
-
| **Endpoint** | Anthropic-compatible | OpenAI-compatible |
|
|
723
|
-
| **Thinking** | No | Experimental (`reasoning_content`) |
|
|
724
|
-
| **Tool Support** | Basic | **Unstable (v3.5+)** |
|
|
725
|
-
| **MCP Tools** | Limited | **Buggy (v3.5+)** |
|
|
726
|
-
| **Streaming** | Stable | **Experimental (v3.4+)** |
|
|
727
|
-
| **TTFB** | <500ms | <500ms (sometimes), 2-10s+ (often) |
|
|
728
|
-
| **Use Case** | Reliable work | **Debugging experiments only** |
|
|
729
|
-
|
|
730
|
-
</div>
|
|
731
|
-
|
|
732
|
-
</details>
|
|
733
|
-
|
|
734
|
-
<details>
|
|
735
|
-
<summary><h3>Tool Support (v3.5) - EXPERIMENTAL</h3></summary>
|
|
736
|
-
|
|
737
|
-
<br>
|
|
738
|
-
|
|
739
|
-
**GLMT attempts MCP tools and function calling:**
|
|
740
|
-
|
|
741
|
-
- **Bidirectional Transformation**: Anthropic tools ↔ OpenAI format (unstable)
|
|
742
|
-
- **MCP Integration**: MCP tools sometimes execute (often output XML garbage)
|
|
743
|
-
- **Streaming Tool Calls**: Real-time tool calls (when not crashing)
|
|
744
|
-
- **Backward Compatible**: May break existing thinking support
|
|
745
|
-
- **Configuration Required**: Frequent manual debugging needed
|
|
746
|
-
|
|
747
|
-
</details>
|
|
748
|
-
|
|
749
|
-
<details>
|
|
750
|
-
<summary><h3>Streaming Support (v3.4) - OFTEN FAILS</h3></summary>
|
|
751
|
-
|
|
752
|
-
<br>
|
|
753
|
-
|
|
754
|
-
**GLMT attempts real-time streaming** with incremental reasoning content delivery:
|
|
755
|
-
|
|
756
|
-
- **Default**: Streaming enabled (TTFB <500ms when it works)
|
|
757
|
-
- **Auto-fallback**: Frequently switches to buffered mode due to errors
|
|
758
|
-
- **Thinking parameter**: Claude CLI `thinking` parameter sometimes works
|
|
759
|
-
- May ignore `thinking.type` and `budget_tokens`
|
|
760
|
-
- Precedence: CLI parameter > message tags > default (when not broken)
|
|
761
|
-
|
|
762
|
-
**Status**: Z.AI (tested, tool calls frequently break, requires constant debugging)
|
|
763
|
-
|
|
764
|
-
</details>
|
|
765
|
-
|
|
766
|
-
<details>
|
|
767
|
-
<summary><h3>How It Works (When It Works)</h3></summary>
|
|
768
|
-
|
|
769
|
-
<br>
|
|
770
|
-
|
|
771
|
-
1. CCS spawns embedded HTTP proxy on localhost (if not crashing)
|
|
772
|
-
2. Proxy attempts to convert Anthropic format → OpenAI format (often fails)
|
|
773
|
-
3. Tries to transform Anthropic tools → OpenAI function calling format (buggy)
|
|
774
|
-
4. Forwards to Z.AI with reasoning parameters and tools (when not timing out)
|
|
775
|
-
5. Attempts to convert `reasoning_content` → thinking blocks (partial or broken)
|
|
776
|
-
6. Attempts to convert OpenAI `tool_calls` → Anthropic `tool_use` blocks (XML garbage common)
|
|
777
|
-
7. Thinking and tool calls sometimes appear in Claude Code UI (when not broken)
|
|
778
|
-
|
|
779
|
-
</details>
|
|
780
|
-
|
|
781
|
-
<details>
|
|
782
|
-
<summary><h3>Control Tags & Keywords</h3></summary>
|
|
783
|
-
|
|
784
|
-
<br>
|
|
785
|
-
|
|
786
|
-
**Control Tags**:
|
|
787
|
-
- `<Thinking:On|Off>` - Enable/disable reasoning blocks (default: On)
|
|
788
|
-
- `<Effort:Low|Medium|High>` - Control reasoning depth (deprecated - Z.AI only supports binary thinking)
|
|
789
|
-
|
|
790
|
-
**Thinking Keywords** (inconsistent activation):
|
|
791
|
-
- `think` - Sometimes enables reasoning (low effort)
|
|
792
|
-
- `think hard` - Sometimes enables reasoning (medium effort)
|
|
793
|
-
- `think harder` - Sometimes enables reasoning (high effort)
|
|
794
|
-
- `ultrathink` - Attempts maximum reasoning depth (often breaks)
|
|
795
|
-
|
|
796
|
-
</details>
|
|
797
|
-
|
|
798
|
-
<details>
|
|
799
|
-
<summary><h3>Environment Variables</h3></summary>
|
|
800
|
-
|
|
801
|
-
<br>
|
|
802
|
-
|
|
803
|
-
**GLMT features** (all experimental):
|
|
804
|
-
- Forced English output enforcement (sometimes works)
|
|
805
|
-
- Random thinking mode activation (unpredictable)
|
|
806
|
-
- Attempted streaming with frequent fallback to buffered mode
|
|
807
|
-
|
|
808
|
-
**General**:
|
|
809
|
-
- `CCS_DEBUG_LOG=1` - Enable debug file logging
|
|
810
|
-
- `CCS_CLAUDE_PATH=/path/to/claude` - Custom Claude CLI path
|
|
811
|
-
|
|
812
|
-
</details>
|
|
813
|
-
|
|
814
|
-
<details>
|
|
815
|
-
<summary><h3>API Key Setup</h3></summary>
|
|
816
|
-
|
|
817
|
-
<br>
|
|
171
|
+
If Claude CLI is installed in a non-standard location:
|
|
818
172
|
|
|
819
173
|
```bash
|
|
820
|
-
#
|
|
821
|
-
|
|
822
|
-
```
|
|
823
|
-
|
|
824
|
-
Set Z.AI API key (requires coding plan):
|
|
825
|
-
|
|
826
|
-
```json
|
|
827
|
-
{
|
|
828
|
-
"env": {
|
|
829
|
-
"ANTHROPIC_AUTH_TOKEN": "your-z-ai-api-key"
|
|
830
|
-
}
|
|
831
|
-
}
|
|
174
|
+
export CCS_CLAUDE_PATH="/path/to/claude" # Unix
|
|
175
|
+
$env:CCS_CLAUDE_PATH = "D:\Tools\Claude\claude.exe" # Windows
|
|
832
176
|
```
|
|
833
177
|
|
|
834
178
|
</details>
|
|
835
179
|
|
|
836
180
|
<details>
|
|
837
|
-
<summary
|
|
838
|
-
|
|
839
|
-
<br>
|
|
840
|
-
|
|
841
|
-
**v3.4 Protection Limits**:
|
|
842
|
-
|
|
843
|
-
| Limit | Value | Purpose |
|
|
844
|
-
|:------|:------|:--------|
|
|
845
|
-
| **SSE buffer** | 1MB max per event | Prevent buffer overflow |
|
|
846
|
-
| **Content buffer** | 10MB max per block | Limit thinking/text blocks |
|
|
847
|
-
| **Content blocks** | 100 max per message | Prevent DoS attacks |
|
|
848
|
-
| **Request timeout** | 120s | Both streaming and buffered |
|
|
849
|
-
|
|
850
|
-
</details>
|
|
851
|
-
|
|
852
|
-
<details>
|
|
853
|
-
<summary><h3>Debugging</h3></summary>
|
|
854
|
-
|
|
855
|
-
<br>
|
|
856
|
-
|
|
857
|
-
**Enable verbose logging**:
|
|
858
|
-
```bash
|
|
859
|
-
ccs glmt --verbose "your prompt"
|
|
860
|
-
```
|
|
181
|
+
<summary>Windows symlink support</summary>
|
|
861
182
|
|
|
862
|
-
|
|
863
|
-
```bash
|
|
864
|
-
export CCS_DEBUG_LOG=1
|
|
865
|
-
ccs glmt --verbose "your prompt"
|
|
866
|
-
# Logs: ~/.ccs/logs/
|
|
867
|
-
```
|
|
183
|
+
Enable Developer Mode for true symlinks:
|
|
868
184
|
|
|
869
|
-
**
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
ccs glmt --verbose "test"
|
|
873
|
-
```
|
|
874
|
-
|
|
875
|
-
**Check reasoning content**:
|
|
876
|
-
```bash
|
|
877
|
-
cat ~/.ccs/logs/*response-openai.json | jq '.choices[0].message.reasoning_content'
|
|
878
|
-
```
|
|
185
|
+
1. **Settings** → **Privacy & Security** → **For developers**
|
|
186
|
+
2. Enable **Developer Mode**
|
|
187
|
+
3. Reinstall: `npm install -g @kaitranntt/ccs`
|
|
879
188
|
|
|
880
|
-
|
|
881
|
-
- **If absent**: Z.AI API issue (verify key, account status)
|
|
882
|
-
- **If present**: Transformation issue (check `response-anthropic.json`)
|
|
189
|
+
Without Developer Mode, CCS falls back to copying directories.
|
|
883
190
|
|
|
884
191
|
</details>
|
|
885
192
|
|
|
886
193
|
<br>
|
|
887
194
|
|
|
888
|
-
##
|
|
889
|
-
|
|
890
|
-
### Health Check
|
|
891
|
-
|
|
892
|
-
Run diagnostics to verify your CCS installation:
|
|
893
|
-
|
|
894
|
-
```bash
|
|
895
|
-
ccs doctor
|
|
896
|
-
```
|
|
897
|
-
|
|
898
|
-
**Checks performed**:
|
|
899
|
-
- ✓ Claude CLI availability
|
|
900
|
-
- ✓ Configuration files (config.json, profiles)
|
|
901
|
-
- ✓ CCS symlinks to ~/.claude/
|
|
902
|
-
- ✓ Delegation system
|
|
903
|
-
- ✓ File permissions
|
|
904
|
-
|
|
905
|
-
**Output**:
|
|
906
|
-
```
|
|
907
|
-
[?] Checking Claude CLI... [OK]
|
|
908
|
-
[?] Checking ~/.ccs/ directory... [OK]
|
|
909
|
-
[?] Checking config.json... [OK]
|
|
910
|
-
[?] Checking CCS symlinks... [OK]
|
|
911
|
-
...
|
|
912
|
-
Status: Installation healthy
|
|
913
|
-
```
|
|
914
|
-
|
|
915
|
-
### Updating CCS
|
|
916
|
-
|
|
917
|
-
```bash
|
|
918
|
-
# Update to latest stable version
|
|
919
|
-
ccs update
|
|
920
|
-
|
|
921
|
-
# Force reinstall (fix corrupted installation)
|
|
922
|
-
ccs update --force
|
|
195
|
+
## Documentation
|
|
923
196
|
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
If you modify CCS items or need to re-install symlinks:
|
|
936
|
-
|
|
937
|
-
```bash
|
|
938
|
-
ccs sync
|
|
939
|
-
```
|
|
940
|
-
|
|
941
|
-
**What it does**:
|
|
942
|
-
- Re-creates selective symlinks from `~/.ccs/.claude/` to `~/.claude/`
|
|
943
|
-
- Backs up existing files before replacing
|
|
944
|
-
- Safe to run multiple times (idempotent)
|
|
945
|
-
|
|
946
|
-
**When to use**:
|
|
947
|
-
- After manual modifications to ~/.claude/
|
|
948
|
-
- If `ccs doctor` reports symlink issues
|
|
949
|
-
- After upgrading CCS to a new version
|
|
950
|
-
|
|
951
|
-
<br>
|
|
952
|
-
|
|
953
|
-
### Troubleshooting
|
|
954
|
-
|
|
955
|
-
#### Broken Installation
|
|
956
|
-
|
|
957
|
-
If CCS is corrupted or behaving unexpectedly:
|
|
958
|
-
|
|
959
|
-
```bash
|
|
960
|
-
# Force reinstall to fix
|
|
961
|
-
ccs update --force
|
|
962
|
-
```
|
|
963
|
-
|
|
964
|
-
If that doesn't work, try manual reinstall:
|
|
965
|
-
|
|
966
|
-
```bash
|
|
967
|
-
npm install -g @kaitranntt/ccs@latest --force
|
|
968
|
-
```
|
|
969
|
-
|
|
970
|
-
#### Beta Testing Issues
|
|
971
|
-
|
|
972
|
-
If you're on the dev channel and experiencing issues:
|
|
973
|
-
|
|
974
|
-
```bash
|
|
975
|
-
# Return to stable channel
|
|
976
|
-
ccs update
|
|
977
|
-
```
|
|
978
|
-
|
|
979
|
-
#### Common Issues
|
|
980
|
-
|
|
981
|
-
- **Update fails**: Check network connection and try `ccs update --force`
|
|
982
|
-
- **Beta not working**: Use `ccs update` to return to stable version
|
|
983
|
-
- **Direct install error**: Beta channel requires npm installation
|
|
984
|
-
|
|
985
|
-
For detailed troubleshooting, see [Troubleshooting Guide](./docs/en/troubleshooting.md).
|
|
197
|
+
| Topic | Link |
|
|
198
|
+
|-------|------|
|
|
199
|
+
| Installation | [docs/en/installation.md](./docs/en/installation.md) |
|
|
200
|
+
| Configuration | [docs/en/configuration.md](./docs/en/configuration.md) |
|
|
201
|
+
| OAuth Providers | [docs/en/oauth.md](./docs/en/oauth.md) |
|
|
202
|
+
| Multi-Account Claude | [docs/en/multi-account.md](./docs/en/multi-account.md) |
|
|
203
|
+
| Delegation | [docs/en/delegation.md](./docs/en/delegation.md) |
|
|
204
|
+
| GLMT (Experimental) | [docs/en/glmt.md](./docs/en/glmt.md) |
|
|
205
|
+
| Architecture | [docs/system-architecture.md](./docs/system-architecture.md) |
|
|
206
|
+
| Troubleshooting | [docs/en/troubleshooting.md](./docs/en/troubleshooting.md) |
|
|
986
207
|
|
|
987
208
|
<br>
|
|
988
209
|
|
|
989
210
|
## Uninstall
|
|
990
211
|
|
|
991
|
-
### npm (Recommended)
|
|
992
|
-
|
|
993
212
|
```bash
|
|
994
213
|
npm uninstall -g @kaitranntt/ccs
|
|
995
214
|
```
|
|
996
215
|
|
|
997
216
|
<details>
|
|
998
|
-
<summary
|
|
999
|
-
|
|
1000
|
-
<br>
|
|
217
|
+
<summary>Alternative package managers</summary>
|
|
1001
218
|
|
|
1002
219
|
```bash
|
|
1003
|
-
# yarn
|
|
1004
220
|
yarn global remove @kaitranntt/ccs
|
|
1005
|
-
|
|
1006
|
-
# pnpm
|
|
1007
221
|
pnpm remove -g @kaitranntt/ccs
|
|
1008
|
-
|
|
1009
|
-
# bun
|
|
1010
222
|
bun remove -g @kaitranntt/ccs
|
|
1011
223
|
```
|
|
1012
224
|
|
|
1013
225
|
</details>
|
|
1014
226
|
|
|
1015
|
-
<details>
|
|
1016
|
-
<summary><strong>Legacy Uninstallers (for native installs)</strong></summary>
|
|
1017
|
-
|
|
1018
|
-
<br>
|
|
1019
|
-
|
|
1020
|
-
```bash
|
|
1021
|
-
# macOS / Linux
|
|
1022
|
-
curl -fsSL ccs.kaitran.ca/uninstall | bash
|
|
1023
|
-
|
|
1024
|
-
# Windows PowerShell
|
|
1025
|
-
irm ccs.kaitran.ca/uninstall | iex
|
|
1026
|
-
```
|
|
1027
|
-
|
|
1028
|
-
</details>
|
|
1029
|
-
|
|
1030
227
|
<br>
|
|
1031
228
|
|
|
1032
|
-
##
|
|
229
|
+
## Philosophy
|
|
1033
230
|
|
|
1034
231
|
- **YAGNI**: No features "just in case"
|
|
1035
|
-
- **KISS**: Simple
|
|
232
|
+
- **KISS**: Simple, focused implementation
|
|
1036
233
|
- **DRY**: One source of truth (config)
|
|
1037
234
|
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
**Complete documentation in [docs/](./docs/)**:
|
|
1041
|
-
- [Installation Guide](./docs/en/installation.md)
|
|
1042
|
-
- [Configuration](./docs/en/configuration.md)
|
|
1043
|
-
- [Usage Examples](./docs/en/usage.md)
|
|
1044
|
-
- [System Architecture](./docs/system-architecture.md)
|
|
1045
|
-
- [GLMT Control Mechanisms](./docs/glmt-controls.md)
|
|
1046
|
-
- [Troubleshooting](./docs/en/troubleshooting.md)
|
|
1047
|
-
- [Contributing](./CONTRIBUTING.md)
|
|
1048
|
-
|
|
1049
|
-
## 🤝 Contributing
|
|
1050
|
-
|
|
1051
|
-
We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details.
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
## Star History
|
|
1055
|
-
|
|
1056
|
-
<div align="center">
|
|
235
|
+
<br>
|
|
1057
236
|
|
|
1058
|
-
|
|
237
|
+
## Contributing
|
|
1059
238
|
|
|
1060
|
-
|
|
239
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|
1061
240
|
|
|
241
|
+
<br>
|
|
1062
242
|
|
|
1063
243
|
## License
|
|
1064
244
|
|
|
1065
|
-
|
|
245
|
+
MIT License - see [LICENSE](LICENSE).
|
|
1066
246
|
|
|
1067
247
|
<div align="center">
|
|
1068
248
|
|
|
1069
|
-
|
|
249
|
+
---
|
|
1070
250
|
|
|
1071
|
-
[
|
|
251
|
+
**[ccs.kaitran.ca](https://ccs.kaitran.ca)** | [Report Issues](https://github.com/kaitranntt/ccs/issues) | [Star on GitHub](https://github.com/kaitranntt/ccs)
|
|
1072
252
|
|
|
1073
253
|
</div>
|