docs: reorganize translated README files into docs/ folder structure

This commit is contained in:
kaitranntt
2025-11-22 21:48:18 -05:00
parent 0f82b0cb06
commit c4e5bcc40b
3 changed files with 5 additions and 5 deletions
+649
View File
@@ -0,0 +1,649 @@
<div align="center">
# CCS - Claude Code Switch
![CCS Logo](../../docs/assets/ccs-logo-medium.png)
### 1コマンド、ダウンタイムなし、複数アカウント
**複数のClaudeアカウント、GLM、Kimiを瞬時に切り替え。**
レート制限を回避し、継続的に作業。
<br>
[![License](https://img.shields.io/badge/license-MIT-C15F3C?style=for-the-badge)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey?style=for-the-badge)]()
[![npm](https://img.shields.io/npm/v/@kaitranntt/ccs?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@kaitranntt/ccs)
[![PoweredBy](https://img.shields.io/badge/PoweredBy-ClaudeKit-C15F3C?style=for-the-badge)](https://claudekit.cc?ref=HMNKXOHN)
**Languages**: [English](../../README.md) · [Tiếng Việt](../vi/README.md) · [日本語](README.md)
</div>
<br>
## クイックスタート
### インストール
**npmパッケージ(推奨)**
**macOS / Linux / Windows**
```bash
npm install -g @kaitranntt/ccs
```
**主要なパッケージマネージャーすべてに対応:**
```bash
# yarn
yarn global add @kaitranntt/ccs
# pnpm(ディスク使用量70%削減)
pnpm add -g @kaitranntt/ccs
# bun30倍高速)
bun add -g @kaitranntt/ccs
```
<details>
<summary><strong>代替案:直接インストール(従来型)</strong></summary>
<br>
**macOS / Linux**
```bash
curl -fsSL ccs.kaitran.ca/install | bash
```
**Windows PowerShell**
```powershell
irm ccs.kaitran.ca/install | iex
```
**注**: 従来型インストールはNode.jsルーティングをバイパスし起動が高速ですが、デプロイ自動化が容易なためnpmを優先します。
</details>
<br>
### 設定(自動作成)
**CCSはインストール時に自動的に設定を作成します**npm postinstallスクリプト経由)。
**~/.ccs/config.json**:
```json
{
"profiles": {
"glm": "~/.ccs/glm.settings.json",
"glmt": "~/.ccs/glmt.settings.json",
"kimi": "~/.ccs/kimi.settings.json",
"default": "~/.claude/settings.json"
}
}
```
<details>
<summary><h3>カスタムClaude CLIパス</h3></summary>
<br>
Claude CLIが標準以外の場所(Dドライブ、カスタムディレクトリ)にインストールされている場合は、`CCS_CLAUDE_PATH`を設定してください:
```bash
# Unix/Linux/macOS
export CCS_CLAUDE_PATH="/path/to/claude"
# Windows PowerShell
$env:CCS_CLAUDE_PATH = "D:\Tools\Claude\claude.exe"
```
**参照**: [トラブルシューティングガイド](./docs/en/troubleshooting.md#claude-cli-in-non-standard-location) 詳細な設定手順
</details>
<details>
<summary><h3>Windowsシンボリックリンクサポート(開発者モード)</h3></summary>
<br>
**Windowsユーザー**: 本物のシンボリックリンクで高速な動作と即時同期を得るために開発者モードを有効にしてください:
1. **設定****プライバシーとセキュリティ****開発者向け** を開く
2. **開発者モード** を有効にする
3. CCSを再インストール: `npm install -g @kaitranntt/ccs`
**警告**: 開発者モードなしの場合、CCSは自動的にディレクトリコピーにフォールバック(動作しますが、プロファイル間の即時同期はありません)
</details>
<br>
### 最初の切り替え
> [!IMPORTANT]
> **代替モデルを使用する前に、設定ファイルでAPIキーを更新してください:**
>
> - **GLM**: `~/.ccs/glm.settings.json`を編集してZ.AI Coding Plan APIキーを追加
> - **GLMT**: `~/.ccs/glmt.settings.json`を編集してZ.AI Coding Plan APIキーを追加
> - **Kimi**: `~/.ccs/kimi.settings.json`を編集してKimi APIキーを追加
<br>
**並列ワークフロー:計画 + 実行**
```bash
# Terminal 1 - 計画(Claude Sonnet
ccs "認証とレート制限付きREST APIの計画"
# Terminal 2 - 実行(GLM、コスト最適化)
ccs glm "計画からユーザー認証エンドポイントを実装"
```
<details>
<summary><strong>思考モデル(Kimi & GLMT</strong></summary>
<br>
```bash
# Kimi - 安定した思考サポート
ccs kimi "トレードオフ分析付きキャッシュ戦略の設計"
# GLMT - 実験的(詳細は下記参照)
ccs glmt "推論ステップ付き複雑なアルゴリズムのデバッグ"
```
**注**: GLMTは実験的で不安定です。詳細については下記の[GLM with Thinking (GLMT)](#glm-with-thinking-glmt)セクションを参照してください。
</details>
<br>
## 開発者の日常的な課題
<div align="center">
### **切り替えを停止。調整を開始。**
**セッション制限がフロー状態を殺すべきではありません。**
</div>
実装に深く集中しています。コンテキストが読み込まれました。解決策が結晶化しています。<br>
その後: 🔴 _"使用制限に達しました。"_
**モチベーションが失われました。コンテキストが失われました。生産性が崩壊しました。**
## **解決策:並列ワークフロー**
<details>
<summary><strong>❌ 古い方法:</strong> 制限に達した時に切り替える(反応的)</summary>
### 現在のワークフロー:
- **14時:** 機能開発、ゾーン状態
- **15時:** 🔴 使用制限に達した
- **15:05:** 作業停止、`~/.claude/settings.json`を編集
- **15:15:** アカウント切り替え、コンテキストが失われる
- **15:30:** フロー状態に戻ろうと試みる
- **16時:** ついに生産性が回復
- **結果:** 1時間失われ、モチベーションが破壊され、不満が蓄積
</details>
<details open>
<summary><strong>✨ 新しい方法:</strong> 最初から並列で実行(主導的) - <strong>推奨</strong></summary>
### 新しいワークフロー:
- **14時:** **ターミナル1:** `ccs "APIアーキテクチャを計画"` → 戦略的思考(Claude Pro
- **14時:** **ターミナル2:** `ccs glm "エンドポイントを実装"` → コード実行(GLM
- **15時:** まだ開発継続、割れなし
- **16時:** フロー状態達成、生産性急上昇
- **17時:** 機能が完了、コンテキスト維持
- **結果:** ダウムタイムなし、継続的生産性、不満減少
### 💰 **価値提案:**
- **設定:** 既存のClaude Pro + GLM Lite(費用対効果の高い追加)
- **価値:** 1時間/日 × 20労働日 = 20時間/月を回収
- **ROI:** 開発時間は設定コスト以上の価値がある
- **現実:** オーバーヘッドより速く出荷
</details>
## あなたの道を選択
<details>
<summary><strong>予算重視:</strong> GLMのみ</summary>
- **最適:** 費用意識の高い開発、基本的なコード生成
- **使用法:** 費用効果の高いAI支援のために`ccs glm`を直接使用
- **現実:** Claudeアクセスなし、多くのコーディングタスクに対応可能
- **設定:** GLM APIキーのみ、非常に手頃
</details>
<details open>
<summary><strong>✨ 日々の開発に推奨:</strong> 1 Claude Pro + 1 GLM Lite</summary>
- **最適:** 日々のコードデリバリー、真剣な開発作業
- **使用法:** `ccs`で計画 + `ccs glm`で実行(並列ワークフロー)
- **現実:** ほとんどの開発者にとって能力と費用の完璧なバランス
- **価値:** セッション制限に達せず、継続的生産性
</details>
<details>
<summary><strong>パワーユーザー:</strong> 複数のClaude Pro + GLM Pro</summary>
- **最適:** 重い作業量、並行プロジェクト、ソロ開発
- **解放:** セッション・週次制限を決して枯渇させない
- **ワークフロー:** 3+以上のターミナルで専門タスクを同時実行
</details>
<details>
<summary><strong>プライバシー重視:</strong> 仕事/個人の分離</summary>
- **必要時:** 仕事と個人AIコンテキストの厳格な分離
- **設定:** `ccs auth create work` + `ccs auth create personal`
- **注意:** 高度な機能 - ほとんどのユーザーには不要
</details>
---
## 手動切り替えではなくCCSを使う理由は?
<div align="center">
**CCSは「午後3時に制限に達したら切り替える」ことではありません。**
## **それは最初から並列で実行することです。**
</div>
### コアな違い
| **手動切り替え** | **CCSオーケストレーション** |
|:---|:---|
| 🔴 制限達成 → 作業停止 → 設定ファイル編集 → 再起動 | ✅ 最初から異なるモデルで複数ターミナルを実行 |
| 😰 コンテキストロスとフロー状態中断 | 😌 コンテキスト維持での継続的生産性 |
| 📝 逐次的タスク処理 | ⚡ 並列ワークフロー(計画 + 実行を同時に) |
| 🛠️ ブロックされた時の反応的問題解決 | 🎯 ブロックを防ぐ主導的ワークフロー設計 |
### CCSが提供するもの
- **ゼロコンテキスト切り替え:** 割れずにフロー状態を維持
- **並列生産性:** 1ターミナルで戦略計画、もう1つでコード実行
- **即座アカウント管理:** 1コマンド切り替え、設定ファイル編集不要
- **仕事と生活の分離:** ログアウトせずにコンテキストを分離
- **クロスプラットフォーム一貫性:** macOS、Linux、Windowsで同じスムーズな体験
<br>
## アーキテクチャ
### プロファイルタイプ
**設定ベース**: GLM, GLMT, Kimi, default
- 設定ファイルを指す`--settings`フラグを使用
- GLMT: 思考モードサポートの埋め込みプロキシ
**アカウントベース**: work, personal, team
- 分離されたインスタンスに`CLAUDE_CONFIG_DIR`を使用
- `ccs auth create <profile>`で作成
### 共有データ(v3.1
コマンドとスキルは`~/.ccs/shared/`からシンボリックリンク - プロファイル間の重複なし。
```plaintext
~/.ccs/
├── shared/ # すべてのプロファイルで共有
│ ├── agents/
│ ├── commands/
│ └── skills/
├── instances/ # プロファイル固有のデータ
│ └── work/
│ ├── agents@ → shared/agents/
│ ├── commands@ → shared/commands/
│ ├── skills@ → shared/skills/
│ ├── settings.json # APIキー、認証情報
│ ├── sessions/ # 会話履歴
│ └── ...
```
| タイプ | ファイル |
|:-----|:------|
| **共有** | `commands/`, `skills/`, `agents/` |
| **プロファイル固有** | `settings.json`, `sessions/`, `todolists/`, `logs/` |
> [!NOTE]
> **Windows**: シンボリックリンクが利用できない場合はディレクトリをコピー(本物のシンボリックリンクには開発者モードを有効にしてください)
<br>
## 使用例
### 基本的な切り替え
```bash
ccs # Claudeサブスクリプション(デフォルト)
ccs glm # GLM(コスト最適化)
ccs kimi # Kimi(思考サポート付き)
```
### マルチアカウント設定
```bash
# アカウントを作成
ccs auth create work
ccs auth create personal
```
**別々のターミナルで同時に実行:**
```bash
# Terminal 1 - 業務用
ccs work "機能を実装"
# Terminal 2 - 個人用(同時)
ccs personal "コードレビュー"
```
### ヘルプとバージョン
```bash
ccs --version # バージョンを表示
ccs --help # すべてのコマンドとオプションを表示
```
<br>
## GLM with Thinking (GLMT)
> [!CAUTION]
> ### 本番環境未対応 - 実験的機能
>
> **GLMTは実験的で広範なデバッグが必要です**:
> - ストリーミングとツールサポートはまだ開発中
> - 予期せぬエラー、タイムアウト、不完全な応答が発生する可能性
> - 頻繁なデバッグと手動介入が必要
> - **重要なワークフローや本番使用には推奨されません**
>
> **GLM Thinkingの代替案**: **CCR hustle**と**BedollaのTransformer**[ZaiTransformer](https://github.com/Bedolla/ZaiTransformer/))を通じて、より安定した実装を検討してください。
> [!IMPORTANT]
> GLMTはnpmインストールが必要です(`npm install -g @kaitranntt/ccs`)。ネイティブシェルバージョンでは利用できません(Node.js HTTPサーバーが必要)。
<br>
> [!NOTE]
> ### 謝辞:GLMTを可能にした基盤
>
> **CCSのGLMT実装は、[@Bedolla](https://github.com/Bedolla)の画期的な仕事に存在を負っています**。彼は[Claude Code Router (CCR)](https://github.com/musistudio/claude-code-router)とZ.AIの推論能力をブリッジする[最初の統合](https://github.com/Bedolla/ZaiTransformer/)を作成しました。
>
> ZaiTransformer以前、誰もZ.AIの思考モードとClaude Codeのワークフローを正常に統合できませんでした。Bedollaの仕事は単なる有用なものではなく、**基盤的**でした。彼のリクエスト/レスポンストランスフォーメーションアーキテクチャ、思考モード制御メカニズム、埋め込みプロキシ設計の実装は、GLMTの設計に直接インスピレーションを与え、可能にしました。
>
> **ZaiTransformerの先駆的な仕事なしでは、GLMTは現在の形では存在しませんでした。** GLMTの思考能力から利益を得る場合は、Claude Codeエコシステムでの先駆的な仕事をサポートするために[ZaiTransformer](https://github.com/Bedolla/ZaiTransformer/)にスターを付けてください。
<br>
<details>
<summary><h3>GLM vs GLMT 比較</h3></summary>
<br>
<div align="center">
| 機能 | GLM (`ccs glm`) | GLMT (`ccs glmt`) |
|:--------|:----------------|:------------------|
| **エンドポイント** | Anthropic互換 | OpenAI互換 |
| **思考** | なし | 実験的(reasoning_content |
| **ツールサポート** | 基本的 | **不安定(v3.5+** |
| **MCPツール** | 制限あり | **バグあり(v3.5+** |
| **ストリーミング** | 安定 | **実験的(v3.4+** |
| **TTFB** | <500ms | <500ms(時々)、2-10秒+(頻繁) |
| **使用例** | 信頼性の高い作業 | **デバッグ実験のみ** |
</div>
</details>
<br>
<details>
<summary><h3>ツールサポート(v3.5 - 実験的</h3></summary>
<br>
**GLMTはMCPツールと関数呼び出しを試行:**
- **双方向トランスフォーメーション**: Anthropicツール ↔ OpenAI形式(不安定)
- **MCP統合**: MCPツールが時々実行(多くの場合XMLガベージを出力)
- **ストリーミングツール呼び出し**: リアルタイムツール呼び出し(クラッシュしない場合)
- **後方互換**: 既存の思考サポートを破壊する可能性
- **設定が必要**: 頻繁な手動デバッグが必要
</details>
<details>
<summary><h3>ストリーミングサポート(v3.4) - しばしば失敗</h3></summary>
<br>
**GLMTは増分推論コンテンツ配信でリアルタイムストリーミングを試行:**
- **デフォルト**: ストリーミング有効(動作時TTFB <500ms
- **自動フォールバック**: エラーにより頻繁にバッファモードに切り替え
- **思考パラメータ**: Claude CLI `thinking`パラメータが時々動作
- `thinking.type``budget_tokens`を無視する場合
- 優先順位: CLIパラメータ > メッセージタグ > デフォルト(破壊されていない場合)
**ステータス**: Z.AI(テスト済み、ツール呼び出しが頻繁に破壊、継続的なデバッグが必要)
</details>
<details>
<summary><h3>動作原理(動作時)</h3></summary>
<br>
1. CCSがlocalhostに埋め込みHTTPプロキシを生成(クラッシュしない場合)
2. プロキシがAnthropic形式 → OpenAI形式への変換を試行(多くの場合失敗)
3. Anthropicツール → OpenAI関数呼び出し形式への変換を試行(バグあり)
4. 推論パラメータとツールを付けてZ.AIに転送(タイムアウトしない場合)
5. `reasoning_content` → 思考ブロックへの変換を試行(部分的または破壊)
6. OpenAI `tool_calls` → Anthropic `tool_use` ブロックへの変換を試行(XMLガベージが一般的)
7. 思考とツール呼び出しが時々Claude Code UIに表示(破壊されていない場合)
</details>
<details>
<summary><h3>制御タグとキーワード</h3></summary>
<br>
**制御タグ**:
- `<Thinking:On|Off>` - 推論ブロックの有効/無効(デフォルト: On)
- `<Effort:Low|Medium|High>` - 推論深度の制御(非推奨 - Z.AIはバイナリ思考のみサポート)
**思考キーワード**(不安定なアクティベーション):
- `think` - 時々推論を有効化(低労力)
- `think hard` - 時々推論を有効化(中労力)
- `think harder` - 時々推論を有効化(高労力)
- `ultrathink` - 最大推論深度を試行(多くの場合破壊)
</details>
<details>
<summary><h3>環境変数</h3></summary>
<br>
**GLMT機能**(すべて実験的):
- 強制的な英語出力強制(時々動作)
- ランダムな思考モードアクティベーション(予測不可能)
- 頻繁なバッファモードへのフォールバック付きストリーミング試行
**一般**:
- `CCS_DEBUG_LOG=1` - デバッグファイルロギングを有効化
- `CCS_CLAUDE_PATH=/path/to/claude` - カスタムClaude CLIパス
</details>
<details>
<summary><h3>APIキー設定</h3></summary>
<br>
```bash
# GLMT設定を編集
nano ~/.ccs/glmt.settings.json
```
Z.AI APIキーを設定(コーディングプランが必要):
```json
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your-z-ai-api-key"
}
}
```
</details>
<details>
<summary><h3>セキュリティ制限(DoS保護)</h3></summary>
<br>
**v3.4 保護制限**:
| 制限 | 値 | 目的 |
|:------|:------|:--------|
| **SSEバッファ** | イベントあたり最大1MB | バッファオーバーフローを防止 |
| **コンテンツバッファ** | ブロックあたり最大10MB | 思考/テキストブロックを制限 |
| **コンテンツブロック** | メッセージあたり最大100 | DoS攻撃を防止 |
| **リクエストタイムアウト** | 120秒 | ストリーミングとバッファの両方 |
</details>
<details>
<summary><h3>デバッグ</h3></summary>
<br>
**詳細ロギングを有効化**:
```bash
ccs glmt --verbose "your prompt"
```
**デバッグファイルロギングを有効化**:
```bash
export CCS_DEBUG_LOG=1
ccs glmt --verbose "your prompt"
# ログ: ~/.ccs/logs/
```
**GLMTデバッグ**:
```bash
# 詳細ロギングでストリーミングステータスと推論詳細を表示
ccs glmt --verbose "test"
```
**推論コンテンツを確認**:
```bash
cat ~/.ccs/logs/*response-openai.json | jq '.choices[0].message.reasoning_content'
```
**トラブルシューティング**:
- **存在しない場合**: Z.AI APIの問題(キー、アカウントステータスを確認)
- **存在する場合**: トランスフォーメーションの問題(`response-anthropic.json`を確認)
</details>
<br>
## アンインストール
<details>
<summary><h3>パッケージマネージャー</h3></summary>
<br>
```bash
# npm
npm uninstall -g @kaitranntt/ccs
# yarn
yarn global remove @kaitranntt/ccs
# pnpm
pnpm remove -g @kaitranntt/ccs
# bun
bun remove -g @kaitranntt/ccs
```
</details>
<details>
<summary><h3>公式アンインストーラー</h3></summary>
<br>
```bash
# macOS / Linux
curl -fsSL ccs.kaitran.ca/uninstall | bash
# Windows PowerShell
irm ccs.kaitran.ca/uninstall | iex
```
</details>
<br>
## 🎯 哲学
- **YAGNI**: 「念のため」の機能は追加しない
- **KISS**: シンプルなbash、複雑さなし
- **DRY**: 単一の情報源(設定)
## 📖 ドキュメント
**[docs/](./docs/)の完全なドキュメント**:
- [インストールガイド](./docs/en/installation.md)
- [設定](./docs/en/configuration.md)
- [使用例](./docs/en/usage.md)
- [システムアーキテクチャ](./docs/system-architecture.md)
- [GLMT制御メカニズム](./docs/glmt-controls.md)
- [トラブルシューティング](./docs/en/troubleshooting.md)
- [貢献](./CONTRIBUTING.md)
## 🤝 貢献
貢献を歓迎します!詳細については[貢献ガイド](./CONTRIBUTING.md)をご覧ください。
## Star History
<div align="center">
<img src="https://api.star-history.com/svg?repos=kaitranntt/ccs&type=timeline&logscale&legend=top-left" alt="Star History Chart" width="800">
</div>
## ライセンス
CCSは[MITライセンス](LICENSE)の下でライセンスされています。
<div align="center">
**レート制限に頻繁に遭遇する開発者のために ❤️ を込めて作成**
[⭐ このリポジトリにスター](https://github.com/kaitranntt/ccs) | [🐛 問題を報告](https://github.com/kaitranntt/ccs/issues) | [📖 ドキュメントを読む](./docs/en/)
</div>
+649
View File
@@ -0,0 +1,649 @@
<div align="center">
# CCS - Claude Code Switch
![CCS Logo](../../docs/assets/ccs-logo-medium.png)
### Một lệnh, không downtime, nhiều tài khoản
**Chuyển đổi giữa nhiều tài khoản Claude, GLM, và Kimi ngay lập tức.**
Ngừng hitting rate limits. Làm việc liên tục.
<br>
[![License](https://img.shields.io/badge/license-MIT-C15F3C?style=for-the-badge)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey?style=for-the-badge)]()
[![npm](https://img.shields.io/npm/v/@kaitranntt/ccs?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@kaitranntt/ccs)
[![PoweredBy](https://img.shields.io/badge/PoweredBy-ClaudeKit-C15F3C?style=for-the-badge)](https://claudekit.cc?ref=HMNKXOHN)
**Languages**: [English](../../README.md) · [Tiếng Việt](README.md) · [日本語](../ja/README.md)
</div>
<br>
## Bắt Đầu Nhanh
### Cài Đặt
**npm Package (Được khuyến nghị)**
**macOS / Linux / Windows**
```bash
npm install -g @kaitranntt/ccs
```
**Tất cả các trình quản lý package chính đều được hỗ trợ:**
```bash
# yarn
yarn global add @kaitranntt/ccs
# pnpm (ít hơn 70% dung lượng đĩa)
pnpm add -g @kaitranntt/ccs
# bun (nhanh hơn 30x)
bun add -g @kaitranntt/ccs
```
<details>
<summary><strong>Phương án thay thế: Cài Đặt Trực Tiếp (Truyền thống)</strong></summary>
<br>
**macOS / Linux**
```bash
curl -fsSL ccs.kaitran.ca/install | bash
```
**Windows PowerShell**
```powershell
irm ccs.kaitran.ca/install | iex
```
**Lưu ý**: Cài truyền thống bỏ qua Node.js routing để khởi động nhanh hơn, nhưng ưu tiên npm cho dễ dàng tự động hóa triển khai.
</details>
<br>
### Cấu Hình (Tự Tạo)
**CCS tự động tạo cấu hình trong quá trình cài đặt** (thông qua script postinstall của npm).
**~/.ccs/config.json**:
```json
{
"profiles": {
"glm": "~/.ccs/glm.settings.json",
"glmt": "~/.ccs/glmt.settings.json",
"kimi": "~/.ccs/kimi.settings.json",
"default": "~/.claude/settings.json"
}
}
```
<details>
<summary><h3>Custom Claude CLI Path</h3></summary>
<br>
Nếu Claude CLI được cài đặt ở vị trí không chuẩn (ổ D, thư mục tùy chỉnh), đặt `CCS_CLAUDE_PATH`:
```bash
# Unix/Linux/macOS
export CCS_CLAUDE_PATH="/path/to/claude"
# Windows PowerShell
$env:CCS_CLAUDE_PATH = "D:\Tools\Claude\claude.exe"
```
**Xem thêm**: [Hướng dẫn Khắc phục Sự cố](./docs/en/troubleshooting.md#claude-cli-in-non-standard-location) để biết chi tiết cài đặt.
</details>
<details>
<summary><h3>Windows Symlink Support (Developer Mode)</h3></summary>
<br>
**Người dùng Windows**: Bật Chế độ Nhà phát triển để có symlink thực sự (hiệu suất tốt hơn, đồng bộ hóa tức thì):
1. Mở **Settings****Privacy & Security****For developers**
2. Bật **Developer Mode**
3. Cài đặt lại CCS: `npm install -g @kaitranntt/ccs`
**Cảnh báo**: Nếu không có Chế độ Nhà phát triển, CCS tự động chuyển sang sao chép thư mục (hoạt động nhưng không đồng bộ tức thì trên các profile).
</details>
<br>
### Lần Chuyển Đổi Đầu Tiên
> [!IMPORTANT]
> **Trước khi dùng các mô hình thay thế, cập nhật API keys trong file settings:**
>
> - **GLM**: Chỉnh sửa `~/.ccs/glm.settings.json` và thêm Z.AI Coding Plan API Key của bạn
> - **GLMT**: Chỉnh sửa `~/.ccs/glmt.settings.json` và thêm Z.AI Coding Plan API Key của bạn
> - **Kimi**: Chỉnh sửa `~/.ccs/kimi.settings.json` và thêm Kimi API key của bạn
<br>
**Parallel Workflow: Planning + Execution**
```bash
# Terminal 1 - Planning (Claude Sonnet)
ccs "Plan a REST API with authentication and rate limiting"
# Terminal 2 - Execution (GLM, cost-optimized)
ccs glm "Implement the user authentication endpoints from the plan"
```
<details>
<summary><strong>Thinking Models (Kimi & GLMT)</strong></summary>
<br>
```bash
# Kimi - Stable thinking support
ccs kimi "Design a caching strategy with trade-off analysis"
# GLMT - Experimental (see full disclaimer below)
ccs glmt "Debug complex algorithm with reasoning steps"
```
**Lưu ý:** GLMT là thử nghiệm và không ổn định. Xem phần [GLM with Thinking (GLMT)](#glm-with-thinking-glmt) dưới đây để biết chi tiết.
</details>
<br>
## The Daily Developer Pain Point
<div align="center">
### **DỪNG việc chuyển đổi. BẮT ĐẦU điều phối.**
**Giới hạn phiên không nên phá hỏng trạng thái dòng chảy của bạn.**
</div>
Bạn đang sâu trong triển khai. Ngữ cảnh đã tải. Giải pháp đang kết tinh.<br>
Sau đó: 🔴 _"Bạn đã đạt đến giới hạn sử dụng."_
**Động lực mất đi. Ngữ cảnh mất. Năng suất sụp đổ.**
## **Giải pháp: Quy trình công việc song song**
<details>
<summary><strong>❌ CÁCH CŨ:</strong> Chuyển đổi khi bạn đạt đến giới hạn (Phản ứng)</summary>
### Quy trình làm việc hiện tại của bạn:
- **2pm:** Xây dựng tính năng, trong vùng
- **3pm:** 🔴 Đạt giới hạn sử dụng
- **3:05pm:** Dừng công việc, chỉnh sửa `~/.claude/settings.json`
- **3:15pm:** Chuyển tài khoản, mất ngữ cảnh
- **3:30pm:** Cố gắng quay lại trạng thái dòng chảy
- **4pm:** Cuối cùng cũng năng suất trở lại
- **Kết quả:** Mất 1 giờ, động lực bị phá hủy, sự thất vọng tăng lên
</details>
<details open>
<summary><strong>✨ CÁCH MỚI:</strong> Chạy song song ngay từ đầu (Chủ động) - <strong>ĐƯỢC KHUYÊN NGHỊ</strong></summary>
### Quy trình làm việc mới của bạn:
- **2pm:** **Terminal 1:** `ccs "Lập kế hoạch kiến trúc API"` → Tư duy chiến lược (Claude Pro)
- **2pm:** **Terminal 2:** `ccs glm "Triển khai các điểm cuối API"` → Thực thi mã (GLM)
- **3pm:** Vẫn đang giao hàng, không có gián đoạn
- **4pm:** Đạt trạng thái dòng chảy, năng suất tăng vọt
- **5pm:** Tính năng đã giao hàng, ngữ cảnh được duy trì
- **Kết quả:** Không có thời gian chết, năng suất liên tục, ít thất vọng hơn
### 💰 **Giá trị đề xuất:**
- **Thiết lập:** Claude Pro hiện tại của bạn + GLM Lite (add-on hiệu quả về chi phí)
- **Giá trị:** Tiết kiệm 1 giờ/ngày × 20 ngày làm việc = 20 giờ/tháng được phục hồi
- **ROI:** Thời gian phát triển của bạn có giá trị hơn chi phí thiết lập
- **Thực tế:** Giao hàng nhanh hơn chi phí vận hành
</details>
## Chọn con đường của bạn
<details>
<summary><strong>Tập trung vào ngân sách:</strong> Chỉ GLM</summary>
- **Tốt nhất cho:** Phát triển tiết kiệm chi phí, tạo mã cơ bản
- **Sử dụng:** Chỉ sử dụng `ccs glm` trực tiếp để được trợ giúp AI hiệu quả về chi phí
- **Thực tế:** Không có quyền truy cập Claude, nhưng có khả năng cho nhiều nhiệm vụ mã hóa
- **Thiết lập:** Chỉ cần API key GLM, rất phải chăng
</details>
<details open>
<summary><strong>✨ Được khuyên nghị cho phát triển hàng ngày:</strong> 1 Claude Pro + 1 GLM Lite</summary>
- **Tốt nhất cho:** Giao hàng mã hàng ngày, công việc phát triển nghiêm túc
- **Sử dụng:** `ccs` để lập kế hoạch + `ccs glm` để thực thi (quy trình công việc song song)
- **Thực tế:** Cân bằng hoàn hảo giữa khả năng và chi phí cho hầu hết các nhà phát triển
- **Giá trị:** Không bao giờ đạt đến giới hạn phiên, năng suất liên tục
</details>
<details>
<summary><strong>Power User:</strong> Nhiều Claude Pro + GLM Pro</summary>
- **Tốt nhất cho:** Nhiều công việc, dự án đồng thời, solo dev
- **Mở khóa:** Không bao giờ cạn kiệt giới hạn phiên hoặc hàng tuần
- **Quy trình làm việc:** 3+ terminal chạy các nhiệm vụ chuyên biệt đồng thời
</details>
<details>
<summary><strong>Tập trung vào quyền riêng tư:</strong> Cách ly Công việc/Cá nhân</summary>
- **Khi cần:** Cách ly nghiêm ngặt ngữ cảnh AI công việc và cá nhân
- **Thiết lập:** `ccs auth create work` + `ccs auth create personal`
- **Lưu ý:** Tính năng nâng cao - hầu hết người dùng không cần điều này
</details>
---
## Why CCS Instead of Manual Switching?
<div align="center">
**CCS không phải về "chuyển đổi khi bạn đạt đến giới hạn lúc 3pm."**
## **Nó về việc chạy song song ngay từ đầu.**
</div>
### Sự khác biệt cốt lõi
| **Chuyển đổi thủ công** | **Điều phối CCS** |
|:---|:---|
| 🔴 Đạt giới hạn → Dừng công việc → Chỉnh sửa tệp cấu hình → Khởi động lại | ✅ Nhiều terminal chạy các mô hình khác nhau ngay từ đầu |
| 😰 Mất ngữ cảnh và gián đoạn trạng thái dòng chảy | 😌 Năng suất liên tục với ngữ cảnh được bảo toàn |
| 📝 Xử lý nhiệm vụ tuần tự | ⚡ Quy trình công việc song song (lập kế hoạch + thực thi đồng thời) |
| 🛠️ Giải quyết vấn đề phản ứng khi bị chặn | 🎯 Thiết kế quy trình công việc chủ động ngăn chặn chặn |
### CCS mang lại cho bạn
- **Không chuyển đổi ngữ cảnh:** Duy trì trạng thái dòng chảy của bạn mà không bị gián đoạn
- **Năng suất song song:** Lập kế hoạch chiến lược trong một terminal, thực thi mã trong terminal khác
- **Quản lý tài khoản tức thì:** Một lệnh chuyển đổi, không cần chỉnh sửa tệp cấu hình
- **Cách ly công việc-cuộc sống:** Cách ly ngữ cảnh mà không cần đăng xuất
- **Tính nhất quán đa nền tảng:** Trải nghiệm mượt mà tương tự trên macOS, Linux, Windows
<br>
## Architecture
### Profile Types
**Settings-based**: GLM, GLMT, Kimi, default
- Uses `--settings` flag pointing to config files
- GLMT: Embedded proxy for thinking mode support
**Account-based**: work, personal, team
- Uses `CLAUDE_CONFIG_DIR` for isolated instances
- Create with `ccs auth create <profile>`
### Shared Data (v3.1)
Commands and skills symlinked from `~/.ccs/shared/` - **no duplication across profiles**.
```plaintext
~/.ccs/
├── shared/ # Shared across all profiles
│ ├── agents/
│ ├── commands/
│ └── skills/
├── instances/ # Profile-specific data
│ └── work/
│ ├── agents@ → shared/agents/
│ ├── commands@ → shared/commands/
│ ├── skills@ → shared/skills/
│ ├── settings.json # API keys, credentials
│ ├── sessions/ # Conversation history
│ └── ...
```
| Type | Files |
|:-----|:------|
| **Shared** | `commands/`, `skills/`, `agents/` |
| **Profile-specific** | `settings.json`, `sessions/`, `todolists/`, `logs/` |
> [!NOTE]
> **Windows**: Copies directories if symlinks unavailable (enable Developer Mode for true symlinks)
<br>
## Usage Examples
### Basic Switching
```bash
ccs # Claude subscription (default)
ccs glm # GLM (cost-optimized)
ccs kimi # Kimi (with thinking support)
```
### Multi-Account Setup
```bash
# Create accounts
ccs auth create work
ccs auth create personal
```
**Run concurrently in separate terminals:**
```bash
# Terminal 1 - Work
ccs work "implement feature"
# Terminal 2 - Personal (concurrent)
ccs personal "review code"
```
### Help & Version
```bash
ccs --version # Show version
ccs --help # Show all commands and options
```
<br>
## GLM with Thinking (GLMT)
> [!CAUTION]
> ### NOT PRODUCTION READY - EXPERIMENTAL FEATURE
>
> **GLMT is experimental and requires extensive debugging**:
> - Streaming and tool support still under active development
> - May experience unexpected errors, timeouts, or incomplete responses
> - Requires frequent debugging and manual intervention
> - **Not recommended for critical workflows or production use**
>
> **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.
> [!IMPORTANT]
> GLMT requires npm installation (`npm install -g @kaitranntt/ccs`). Not available in native shell versions (requires Node.js HTTP server).
<br>
> [!NOTE]
> ### Acknowledgments: The Foundation That Made GLMT Possible
>
> **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.
>
> 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 request/response transformation architecture, thinking mode control mechanisms, and embedded proxy design directly inspired and enabled GLMT's design.
>
> **Without ZaiTransformer's pioneering work, GLMT wouldn't exist in its current form.** If you benefit from GLMT's thinking capabilities, please consider starring [ZaiTransformer](https://github.com/Bedolla/ZaiTransformer/) to support pioneering work in the Claude Code ecosystem.
<br>
<details>
<summary><h3>GLM vs GLMT Comparison</h3></summary>
<br>
<div align="center">
| Feature | GLM (`ccs glm`) | GLMT (`ccs glmt`) |
|:--------|:----------------|:------------------|
| **Endpoint** | Anthropic-compatible | OpenAI-compatible |
| **Thinking** | No | Experimental (`reasoning_content`) |
| **Tool Support** | Basic | **Unstable (v3.5+)** |
| **MCP Tools** | Limited | **Buggy (v3.5+)** |
| **Streaming** | Stable | **Experimental (v3.4+)** |
| **TTFB** | <500ms | <500ms (sometimes), 2-10s+ (often) |
| **Use Case** | Reliable work | **Debugging experiments only** |
</div>
</details>
<br>
<details>
<summary><h3>Tool Support (v3.5) - EXPERIMENTAL</h3></summary>
<br>
**GLMT attempts MCP tools and function calling:**
- **Bidirectional Transformation**: Anthropic tools ↔ OpenAI format (unstable)
- **MCP Integration**: MCP tools sometimes execute (often output XML garbage)
- **Streaming Tool Calls**: Real-time tool calls (when not crashing)
- **Backward Compatible**: May break existing thinking support
- **Configuration Required**: Frequent manual debugging needed
</details>
<details>
<summary><h3>Streaming Support (v3.4) - OFTEN FAILS</h3></summary>
<br>
**GLMT attempts real-time streaming** with incremental reasoning content delivery:
- **Default**: Streaming enabled (TTFB <500ms when it works)
- **Auto-fallback**: Frequently switches to buffered mode due to errors
- **Thinking parameter**: Claude CLI `thinking` parameter sometimes works
- May ignore `thinking.type` and `budget_tokens`
- Precedence: CLI parameter > message tags > default (when not broken)
**Status**: Z.AI (tested, tool calls frequently break, requires constant debugging)
</details>
<details>
<summary><h3>How It Works (When It Works)</h3></summary>
<br>
1. CCS spawns embedded HTTP proxy on localhost (if not crashing)
2. Proxy attempts to convert Anthropic format → OpenAI format (often fails)
3. Tries to transform Anthropic tools → OpenAI function calling format (buggy)
4. Forwards to Z.AI with reasoning parameters and tools (when not timing out)
5. Attempts to convert `reasoning_content` → thinking blocks (partial or broken)
6. Attempts to convert OpenAI `tool_calls` → Anthropic `tool_use` blocks (XML garbage common)
7. Thinking and tool calls sometimes appear in Claude Code UI (when not broken)
</details>
<details>
<summary><h3>Control Tags & Keywords</h3></summary>
<br>
**Control Tags**:
- `<Thinking:On|Off>` - Enable/disable reasoning blocks (default: On)
- `<Effort:Low|Medium|High>` - Control reasoning depth (deprecated - Z.AI only supports binary thinking)
**Thinking Keywords** (inconsistent activation):
- `think` - Sometimes enables reasoning (low effort)
- `think hard` - Sometimes enables reasoning (medium effort)
- `think harder` - Sometimes enables reasoning (high effort)
- `ultrathink` - Attempts maximum reasoning depth (often breaks)
</details>
<details>
<summary><h3>Environment Variables</h3></summary>
<br>
**GLMT features** (all experimental):
- Forced English output enforcement (sometimes works)
- Random thinking mode activation (unpredictable)
- Attempted streaming with frequent fallback to buffered mode
**General**:
- `CCS_DEBUG_LOG=1` - Enable debug file logging
- `CCS_CLAUDE_PATH=/path/to/claude` - Custom Claude CLI path
</details>
<details>
<summary><h3>API Key Setup</h3></summary>
<br>
```bash
# Edit GLMT settings
nano ~/.ccs/glmt.settings.json
```
Set Z.AI API key (requires coding plan):
```json
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your-z-ai-api-key"
}
}
```
</details>
<details>
<summary><h3>Security Limits (DoS Protection)</h3></summary>
<br>
**v3.4 Protection Limits**:
| Limit | Value | Purpose |
|:------|:------|:--------|
| **SSE buffer** | 1MB max per event | Prevent buffer overflow |
| **Content buffer** | 10MB max per block | Limit thinking/text blocks |
| **Content blocks** | 100 max per message | Prevent DoS attacks |
| **Request timeout** | 120s | Both streaming and buffered |
</details>
<details>
<summary><h3>Debugging</h3></summary>
<br>
**Enable verbose logging**:
```bash
ccs glmt --verbose "your prompt"
```
**Enable debug file logging**:
```bash
export CCS_DEBUG_LOG=1
ccs glmt --verbose "your prompt"
# Logs: ~/.ccs/logs/
```
**GLMT debugging**:
```bash
# Verbose logging shows streaming status and reasoning details
ccs glmt --verbose "test"
```
**Check reasoning content**:
```bash
cat ~/.ccs/logs/*response-openai.json | jq '.choices[0].message.reasoning_content'
```
**Troubleshooting**:
- **If absent**: Z.AI API issue (verify key, account status)
- **If present**: Transformation issue (check `response-anthropic.json`)
</details>
<br>
## Uninstall
<details>
<summary><h3>Package Managers</h3></summary>
<br>
```bash
# npm
npm uninstall -g @kaitranntt/ccs
# yarn
yarn global remove @kaitranntt/ccs
# pnpm
pnpm remove -g @kaitranntt/ccs
# bun
bun remove -g @kaitranntt/ccs
```
</details>
<details>
<summary><h3>Official Uninstaller</h3></summary>
<br>
```bash
# macOS / Linux
curl -fsSL ccs.kaitran.ca/uninstall | bash
# Windows PowerShell
irm ccs.kaitran.ca/uninstall | iex
```
</details>
<br>
## 🎯 Philosophy
- **YAGNI**: No features "just in case"
- **KISS**: Simple bash, no complexity
- **DRY**: One source of truth (config)
## 📖 Documentation
**Complete documentation in [docs/](./docs/)**:
- [Installation Guide](./docs/en/installation.md)
- [Configuration](./docs/en/configuration.md)
- [Usage Examples](./docs/en/usage.md)
- [System Architecture](./docs/system-architecture.md)
- [GLMT Control Mechanisms](./docs/glmt-controls.md)
- [Troubleshooting](./docs/en/troubleshooting.md)
- [Contributing](./CONTRIBUTING.md)
## 🤝 Contributing
We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details.
## Star History
<div align="center">
<img src="https://api.star-history.com/svg?repos=kaitranntt/ccs&type=timeline&logscale&legend=top-left" alt="Star History Chart" width="800">
</div>
## License
CCS is licensed under the [MIT License](LICENSE).
<div align="center">
**Made with ❤️ for developers who hit rate limits too often**
[⭐ Star this repo](https://github.com/kaitranntt/ccs) | [🐛 Report issues](https://github.com/kaitranntt/ccs/issues) | [📖 Read docs](./docs/en/)
</div>