@kaitranntt/ccs 3.0.0 → 3.0.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.ja.md +325 -0
- package/README.md +133 -122
- package/README.vi.md +147 -94
- package/VERSION +1 -1
- package/bin/ccs.js +47 -12
- package/bin/config-manager.js +36 -7
- package/bin/doctor.js +365 -0
- package/bin/error-manager.js +159 -0
- package/bin/recovery-manager.js +135 -0
- package/lib/ccs +856 -301
- package/lib/ccs.ps1 +792 -122
- package/package.json +1 -1
- package/scripts/postinstall.js +111 -12
package/README.md
CHANGED
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
7
|
-
**One command, zero downtime,
|
|
7
|
+
**One command, zero downtime, multiple accounts**
|
|
8
8
|
|
|
9
|
-
Switch between Claude
|
|
9
|
+
Switch between multiple Claude accounts, GLM, and Kimi instantly.<br>
|
|
10
|
+
Stop hitting rate limits. Keep working continuously.
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
[](LICENSE)
|
|
@@ -14,7 +15,7 @@ Switch between Claude Sonnet 4.5, GLM 4.6, and Kimi for Coding instantly. Stop h
|
|
|
14
15
|
[](https://www.npmjs.com/package/@kaitranntt/ccs)
|
|
15
16
|
[](https://claudekit.cc?ref=HMNKXOHN)
|
|
16
17
|
|
|
17
|
-
**Languages**: [English](README.md) | [Tiếng Việt](README.vi.md)
|
|
18
|
+
**Languages**: [English](README.md) | [Tiếng Việt](README.vi.md) | [日本語](README.ja.md)
|
|
18
19
|
|
|
19
20
|
</div>
|
|
20
21
|
|
|
@@ -38,7 +39,18 @@ claude /login
|
|
|
38
39
|
npm install -g @kaitranntt/ccs
|
|
39
40
|
```
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
All major package managers are supported:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# yarn
|
|
46
|
+
yarn global add @kaitranntt/ccs
|
|
47
|
+
|
|
48
|
+
# pnpm (70% less disk space)
|
|
49
|
+
pnpm add -g @kaitranntt/ccs
|
|
50
|
+
|
|
51
|
+
# bun (30x faster)
|
|
52
|
+
bun add -g @kaitranntt/ccs
|
|
53
|
+
```
|
|
42
54
|
|
|
43
55
|
#### Option 2: Direct Install (Traditional)
|
|
44
56
|
|
|
@@ -52,41 +64,7 @@ curl -fsSL ccs.kaitran.ca/install | bash
|
|
|
52
64
|
irm ccs.kaitran.ca/install | iex
|
|
53
65
|
```
|
|
54
66
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
# Use Claude subscription (default)
|
|
59
|
-
ccs "Review this architecture design"
|
|
60
|
-
|
|
61
|
-
# Switch to GLM for cost-optimized tasks
|
|
62
|
-
ccs glm "Create a simple REST API"
|
|
63
|
-
|
|
64
|
-
# Switch to Kimi for alternative option
|
|
65
|
-
ccs kimi "Write integration tests"
|
|
66
|
-
|
|
67
|
-
# Use GLM for all subsequent commands until switched back
|
|
68
|
-
ccs glm
|
|
69
|
-
ccs "Debug this issue"
|
|
70
|
-
ccs "Write unit tests"
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
#### Package Manager Options
|
|
74
|
-
|
|
75
|
-
All major package managers are supported:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
# npm (default)
|
|
79
|
-
npm install -g @kaitranntt/ccs
|
|
80
|
-
|
|
81
|
-
# yarn
|
|
82
|
-
yarn global add @kaitranntt/ccs
|
|
83
|
-
|
|
84
|
-
# pnpm (70% less disk space)
|
|
85
|
-
pnpm add -g @kaitranntt/ccs
|
|
86
|
-
|
|
87
|
-
# bun (30x faster)
|
|
88
|
-
bun add -g @kaitranntt/ccs
|
|
89
|
-
```
|
|
67
|
+
> **💡 Performance Tip**: Traditional installs bypass Node.js routing for faster startup, but I prioritize npm updates due to easier deployment automation.
|
|
90
68
|
|
|
91
69
|
### Configuration (Auto-created)
|
|
92
70
|
|
|
@@ -116,107 +94,137 @@ $env:CCS_CLAUDE_PATH = "D:\Tools\Claude\claude.exe" # Windows
|
|
|
116
94
|
|
|
117
95
|
---
|
|
118
96
|
|
|
97
|
+
### Your First Switch
|
|
98
|
+
|
|
99
|
+
> **⚠️ Important**: Before using GLM or Kimi profiles, you need to update your API keys in their respective settings files:
|
|
100
|
+
> - **GLM**: Edit `~/.ccs/glm.settings.json` and add your GLM API key
|
|
101
|
+
> - **Kimi**: Edit `~/.ccs/kimi.settings.json` and add your Kimi API key
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Use Claude subscription (default) for high-level planning
|
|
105
|
+
ccs "Plan the implementation of a microservices architecture"
|
|
106
|
+
|
|
107
|
+
# Switch to GLM for cost-optimized tasks
|
|
108
|
+
ccs glm "Create a simple REST API"
|
|
109
|
+
|
|
110
|
+
# Switch to Kimi for its thinking capabilities
|
|
111
|
+
ccs kimi "Write integration tests with proper error handling"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
119
116
|
## The Daily Developer Pain Point
|
|
120
117
|
|
|
121
|
-
|
|
118
|
+
Developers face multiple subscription scenarios daily:
|
|
122
119
|
|
|
123
|
-
1. **
|
|
124
|
-
2. **
|
|
125
|
-
3. **
|
|
120
|
+
1. **Account Separation**: Company Claude account vs personal Claude → you must manually switch contexts to keep work and personal separate
|
|
121
|
+
2. **Rate Limits Hit**: Claude stops mid-project → you manually edit `~/.claude/settings.json`
|
|
122
|
+
3. **Cost Management**: 2-3 Pro subscriptions ($20/month each) vs Claude Max at 5x cost ($100/month) → Pro tier is the practical ceiling for most developers
|
|
123
|
+
4. **Model Choice**: Different tasks benefit from different model strengths → manual switching
|
|
126
124
|
|
|
127
|
-
Manual switching breaks your
|
|
125
|
+
Manual context switching breaks your workflow. **CCS manages it seamlessly**.
|
|
128
126
|
|
|
129
127
|
## Why CCS Instead of Manual Switching?
|
|
130
128
|
|
|
131
129
|
<div align="center">
|
|
132
130
|
|
|
133
|
-
| Feature | Benefit |
|
|
134
|
-
|
|
135
|
-
| **
|
|
136
|
-
| **
|
|
137
|
-
| **
|
|
138
|
-
| **
|
|
139
|
-
| **
|
|
140
|
-
| **
|
|
131
|
+
| Feature | Benefit |
|
|
132
|
+
|---------|---------|
|
|
133
|
+
| **Account Isolation** | Keep work separate from personal |
|
|
134
|
+
| **Cost Optimization** | 2-3 Pro accounts vs Max at 5x cost |
|
|
135
|
+
| **Instant Switching** | One command, no file editing |
|
|
136
|
+
| **Zero Downtime** | Never interrupt workflow |
|
|
137
|
+
| **Rate Limit Management** | Switch accounts when limits hit |
|
|
138
|
+
| **Cross-Platform** | macOS, Linux, Windows |
|
|
141
139
|
|
|
142
140
|
</div>
|
|
143
141
|
|
|
144
142
|
**The Solution**:
|
|
145
143
|
```bash
|
|
146
|
-
ccs
|
|
147
|
-
ccs
|
|
148
|
-
ccs
|
|
144
|
+
ccs work # Use company Claude account
|
|
145
|
+
ccs personal # Switch to personal Claude account
|
|
146
|
+
ccs glm # Switch to GLM for cost-effective tasks
|
|
147
|
+
ccs kimi # Switch to Kimi for alternative option
|
|
149
148
|
# Hit rate limit? Switch instantly:
|
|
150
|
-
ccs glm
|
|
151
|
-
#
|
|
152
|
-
ccs
|
|
149
|
+
ccs glm # Continue working with GLM
|
|
150
|
+
# Need different company account?
|
|
151
|
+
ccs work-2 # Switch to second company account
|
|
153
152
|
```
|
|
154
153
|
|
|
155
|
-
One command. Zero downtime. No file editing. Right model, right task.
|
|
156
|
-
|
|
157
154
|
---
|
|
158
155
|
|
|
159
|
-
## 🏗️ Architecture Overview
|
|
156
|
+
## 🏗️ Architecture Overview
|
|
160
157
|
|
|
161
158
|
**v3.0 Login-Per-Profile Model**: Each profile is an isolated Claude instance where users login directly. No credential copying or vault encryption.
|
|
162
159
|
|
|
163
160
|
```mermaid
|
|
164
|
-
|
|
165
|
-
subgraph "User
|
|
166
|
-
|
|
161
|
+
flowchart TD
|
|
162
|
+
subgraph "User Input"
|
|
163
|
+
USER["User runs: ccs <profile> [args...]"]
|
|
167
164
|
end
|
|
168
165
|
|
|
169
|
-
subgraph "Profile Detection"
|
|
166
|
+
subgraph "Profile Detection Engine"
|
|
170
167
|
DETECT[ProfileDetector]
|
|
171
|
-
|
|
172
|
-
|
|
168
|
+
PROFILE_CHECK{Profile exists?}
|
|
169
|
+
|
|
170
|
+
subgraph "Profile Types"
|
|
171
|
+
SETTINGS["Settings-based<br/>glm, kimi, default"]
|
|
172
|
+
ACCOUNT["Account-based<br/>work, personal, team"]
|
|
173
|
+
end
|
|
173
174
|
end
|
|
174
175
|
|
|
175
|
-
subgraph "CCS Processing"
|
|
176
|
-
CONFIG[Read config.json
|
|
177
|
-
|
|
176
|
+
subgraph "CCS Core Processing"
|
|
177
|
+
CONFIG["Read config.json<br/>and profiles.json"]
|
|
178
|
+
|
|
179
|
+
subgraph "Profile Handlers"
|
|
180
|
+
SETTINGS_MGR["SettingsManager<br/>→ --settings flag"]
|
|
181
|
+
INSTANCE_MGR["InstanceManager<br/>→ CLAUDE_CONFIG_DIR"]
|
|
182
|
+
end
|
|
178
183
|
end
|
|
179
184
|
|
|
180
185
|
subgraph "Claude CLI Execution"
|
|
181
|
-
|
|
182
|
-
|
|
186
|
+
CLAUDE_DETECT["Claude CLI Detection<br/>CCS_CLAUDE_PATH support"]
|
|
187
|
+
|
|
188
|
+
subgraph "Execution Methods"
|
|
189
|
+
SETTINGS_EXEC["claude --settings <path>"]
|
|
190
|
+
INSTANCE_EXEC["CLAUDE_CONFIG_DIR=<instance> claude"]
|
|
191
|
+
end
|
|
183
192
|
end
|
|
184
193
|
|
|
185
|
-
subgraph "API
|
|
186
|
-
API[Claude
|
|
194
|
+
subgraph "API Layer"
|
|
195
|
+
API["API Response<br/>Claude Sonnet 4.5<br/>GLM 4.6<br/>Kimi K2 Thinking"]
|
|
187
196
|
end
|
|
188
197
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
DETECT -->
|
|
198
|
+
%% Flow connections
|
|
199
|
+
USER --> DETECT
|
|
200
|
+
DETECT --> PROFILE_CHECK
|
|
201
|
+
PROFILE_CHECK -->|Yes| SETTINGS
|
|
202
|
+
PROFILE_CHECK -->|Yes| ACCOUNT
|
|
203
|
+
|
|
192
204
|
SETTINGS --> CONFIG
|
|
193
|
-
ACCOUNT -->
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
205
|
+
ACCOUNT --> CONFIG
|
|
206
|
+
|
|
207
|
+
CONFIG --> SETTINGS_MGR
|
|
208
|
+
CONFIG --> INSTANCE_MGR
|
|
209
|
+
|
|
210
|
+
SETTINGS_MGR --> SETTINGS_EXEC
|
|
211
|
+
INSTANCE_MGR --> INSTANCE_EXEC
|
|
212
|
+
|
|
213
|
+
SETTINGS_EXEC --> CLAUDE_DETECT
|
|
214
|
+
INSTANCE_EXEC --> CLAUDE_DETECT
|
|
215
|
+
|
|
216
|
+
CLAUDE_DETECT --> API
|
|
198
217
|
```
|
|
199
218
|
|
|
200
219
|
---
|
|
201
220
|
|
|
202
221
|
## ⚡ Features
|
|
203
222
|
|
|
204
|
-
|
|
205
|
-
- **
|
|
206
|
-
- **
|
|
207
|
-
- **
|
|
208
|
-
|
|
209
|
-
### Concurrent Sessions (All Platforms)
|
|
210
|
-
- **Multiple Profiles Simultaneously**: Run `ccs work` and `ccs personal` in different terminals concurrently
|
|
211
|
-
- **Isolated Instances**: Each profile gets own config directory (`~/.ccs/instances/<profile>/`)
|
|
212
|
-
- **Independent Sessions**: Separate login, chat sessions, todos, logs per profile
|
|
213
|
-
- **Platform Parity**: Works identically on macOS, Linux, and Windows via `CLAUDE_CONFIG_DIR`
|
|
214
|
-
- **Backward Compatible**: Existing settings profiles (glm, kimi) work unchanged
|
|
215
|
-
|
|
216
|
-
### Zero Workflow Interruption
|
|
217
|
-
- **No Downtime**: Switching happens instantly between commands
|
|
218
|
-
- **Context Preservation**: Your workflow remains uninterrupted
|
|
219
|
-
- **Seamless Integration**: Works exactly like native Claude CLI
|
|
223
|
+
- **Instant Switching** - `ccs glm` switches to GLM, no config editing
|
|
224
|
+
- **Concurrent Sessions** - Run multiple profiles simultaneously in different terminals
|
|
225
|
+
- **Isolated Instances** - Each profile gets own config (`~/.ccs/instances/<profile>/`)
|
|
226
|
+
- **Cross-Platform** - macOS, Linux, Windows - identical behavior
|
|
227
|
+
- **Zero Downtime** - Switch instantly, no workflow interruption
|
|
220
228
|
|
|
221
229
|
|
|
222
230
|
---
|
|
@@ -233,46 +241,49 @@ ccs --version # Show CCS version and install location
|
|
|
233
241
|
|
|
234
242
|
### Concurrent Sessions (Multi-Account)
|
|
235
243
|
```bash
|
|
236
|
-
#
|
|
237
|
-
ccs auth create work
|
|
238
|
-
ccs auth create personal
|
|
244
|
+
# Create multiple Claude accounts
|
|
245
|
+
ccs auth create work # Company account
|
|
246
|
+
ccs auth create personal # Personal account
|
|
247
|
+
ccs auth create team # Team account
|
|
239
248
|
|
|
240
249
|
# Terminal 1 - Work account
|
|
241
250
|
ccs work "implement feature"
|
|
242
251
|
|
|
243
|
-
# Terminal 2 - Personal account (
|
|
252
|
+
# Terminal 2 - Personal account (runs concurrently)
|
|
244
253
|
ccs personal "review code"
|
|
245
|
-
|
|
246
|
-
# Both run simultaneously with isolated logins/sessions
|
|
247
|
-
# Works on all platforms: macOS, Linux, Windows
|
|
248
254
|
```
|
|
249
255
|
|
|
250
256
|
---
|
|
251
257
|
|
|
252
|
-
### 🗑️
|
|
258
|
+
### 🗑️ Uninstall
|
|
259
|
+
|
|
260
|
+
**Package Managers**
|
|
261
|
+
```bash
|
|
262
|
+
# npm
|
|
263
|
+
npm uninstall -g @kaitranntt/ccs
|
|
264
|
+
|
|
265
|
+
# yarn
|
|
266
|
+
yarn global remove @kaitranntt/ccs
|
|
267
|
+
|
|
268
|
+
# pnpm
|
|
269
|
+
pnpm remove -g @kaitranntt/ccs
|
|
253
270
|
|
|
254
|
-
|
|
271
|
+
# bun
|
|
272
|
+
bun remove -g @kaitranntt/ccs
|
|
273
|
+
```
|
|
255
274
|
|
|
256
|
-
**
|
|
275
|
+
**Official Uninstaller**
|
|
276
|
+
|
|
277
|
+
**macOS / Linux**
|
|
257
278
|
```bash
|
|
258
279
|
curl -fsSL ccs.kaitran.ca/uninstall | bash
|
|
259
280
|
```
|
|
260
281
|
|
|
261
|
-
**Windows PowerShell
|
|
282
|
+
**Windows PowerShell**
|
|
262
283
|
```powershell
|
|
263
284
|
irm ccs.kaitran.ca/uninstall | iex
|
|
264
285
|
```
|
|
265
286
|
|
|
266
|
-
> 💡 **Why use the official uninstaller?**
|
|
267
|
-
> - Removes all CCS files and configurations
|
|
268
|
-
> - Cleans up PATH modifications
|
|
269
|
-
> - Removes Claude CLI commands/skills
|
|
270
|
-
> - Handles edge cases we've tested
|
|
271
|
-
|
|
272
|
-
**Alternative methods** (if official uninstaller fails):
|
|
273
|
-
- **npm**: `npm uninstall -g @kaitranntt/ccs`
|
|
274
|
-
- **Manual**: See [troubleshooting guide](./docs/en/troubleshooting.md#manual-uninstall)
|
|
275
|
-
|
|
276
287
|
---
|
|
277
288
|
|
|
278
289
|
## 🎯 Philosophy
|
|
@@ -290,13 +301,13 @@ irm ccs.kaitran.ca/uninstall | iex
|
|
|
290
301
|
- [Configuration](./docs/en/configuration.md)
|
|
291
302
|
- [Usage Examples](./docs/en/usage.md)
|
|
292
303
|
- [Troubleshooting](./docs/en/troubleshooting.md)
|
|
293
|
-
- [Contributing](./
|
|
304
|
+
- [Contributing](./CONTRIBUTING.md)
|
|
294
305
|
|
|
295
306
|
---
|
|
296
307
|
|
|
297
308
|
## 🤝 Contributing
|
|
298
309
|
|
|
299
|
-
We welcome contributions! Please see our [Contributing Guide](./
|
|
310
|
+
We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details.
|
|
300
311
|
|
|
301
312
|
---
|
|
302
313
|
|
|
@@ -312,4 +323,4 @@ CCS is licensed under the [MIT License](LICENSE).
|
|
|
312
323
|
|
|
313
324
|
[⭐ Star this repo](https://github.com/kaitranntt/ccs) | [🐛 Report issues](https://github.com/kaitranntt/ccs/issues) | [📖 Read docs](./docs/en/)
|
|
314
325
|
|
|
315
|
-
</div>
|
|
326
|
+
</div>
|