@kaitranntt/ccs 5.16.0 → 5.17.0-dev.2

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 (120) hide show
  1. package/README.md +107 -927
  2. package/VERSION +1 -1
  3. package/dist/cliproxy/auth-handler.d.ts.map +1 -1
  4. package/dist/cliproxy/auth-handler.js +23 -20
  5. package/dist/cliproxy/auth-handler.js.map +1 -1
  6. package/dist/cliproxy/binary-manager.d.ts +25 -0
  7. package/dist/cliproxy/binary-manager.d.ts.map +1 -1
  8. package/dist/cliproxy/binary-manager.js +86 -5
  9. package/dist/cliproxy/binary-manager.js.map +1 -1
  10. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
  11. package/dist/cliproxy/cliproxy-executor.js +45 -17
  12. package/dist/cliproxy/cliproxy-executor.js.map +1 -1
  13. package/dist/cliproxy/config-generator.d.ts.map +1 -1
  14. package/dist/cliproxy/config-generator.js +6 -3
  15. package/dist/cliproxy/config-generator.js.map +1 -1
  16. package/dist/cliproxy/index.d.ts +1 -1
  17. package/dist/cliproxy/index.d.ts.map +1 -1
  18. package/dist/cliproxy/index.js +7 -2
  19. package/dist/cliproxy/index.js.map +1 -1
  20. package/dist/commands/cliproxy-command.d.ts.map +1 -1
  21. package/dist/commands/cliproxy-command.js +50 -19
  22. package/dist/commands/cliproxy-command.js.map +1 -1
  23. package/dist/commands/install-command.d.ts +2 -2
  24. package/dist/commands/install-command.d.ts.map +1 -1
  25. package/dist/commands/install-command.js +9 -6
  26. package/dist/commands/install-command.js.map +1 -1
  27. package/dist/commands/migrate-command.d.ts.map +1 -1
  28. package/dist/commands/migrate-command.js +20 -20
  29. package/dist/commands/migrate-command.js.map +1 -1
  30. package/dist/commands/shell-completion-command.d.ts.map +1 -1
  31. package/dist/commands/shell-completion-command.js +10 -9
  32. package/dist/commands/shell-completion-command.js.map +1 -1
  33. package/dist/commands/sync-command.d.ts.map +1 -1
  34. package/dist/commands/sync-command.js +5 -4
  35. package/dist/commands/sync-command.js.map +1 -1
  36. package/dist/commands/update-command.d.ts.map +1 -1
  37. package/dist/commands/update-command.js +59 -46
  38. package/dist/commands/update-command.js.map +1 -1
  39. package/dist/commands/version-command.d.ts +1 -1
  40. package/dist/commands/version-command.d.ts.map +1 -1
  41. package/dist/commands/version-command.js +18 -17
  42. package/dist/commands/version-command.js.map +1 -1
  43. package/dist/config/migration-manager.d.ts.map +1 -1
  44. package/dist/config/migration-manager.js +4 -7
  45. package/dist/config/migration-manager.js.map +1 -1
  46. package/dist/config/unified-config-loader.d.ts +1 -0
  47. package/dist/config/unified-config-loader.d.ts.map +1 -1
  48. package/dist/config/unified-config-loader.js +27 -2
  49. package/dist/config/unified-config-loader.js.map +1 -1
  50. package/dist/config/unified-config-types.d.ts +2 -0
  51. package/dist/config/unified-config-types.d.ts.map +1 -1
  52. package/dist/config/unified-config-types.js +5 -5
  53. package/dist/config/unified-config-types.js.map +1 -1
  54. package/dist/delegation/delegation-handler.d.ts.map +1 -1
  55. package/dist/delegation/delegation-handler.js +6 -5
  56. package/dist/delegation/delegation-handler.js.map +1 -1
  57. package/dist/delegation/headless-executor.d.ts.map +1 -1
  58. package/dist/delegation/headless-executor.js +14 -14
  59. package/dist/delegation/headless-executor.js.map +1 -1
  60. package/dist/management/doctor.d.ts +6 -2
  61. package/dist/management/doctor.d.ts.map +1 -1
  62. package/dist/management/doctor.js +109 -21
  63. package/dist/management/doctor.js.map +1 -1
  64. package/dist/management/recovery-manager.d.ts.map +1 -1
  65. package/dist/management/recovery-manager.js +3 -2
  66. package/dist/management/recovery-manager.js.map +1 -1
  67. package/dist/management/shared-manager.d.ts.map +1 -1
  68. package/dist/management/shared-manager.js +19 -18
  69. package/dist/management/shared-manager.js.map +1 -1
  70. package/dist/ui/assets/{accounts-Bl9qfu_d.js → accounts-BeL69fgi.js} +1 -1
  71. package/dist/ui/assets/analytics-CAiq9C19.js +64 -0
  72. package/dist/ui/assets/{api-DoPJHgqb.js → api-CvY-Z9t4.js} +1 -1
  73. package/dist/ui/assets/{cliproxy-DRxRpTJv.js → cliproxy-DbfUkLCy.js} +1 -1
  74. package/dist/ui/assets/cliproxy-control-panel-DTiBzA5u.js +1 -0
  75. package/dist/ui/assets/{code-editor-ek-uxeLN.js → code-editor-xnukAIwJ.js} +1 -1
  76. package/dist/ui/assets/{health-DBc3-gE9.js → health-D29me3pE.js} +1 -1
  77. package/dist/ui/assets/icons-Alnq4BWm.js +1 -0
  78. package/dist/ui/assets/{index-D-zCRwmw.js → index-CVMaabkX.js} +5 -5
  79. package/dist/ui/assets/{settings-Dh8DSszQ.js → settings-C-IIOnQo.js} +1 -1
  80. package/dist/ui/assets/{shared-n31ZWpeq.js → shared-DRWHGJPD.js} +1 -1
  81. package/dist/ui/index.html +2 -2
  82. package/dist/utils/claude-dir-installer.js +3 -3
  83. package/dist/utils/claude-dir-installer.js.map +1 -1
  84. package/dist/utils/claude-symlink-manager.js +3 -3
  85. package/dist/utils/claude-symlink-manager.js.map +1 -1
  86. package/dist/utils/config-manager.js +10 -10
  87. package/dist/utils/config-manager.js.map +1 -1
  88. package/dist/utils/error-manager.d.ts.map +1 -1
  89. package/dist/utils/error-manager.js +11 -4
  90. package/dist/utils/error-manager.js.map +1 -1
  91. package/dist/utils/platform-commands.d.ts +53 -0
  92. package/dist/utils/platform-commands.d.ts.map +1 -0
  93. package/dist/utils/platform-commands.js +189 -0
  94. package/dist/utils/platform-commands.js.map +1 -0
  95. package/dist/utils/update-checker.d.ts.map +1 -1
  96. package/dist/utils/update-checker.js +5 -5
  97. package/dist/utils/update-checker.js.map +1 -1
  98. package/dist/web-server/data-aggregator.d.ts +11 -1
  99. package/dist/web-server/data-aggregator.d.ts.map +1 -1
  100. package/dist/web-server/data-aggregator.js +87 -1
  101. package/dist/web-server/data-aggregator.js.map +1 -1
  102. package/dist/web-server/shutdown.d.ts.map +1 -1
  103. package/dist/web-server/shutdown.js +4 -3
  104. package/dist/web-server/shutdown.js.map +1 -1
  105. package/dist/web-server/usage-disk-cache.d.ts +3 -2
  106. package/dist/web-server/usage-disk-cache.d.ts.map +1 -1
  107. package/dist/web-server/usage-disk-cache.js +11 -9
  108. package/dist/web-server/usage-disk-cache.js.map +1 -1
  109. package/dist/web-server/usage-routes.d.ts.map +1 -1
  110. package/dist/web-server/usage-routes.js +175 -17
  111. package/dist/web-server/usage-routes.js.map +1 -1
  112. package/dist/web-server/usage-types.d.ts +13 -0
  113. package/dist/web-server/usage-types.d.ts.map +1 -1
  114. package/dist/web-server/websocket.d.ts.map +1 -1
  115. package/dist/web-server/websocket.js +7 -6
  116. package/dist/web-server/websocket.js.map +1 -1
  117. package/package.json +3 -3
  118. package/dist/ui/assets/analytics-BHnr8pTE.js +0 -64
  119. package/dist/ui/assets/cliproxy-control-panel-CNpMpeWs.js +0 -1
  120. package/dist/ui/assets/icons-CqXn5eV0.js +0 -1
package/README.md CHANGED
@@ -4,1070 +4,250 @@
4
4
 
5
5
  ![CCS Logo](docs/assets/ccs-logo-medium.png)
6
6
 
7
- ### One command, zero downtime, multiple accounts
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](https://img.shields.io/badge/license-MIT-C15F3C?style=for-the-badge)](LICENSE)
14
- [![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey?style=for-the-badge)]()
15
- [![PoweredBy](https://img.shields.io/badge/PoweredBy-ClaudeKit-C15F3C?style=for-the-badge)](https://claudekit.cc?ref=HMNKXOHN)
16
-
17
11
  [![npm](https://img.shields.io/npm/v/@kaitranntt/ccs?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@kaitranntt/ccs)
18
- [![React](https://img.shields.io/badge/React-19-61DAFB?style=for-the-badge&logo=react)](https://react.dev/)
19
- [![TypeScript](https://img.shields.io/badge/TypeScript-100%25-3178C6?style=for-the-badge&logo=typescript)](https://www.typescriptlang.org/)
12
+ [![PoweredBy](https://img.shields.io/badge/PoweredBy-ClaudeKit-C15F3C?style=for-the-badge)](https://claudekit.cc?ref=HMNKXOHN)
20
13
 
21
- **Languages**: [English](README.md) | [Tiếng Việt](docs/vi/README.md) | [日本語](docs/ja/README.md)
14
+ **[Features & Pricing](https://ccs.kaitran.ca)** | **[Documentation](https://docs.ccs.kaitran.ca)**
22
15
 
23
16
  </div>
24
17
 
25
18
  <br>
26
19
 
27
- ## Quick Start
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
- </details>
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
- ## Zero-Config OAuth Providers
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
- **Port 8317 conflict**:
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
- ccs doctor # Shows binary status + version
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><h3>Custom Claude CLI Path</h3></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
- export CCS_CLAUDE_PATH="/path/to/claude" # Unix
200
- $env:CCS_CLAUDE_PATH = "D:\Tools\Claude\claude.exe" # Windows
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
- <details>
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
- # Terminal 1 - Planning (Claude Sonnet)
239
- ccs "Plan a REST API with authentication and rate limiting"
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
- **Note:** GLMT is experimental and unstable. See [GLM with Thinking (GLMT)](#glm-with-thinking-glmt) section below for full details.
56
+ ### 3. Configure Your Accounts
259
57
 
260
- </details>
58
+ The dashboard provides visual management for all account types:
261
59
 
262
- <br>
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
- ## The Daily Developer Pain Point
65
+ **Analytics (Light/Dark Theme)**
265
66
 
266
- <div align="center">
67
+ ![Analytics Light](docs/assets/screenshots/analytics-light.png)
267
68
 
268
- ### **STOP Switching. START Orchestrating.**
69
+ ![Analytics Dark](docs/assets/screenshots/analytics.png)
269
70
 
270
- **Session limits shouldn't kill your flow state.**
271
- </div>
71
+ **API Profiles & OAuth Providers**
272
72
 
273
- You're deep in implementation. Context loaded. Solution crystallizing.<br>
274
- Then: 🔴 _"You've reached your usage limit."_
73
+ ![API Profiles](docs/assets/screenshots/api_profiles.png)
275
74
 
276
- **Momentum gone. Context lost. Productivity crater.**
277
-
278
- ## **The Solution: Parallel Workflows**
279
-
280
- <details>
281
- <summary><strong>❌ OLD WAY:</strong> Switch When You Hit Limits (Reactive)</summary>
75
+ ![CLIProxy](docs/assets/screenshots/cliproxy.png)
282
76
 
283
77
  <br>
284
78
 
285
- ```mermaid
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
- </details>
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
- <details open>
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
- ```mermaid
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
- - **Best for:** Heavy workloads, concurrent projects, solo dev
363
- - **Unlocks:** Never drain session or weekly limits
364
- - **Workflow:** 3+ terminals running specialized tasks simultaneously
96
+ ### Basic Commands
365
97
 
366
- </details>
367
-
368
- <details>
369
- <summary><strong>Privacy-Focused:</strong> Work/Personal Isolation</summary>
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
- > [!TIP]
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
- **Shared across instances** (`~/.ccs/shared/` symlinked to `~/.claude/`):
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
- # Start the web dashboard (auto-detects available port)
503
- ccs config
110
+ # Terminal 1: Planning (Claude Pro)
111
+ ccs work "design the authentication system"
504
112
 
505
- # Or specify a port
506
- ccs config --port 3000
113
+ # Terminal 2: Execution (GLM - cost optimized)
114
+ ccs glm "implement the user service from the plan"
507
115
 
508
- # Access at http://localhost:PORT (shown in output)
116
+ # Terminal 3: Review (Gemini)
117
+ ccs gemini "review the implementation for security issues"
509
118
  ```
510
119
 
511
- **Dashboard Features**:
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
- ### Basic Switching
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
- **Run concurrently in separate terminals:**
542
-
543
- ```bash
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
- ## AI-Powered Delegation
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
- **Via Slash Commands** (inside Claude sessions):
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
- # Claude detects delegation patterns and auto-executes:
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
- ### Real-Time Output
142
+ Verifies: Claude CLI, config files, symlinks, permissions.
606
143
 
607
- See exactly what's happening as tasks execute:
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 glm -p "/cook create responsive landing page"
635
- # Executes /cook command in delegated GLM session
147
+ ccs update # Update to latest
148
+ ccs update --force # Force reinstall
149
+ ccs update --beta # Install dev channel
636
150
  ```
637
151
 
638
- **Signal Handling:**
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 glm -p "complex task" # Auto-terminates after 10min if needed
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
- ### Documentation
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
- ## GLM with Thinking (GLMT)
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
- > [!NOTE]
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
- <br>
166
+ **Config location**: `~/.ccs/config.yaml`
712
167
 
713
168
  <details>
714
- <summary><h3>GLM vs GLMT Comparison</h3></summary>
715
-
716
- <br>
717
-
718
- <div align="center">
169
+ <summary>Custom Claude CLI path</summary>
719
170
 
720
- | Feature | GLM (`ccs glm`) | GLMT (`ccs glmt`) |
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
- # Edit GLMT settings
821
- nano ~/.ccs/glmt.settings.json
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><h3>Security Limits (DoS Protection)</h3></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
- **Enable debug file logging**:
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
- **GLMT debugging**:
870
- ```bash
871
- # Verbose logging shows streaming status and reasoning details
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
- **Troubleshooting**:
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
- ## Maintenance
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
- # Install beta/dev channel (unstable, for testing)
925
- ccs update --beta
926
-
927
- # Force reinstall from dev channel
928
- ccs update --force --beta
929
- ```
930
-
931
- **Note:** `--beta` installs from the `@dev` npm tag, which contains unreleased features. Not recommended for production use.
932
-
933
- ### Update CCS Items
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.ccs.kaitran.ca/getting-started/installation](https://docs.ccs.kaitran.ca/getting-started/installation) |
200
+ | Configuration | [docs.ccs.kaitran.ca/getting-started/configuration](https://docs.ccs.kaitran.ca/getting-started/configuration) |
201
+ | OAuth Providers | [docs.ccs.kaitran.ca/providers/oauth-providers](https://docs.ccs.kaitran.ca/providers/oauth-providers) |
202
+ | Multi-Account Claude | [docs.ccs.kaitran.ca/providers/claude-accounts](https://docs.ccs.kaitran.ca/providers/claude-accounts) |
203
+ | API Profiles | [docs.ccs.kaitran.ca/providers/api-profiles](https://docs.ccs.kaitran.ca/providers/api-profiles) |
204
+ | CLI Reference | [docs.ccs.kaitran.ca/reference/cli-commands](https://docs.ccs.kaitran.ca/reference/cli-commands) |
205
+ | Architecture | [docs.ccs.kaitran.ca/reference/architecture](https://docs.ccs.kaitran.ca/reference/architecture) |
206
+ | Troubleshooting | [docs.ccs.kaitran.ca/reference/troubleshooting](https://docs.ccs.kaitran.ca/reference/troubleshooting) |
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><strong>Alternative Package Managers</strong></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
- ## 🎯 Philosophy
229
+ ## Philosophy
1033
230
 
1034
231
  - **YAGNI**: No features "just in case"
1035
- - **KISS**: Simple bash, no complexity
232
+ - **KISS**: Simple, focused implementation
1036
233
  - **DRY**: One source of truth (config)
1037
234
 
1038
- ## 📖 Documentation
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
- <img src="https://api.star-history.com/svg?repos=kaitranntt/ccs&type=timeline&logscale&legend=top-left" alt="Star History Chart" width="800">
237
+ ## Contributing
1059
238
 
1060
- </div>
239
+ See [CONTRIBUTING.md](./CONTRIBUTING.md).
1061
240
 
241
+ <br>
1062
242
 
1063
243
  ## License
1064
244
 
1065
- CCS is licensed under the [MIT License](LICENSE).
245
+ MIT License - see [LICENSE](LICENSE).
1066
246
 
1067
247
  <div align="center">
1068
248
 
1069
- **Made with ❤️ for developers who hit rate limits too often**
249
+ ---
1070
250
 
1071
- [⭐ Star this repo](https://github.com/kaitranntt/ccs) | [🐛 Report issues](https://github.com/kaitranntt/ccs/issues) | [📖 Read docs](./docs/en/)
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>