mirror of
https://github.com/tiennm99/ccs.git
synced 2026-09-10 06:20:13 +00:00
docs(vi): add Vietnamese translations for CCS documentation
- Add Vietnamese README (README.vi.md) with complete setup guide - Add Vietnamese documentation in docs/vi/ directory - Include configuration and usage guides translated to Vietnamese - Maintain consistency with English documentation structure
This commit is contained in:
+23
-593
@@ -16,8 +16,8 @@ Chuyển đổi thủ công rất mất thời gian và dễ sai.
|
||||
|
||||
**Giải pháp**:
|
||||
```bash
|
||||
ccs son # Refactoring phức tạp? Dùng Claude Sonnet 4.5
|
||||
ccs glm # Fix bug đơn giản? Dùng GLM 4.6
|
||||
ccs # Dùng Claude subscription (mặc định)
|
||||
ccs glm # Chuyển sang GLM fallback
|
||||
# Hết rate limit? Chuyển ngay:
|
||||
ccs glm # Tiếp tục làm việc với GLM
|
||||
```
|
||||
@@ -26,7 +26,7 @@ Một lệnh. Không downtime. Không phải sửa file. Đúng model, đúng vi
|
||||
|
||||
## Bắt Đầu Nhanh
|
||||
|
||||
**Cài đặt**:
|
||||
### Cài đặt:
|
||||
|
||||
**macOS / Linux**:
|
||||
```bash
|
||||
@@ -35,621 +35,51 @@ curl -fsSL ccs.kaitran.ca/install | bash
|
||||
|
||||
**Windows PowerShell**:
|
||||
```powershell
|
||||
irm ccs.kaitran.ca/install.ps1 | iex
|
||||
irm ccs.kaitran.ca/install | iex
|
||||
```
|
||||
|
||||
**Cấu hình**:
|
||||
```bash
|
||||
# Sửa theo profile của bạn
|
||||
cat > ~/.ccs/config.json << 'EOF'
|
||||
**~/.ccs/config.json** (tự động tạo khi cài đặt):
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"glm": "~/.ccs/glm.settings.json",
|
||||
"son": "~/.ccs/sonnet.settings.json",
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
```
|
||||
|
||||
**Sử dụng**:
|
||||
### Sử dụng:
|
||||
```bash
|
||||
ccs # Dùng profile mặc định
|
||||
ccs glm # Dùng GLM profile
|
||||
ccs son # Dùng Sonnet profile
|
||||
|
||||
# Lệnh tiện ích
|
||||
ccs # Dùng Claude subscription (mặc định)
|
||||
ccs glm # Dùng GLM fallback
|
||||
ccs --version # Hiển thị phiên bản CCS
|
||||
ccs --help # Hiển thị trợ giúp Claude CLI
|
||||
```
|
||||
|
||||
## Tại Sao Nên Dùng CCS?
|
||||
## Triết Lý
|
||||
|
||||
### 🎯 Tối Ưu Theo Từng Tác Vụ
|
||||
|
||||
**Không có CCS**: Dùng Claude cho mọi thứ → Tốn chi phí, nhanh hết rate limit
|
||||
|
||||
**Có CCS**: Chuyển model theo độ phức tạp, tối đa hóa chất lượng mà vẫn quản lý được chi phí.
|
||||
|
||||
```bash
|
||||
ccs son # Planning kiến trúc tính năng mới
|
||||
# Đã có plan? Code với GLM:
|
||||
ccs glm # Viết code đơn giản
|
||||
```
|
||||
|
||||
### ⚡ Xử Lý Rate Limit
|
||||
|
||||
Nếu bạn có cả Claude subscription và GLM Coding Plan, bạn biết cái khổ:
|
||||
- Claude hết rate limit giữa chừng
|
||||
- Phải mở `~/.claude/settings.json`
|
||||
- Copy-paste config từ file backup
|
||||
- Lặp lại 10 lần mỗi ngày
|
||||
|
||||
**CCS giải quyết**:
|
||||
- Một lệnh để chuyển: `ccs glm` hoặc `ccs son`
|
||||
- Lưu cả hai config dạng profiles
|
||||
- Chuyển trong <1 giây
|
||||
- Không phải sửa file, không copy-paste, không sai sót
|
||||
|
||||
### 🔧 Tính Năng
|
||||
|
||||
- Zero config mặc định: installer tự tạo profiles
|
||||
- Chuyển profile bằng một lệnh: `ccs glm`, `ccs son`
|
||||
- Hỗ trợ profile tùy chỉnh không giới hạn
|
||||
- Truyền toàn bộ args của Claude CLI
|
||||
- Setup thông minh: tự nhận diện provider hiện tại
|
||||
- Tự động tạo configs khi cài đặt
|
||||
- Không proxy, không magic—chỉ bash + jq
|
||||
|
||||
## Cài Đặt
|
||||
|
||||
### Một Dòng Lệnh (Khuyến Nghị)
|
||||
|
||||
**macOS / Linux**:
|
||||
```bash
|
||||
# URL ngắn (qua CloudFlare)
|
||||
curl -fsSL ccs.kaitran.ca/install | bash
|
||||
|
||||
# Hoặc trực tiếp từ GitHub
|
||||
curl -fsSL https://raw.githubusercontent.com/kaitranntt/ccs/main/installers/install.sh | bash
|
||||
```
|
||||
|
||||
**Windows PowerShell**:
|
||||
```powershell
|
||||
# URL ngắn (qua CloudFlare)
|
||||
irm ccs.kaitran.ca/install.ps1 | iex
|
||||
|
||||
# Hoặc trực tiếp từ GitHub
|
||||
irm https://raw.githubusercontent.com/kaitranntt/ccs/main/installers/install.ps1 | iex
|
||||
```
|
||||
|
||||
**Lưu ý**:
|
||||
- Installer Unix hỗ trợ cả chạy trực tiếp (`./install.sh`) và piped installation (`curl | bash`)
|
||||
- Installer Windows yêu cầu PowerShell 5.1+ (có sẵn trên Windows 10+)
|
||||
|
||||
### Git Clone
|
||||
|
||||
**macOS / Linux**:
|
||||
```bash
|
||||
git clone https://github.com/kaitranntt/ccs.git
|
||||
cd ccs
|
||||
./installers/install.sh
|
||||
```
|
||||
|
||||
**Windows PowerShell**:
|
||||
```powershell
|
||||
git clone https://github.com/kaitranntt/ccs.git
|
||||
cd ccs
|
||||
.\installers\install.ps1
|
||||
```
|
||||
|
||||
**Lưu ý**: Hoạt động với git worktrees và submodules - installer phát hiện cả `.git` directory và `.git` file.
|
||||
|
||||
### Thủ Công
|
||||
|
||||
**macOS / Linux**:
|
||||
```bash
|
||||
# Tải script
|
||||
curl -fsSL https://raw.githubusercontent.com/kaitranntt/ccs/main/ccs -o ~/.local/bin/ccs
|
||||
chmod +x ~/.local/bin/ccs
|
||||
|
||||
# Đảm bảo ~/.local/bin trong PATH
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
```
|
||||
|
||||
**Windows PowerShell**:
|
||||
```powershell
|
||||
# Tạo thư mục
|
||||
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.ccs"
|
||||
|
||||
# Tải script
|
||||
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/kaitranntt/ccs/main/ccs.ps1" -OutFile "$env:USERPROFILE\.ccs\ccs.ps1"
|
||||
|
||||
# Thêm vào PATH (khởi động lại terminal sau đó)
|
||||
$Path = [Environment]::GetEnvironmentVariable("Path", "User")
|
||||
[Environment]::SetEnvironmentVariable("Path", "$Path;$env:USERPROFILE\.ccs", "User")
|
||||
```
|
||||
|
||||
### Nâng Cấp
|
||||
|
||||
**macOS / Linux**:
|
||||
```bash
|
||||
# Từ git clone
|
||||
cd ccs && git pull && ./install.sh
|
||||
|
||||
# Từ curl install
|
||||
curl -fsSL ccs.kaitran.ca/install | bash
|
||||
```
|
||||
|
||||
**Windows PowerShell**:
|
||||
```powershell
|
||||
# Từ git clone
|
||||
cd ccs
|
||||
git pull
|
||||
.\install.ps1
|
||||
|
||||
# Từ irm install
|
||||
irm ccs.kaitran.ca/install.ps1 | iex
|
||||
```
|
||||
|
||||
**Lưu ý**: Nâng cấp giữ nguyên API keys và settings hiện tại. Installer chỉ thêm tính năng mới mà không ghi đè cấu hình của bạn.
|
||||
|
||||
## Cấu Hình
|
||||
|
||||
Installer tự động tạo config và profile templates khi cài đặt:
|
||||
|
||||
**macOS / Linux**: `~/.ccs/config.json`
|
||||
**Windows**: `%USERPROFILE%\.ccs\config.json`
|
||||
|
||||
Nếu cần tùy chỉnh:
|
||||
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"glm": "~/.ccs/glm.settings.json",
|
||||
"son": "~/.ccs/sonnet.settings.json",
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cấu Hình macOS / Linux
|
||||
|
||||
Dùng file paths trỏ đến settings files:
|
||||
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"glm": "~/.ccs/glm.settings.json",
|
||||
"sonnet": "~/.ccs/sonnet.settings.json",
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Mỗi profile trỏ đến một file settings JSON của Claude. Tạo file settings theo [tài liệu Claude CLI](https://docs.claude.com/en/docs/claude-code/installation).
|
||||
|
||||
### Cấu Hình Windows
|
||||
|
||||
Windows dùng cùng cấu trúc file và phương pháp như Linux/macOS.
|
||||
|
||||
**Config format** (`~/.ccs/config.json`):
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"glm": "~/.ccs/glm.settings.json",
|
||||
"son": "~/.ccs/sonnet.settings.json",
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**GLM profile** (`~/.ccs/glm.settings.json`):
|
||||
```json
|
||||
{
|
||||
"env": {
|
||||
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
|
||||
"ANTHROPIC_AUTH_TOKEN": "GLM_API_KEY_CUA_BAN",
|
||||
"ANTHROPIC_MODEL": "glm-4.6",
|
||||
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-4.6",
|
||||
"ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.6",
|
||||
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.6"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Claude profile** (`~/.ccs/sonnet.settings.json`):
|
||||
```json
|
||||
{
|
||||
"env": {}
|
||||
}
|
||||
```
|
||||
|
||||
**Cách hoạt động**:
|
||||
- CCS đọc config để tìm settings file của profile
|
||||
- Chạy `claude --settings <file>` với profile đã chọn
|
||||
- Đơn giản, rõ ràng, đa nền tảng
|
||||
|
||||
## Sử Dụng
|
||||
|
||||
### Cơ Bản
|
||||
|
||||
```bash
|
||||
# Hoạt động trên macOS, Linux, và Windows
|
||||
ccs # Dùng profile mặc định (không args)
|
||||
ccs glm # Dùng GLM profile
|
||||
ccs son # Dùng Sonnet profile
|
||||
```
|
||||
|
||||
**Lưu ý Windows**: Lệnh hoạt động giống nhau trên PowerShell, CMD, và Git Bash.
|
||||
|
||||
### Với Arguments
|
||||
|
||||
Tất cả args sau tên profile được truyền trực tiếp cho Claude CLI:
|
||||
|
||||
```bash
|
||||
ccs glm --verbose
|
||||
ccs son /plan "thêm tính năng"
|
||||
ccs default --model claude-sonnet-4
|
||||
```
|
||||
|
||||
### Ví Dụ
|
||||
|
||||
**Tự động hoàn thành**:
|
||||
```bash
|
||||
# Nếu shell của bạn hỗ trợ aliases
|
||||
alias cs='ccs'
|
||||
cs glm
|
||||
```
|
||||
|
||||
## Use Cases
|
||||
|
||||
### 1. Tích Hợp Thanh Toán
|
||||
|
||||
```bash
|
||||
# Bước 1: Kiến trúc & Planning (cần trí tuệ của Claude)
|
||||
ccs son
|
||||
/plan "Thiết kế tích hợp thanh toán với Stripe, xử lý webhooks, errors, retries"
|
||||
# → Claude Sonnet 4.5 suy nghĩ sâu về edge cases, bảo mật, kiến trúc
|
||||
|
||||
# Bước 2: Implement (coding đơn giản)
|
||||
ccs glm
|
||||
/code "implement payment handler theo plan"
|
||||
# → GLM 4.6 viết code hiệu quả, tiết kiệm usage của Claude
|
||||
|
||||
# Bước 3: Code Review (cần phân tích sâu)
|
||||
ccs son
|
||||
/review "kiểm tra payment handler về vấn đề bảo mật"
|
||||
# → Claude Sonnet 4.5 phát hiện các lỗ hổng tinh vi
|
||||
|
||||
# Bước 4: Testing & Fixes (công việc lặp lại)
|
||||
ccs glm
|
||||
/fix "sửa các issues từ review"
|
||||
# → GLM 4.6 xử lý fixes đơn giản
|
||||
```
|
||||
|
||||
### 2. Hết Rate Limit Giữa Chừng
|
||||
|
||||
```bash
|
||||
# Đang làm refactoring phức tạp với Claude
|
||||
ccs son
|
||||
/plan "refactor hệ thống authentication"
|
||||
|
||||
# Claude hết rate limit giữa task
|
||||
# ❌ TRƯỚC: Phải chờ hoặc manually sửa settings
|
||||
|
||||
# ✅ BÂY GIỜ: Chuyển ngay
|
||||
ccs glm
|
||||
# Tiếp tục làm việc không gián đoạn
|
||||
|
||||
# Rate limit reset? Chuyển lại
|
||||
ccs son
|
||||
```
|
||||
|
||||
### Ví Dụ Cấu Hình
|
||||
|
||||
**Nhiều GLM accounts cho rate limits cao hơn**:
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"glm1": "~/.ccs/glm-account1.settings.json",
|
||||
"glm2": "~/.ccs/glm-account2.settings.json",
|
||||
"son": "~/.ccs/sonnet.settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Profiles cho từng dự án**:
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"work": "~/.ccs/work.settings.json",
|
||||
"personal": "~/.ccs/personal.settings.json",
|
||||
"experiments": "~/.ccs/experiments.settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Yêu Cầu
|
||||
|
||||
### macOS / Linux
|
||||
- **Bash** 3.2+
|
||||
- **jq** (để xử lý JSON)
|
||||
- **Claude CLI** đã cài đặt
|
||||
|
||||
### Windows
|
||||
- **PowerShell** 5.1+ (có sẵn trên Windows 10+)
|
||||
- **Claude CLI** đã cài đặt
|
||||
|
||||
### Cài jq (chỉ macOS / Linux)
|
||||
|
||||
**macOS**:
|
||||
```bash
|
||||
brew install jq
|
||||
```
|
||||
|
||||
**Ubuntu/Debian**:
|
||||
```bash
|
||||
sudo apt install jq
|
||||
```
|
||||
|
||||
**Fedora**:
|
||||
```bash
|
||||
sudo dnf install jq
|
||||
```
|
||||
|
||||
**Arch**:
|
||||
```bash
|
||||
sudo pacman -S jq
|
||||
```
|
||||
|
||||
**Lưu ý**: Phiên bản Windows dùng JSON support có sẵn của PowerShell - không cần jq.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Vấn Đề Riêng Cho Windows
|
||||
|
||||
#### PowerShell Execution Policy
|
||||
|
||||
Nếu bạn thấy lỗi "cannot be loaded because running scripts is disabled":
|
||||
|
||||
```powershell
|
||||
# Kiểm tra policy hiện tại
|
||||
Get-ExecutionPolicy
|
||||
|
||||
# Cho phép user hiện tại chạy scripts (khuyến nghị)
|
||||
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||
|
||||
# Hoặc chạy với bypass (một lần)
|
||||
powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.ccs\ccs.ps1" glm
|
||||
```
|
||||
|
||||
#### PATH chưa được cập nhật (Windows)
|
||||
|
||||
Nếu lệnh `ccs` không tìm thấy sau khi cài đặt:
|
||||
|
||||
1. Khởi động lại terminal
|
||||
2. Hoặc thêm thủ công vào PATH:
|
||||
- Mở "Edit environment variables for your account"
|
||||
- Thêm `%USERPROFILE%\.ccs` vào User PATH
|
||||
- Khởi động lại terminal
|
||||
|
||||
#### Claude CLI không tìm thấy (Windows)
|
||||
|
||||
```powershell
|
||||
# Kiểm tra Claude CLI
|
||||
where.exe claude
|
||||
|
||||
# Nếu thiếu, cài đặt từ tài liệu Claude
|
||||
```
|
||||
|
||||
### Vấn Đề Cài Đặt
|
||||
|
||||
#### Lỗi BASH_SOURCE unbound variable
|
||||
|
||||
Lỗi này xảy ra khi chạy installer trong một số shells hoặc môi trường.
|
||||
|
||||
**Đã sửa trong phiên bản mới nhất**: Installer bây giờ xử lý cả piped execution (`curl | bash`) và direct execution (`./install.sh`).
|
||||
|
||||
**Giải pháp**: Nâng cấp lên phiên bản mới nhất:
|
||||
```bash
|
||||
curl -fsSL ccs.kaitran.ca/install | bash
|
||||
```
|
||||
|
||||
#### Git worktree không được phát hiện
|
||||
|
||||
Nếu cài từ git worktree hoặc submodule, phiên bản cũ có thể không phát hiện git repository.
|
||||
|
||||
**Đã sửa trong phiên bản mới nhất**: Installer bây giờ phát hiện cả `.git` directory (standard clone) và `.git` file (worktree/submodule).
|
||||
|
||||
**Giải pháp**: Nâng cấp lên phiên bản mới nhất hoặc dùng curl installation.
|
||||
|
||||
### Vấn Đề Cấu Hình
|
||||
|
||||
#### Profile không tìm thấy
|
||||
|
||||
```
|
||||
Error: Profile 'foo' not found in ~/.ccs/config.json
|
||||
```
|
||||
|
||||
**Fix**: Thêm profile vào config:
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"foo": "~/.ccs/foo.settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### File settings thiếu
|
||||
|
||||
```
|
||||
Error: Settings file not found: ~/.ccs/foo.settings.json
|
||||
```
|
||||
|
||||
**Fix**: Tạo file settings hoặc sửa path trong config.
|
||||
|
||||
#### jq chưa cài
|
||||
|
||||
```
|
||||
Error: jq is required but not installed
|
||||
```
|
||||
|
||||
**Fix**: Cài jq (xem phần Yêu Cầu).
|
||||
|
||||
**Lưu ý**: Installer tạo templates cơ bản ngay cả không có jq, nhưng các tính năng nâng cao cần jq.
|
||||
|
||||
### Vấn Đề Môi Trường
|
||||
|
||||
#### PATH chưa được thiết lập
|
||||
|
||||
```
|
||||
⚠️ Warning: ~/.local/bin is not in PATH
|
||||
```
|
||||
|
||||
**Fix**: Thêm vào shell profile (~/.bashrc hoặc ~/.zshrc):
|
||||
```bash
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
```
|
||||
Sau đó `source ~/.bashrc` hoặc khởi động lại shell.
|
||||
|
||||
#### Profile mặc định thiếu
|
||||
|
||||
```
|
||||
Error: Profile 'default' not found in ~/.ccs/config.json
|
||||
```
|
||||
|
||||
**Fix**: Thêm profile default:
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Vấn Đề Nâng Cấp
|
||||
|
||||
#### API keys bị mất sau khi nâng cấp
|
||||
|
||||
**Không phải vấn đề**: Installer giữ nguyên API keys hiện tại khi nâng cấp. Nếu bạn đang dùng GLM, API key của bạn được tự động giữ lại và profile được nâng cấp với các biến default model mới.
|
||||
|
||||
**Xác minh**: Kiểm tra `~/.ccs/glm.settings.json` - `ANTHROPIC_AUTH_TOKEN` của bạn vẫn còn đó.
|
||||
- **YAGNI**: Không có tính năng "phòng hờ"
|
||||
- **KISS**: Bash đơn giản, không phức tạp
|
||||
- **DRY**: Một nguồn chân lý duy nhất (config)
|
||||
|
||||
## Gỡ Cài Đặt
|
||||
|
||||
### macOS / Linux
|
||||
|
||||
**Dùng lệnh đã cài**:
|
||||
**macOS / Linux**:
|
||||
```bash
|
||||
ccs-uninstall
|
||||
```
|
||||
|
||||
**Một dòng lệnh**:
|
||||
```bash
|
||||
# URL ngắn
|
||||
curl -fsSL ccs.kaitran.ca/uninstall | bash
|
||||
|
||||
# Hoặc trực tiếp từ GitHub
|
||||
curl -fsSL https://raw.githubusercontent.com/kaitranntt/ccs/main/installers/uninstall.sh | bash
|
||||
```
|
||||
|
||||
**Thủ công**:
|
||||
```bash
|
||||
rm ~/.local/bin/ccs
|
||||
rm ~/.local/bin/ccs-uninstall
|
||||
rm -rf ~/.ccs # Nếu muốn xóa tất cả files của CCS
|
||||
```
|
||||
|
||||
### Windows PowerShell
|
||||
|
||||
**Dùng lệnh đã cài**:
|
||||
**Windows PowerShell**:
|
||||
```powershell
|
||||
ccs-uninstall
|
||||
irm ccs.kaitran.ca/uninstall | iex
|
||||
```
|
||||
|
||||
**Một dòng lệnh**:
|
||||
```powershell
|
||||
# URL ngắn
|
||||
irm ccs.kaitran.ca/uninstall.ps1 | iex
|
||||
|
||||
# Hoặc trực tiếp từ GitHub
|
||||
irm https://raw.githubusercontent.com/kaitranntt/ccs/main/installers/uninstall.ps1 | iex
|
||||
```
|
||||
|
||||
**Thủ công**:
|
||||
```powershell
|
||||
# Xóa scripts
|
||||
Remove-Item "$env:USERPROFILE\.ccs\ccs.ps1" -Force
|
||||
Remove-Item "$env:USERPROFILE\.ccs\uninstall.ps1" -Force
|
||||
|
||||
# Xóa khỏi PATH
|
||||
$Path = [Environment]::GetEnvironmentVariable("Path", "User")
|
||||
$NewPath = ($Path -split ';' | Where-Object { $_ -ne "$env:USERPROFILE\.ccs" }) -join ';'
|
||||
[Environment]::SetEnvironmentVariable("Path", $NewPath, "User")
|
||||
|
||||
# Tùy chọn: Xóa tất cả files CCS
|
||||
Remove-Item "$env:USERPROFILE\.ccs" -Recurse -Force
|
||||
```
|
||||
|
||||
## Bảo Mật
|
||||
|
||||
- ✅ Zero dependencies (chỉ bash + jq)
|
||||
- ✅ Không internet calls ngoài cài đặt
|
||||
- ✅ Không tracking, không telemetry
|
||||
- ✅ Configs được lưu local
|
||||
- ✅ Pass-through trực tiếp đến Claude CLI
|
||||
- ✅ Open source, có thể audit
|
||||
|
||||
**Lưu ý**: CCS chỉ chuyển đổi file settings. Tất cả model execution được xử lý bởi Claude CLI chính thức.
|
||||
|
||||
## FAQ
|
||||
|
||||
**Q: CCS có gọi API không?**
|
||||
A: Không. CCS chỉ chuyển đổi file config. Tất cả API calls đến từ Claude CLI chính thức.
|
||||
|
||||
**Q: Có thể dùng với các providers khác không?**
|
||||
A: Có! Miễn là provider tương thích với Claude CLI settings format.
|
||||
|
||||
**Q: Cần internet để chuyển profiles không?**
|
||||
A: Không. Profile switching hoàn toàn offline. Chỉ cần internet cho API calls của Claude CLI.
|
||||
|
||||
**Q: Settings cũ của tôi có bị ghi đè không?**
|
||||
A: Không. Installer tạo files mới và giữ nguyên configs hiện tại.
|
||||
|
||||
**Q: CCS có hoạt động trên Windows không?**
|
||||
A: Có! CCS bây giờ hỗ trợ Windows PowerShell 5.1+ ngoài macOS/Linux bash.
|
||||
|
||||
## Đóng Góp
|
||||
|
||||
Contributions được chào đón! Vui lòng:
|
||||
|
||||
1. Fork repo
|
||||
2. Tạo feature branch
|
||||
3. Commit changes của bạn
|
||||
4. Push lên branch
|
||||
5. Mở Pull Request
|
||||
|
||||
**Guidelines**:
|
||||
- Duy trì tương thích bash 3.2+ (Unix) và PowerShell 5.1+ (Windows)
|
||||
- Không dependencies ngoài jq (Unix) hoặc PowerShell có sẵn (Windows)
|
||||
- Test trên macOS, Linux, và Windows
|
||||
- Tuân theo code style hiện có
|
||||
|
||||
## License
|
||||
|
||||
MIT License - xem [LICENSE](LICENSE) để biết chi tiết.
|
||||
|
||||
## Tác Giả
|
||||
|
||||
Được tạo bởi [Kai Tran](https://github.com/kaitranntt)
|
||||
|
||||
## Links
|
||||
|
||||
- **GitHub**: https://github.com/kaitranntt/ccs
|
||||
- **Issues**: https://github.com/kaitranntt/ccs/issues
|
||||
- **Claude CLI Docs**: https://docs.claude.com/en/docs/claude-code/installation
|
||||
**Tìm hiểu thêm**: Tài liệu đầy đủ có sẵn trong [docs/vi/](./docs/vi/)
|
||||
- [Hướng dẫn Cài đặt](./docs/vi/installation.vi.md)
|
||||
- [Cấu hình](./docs/vi/configuration.vi.md)
|
||||
- [Ví dụ Sử dụng](./docs/vi/usage.vi.md)
|
||||
- [Khắc phục Sự cố](./docs/vi/troubleshooting.vi.md)
|
||||
- [Đóng góp](./docs/vi/contributing.vi.md)
|
||||
|
||||
---
|
||||
|
||||
Nếu CCS giúp ích cho bạn, cho một ⭐ trên GitHub! 🎉
|
||||
*Được tạo với ❤️ bởi [Kai Tran](https://github.com/kaitranntt)*
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
# Hướng Dẫn Cấu Hình CCS
|
||||
|
||||
## Cấu Hình Tự Động
|
||||
|
||||
Installer tự động tạo config và mẫu profile trong quá trình cài đặt:
|
||||
|
||||
**macOS / Linux**: `~/.ccs/config.json`
|
||||
|
||||
**Windows**: `%USERPROFILE%\.ccs\config.json`
|
||||
|
||||
## Định Dạng Cấu Hình
|
||||
|
||||
### Cài Đặt Cơ Bản
|
||||
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"glm": "~/.ccs/glm.settings.json",
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cài Đặt Nâng Cao (Nhiều Profile)
|
||||
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"glm": "~/.ccs/glm.settings.json",
|
||||
"haiku": "~/.ccs/haiku.settings.json",
|
||||
"custom": "~/.ccs/custom.settings.json",
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Cấu Hình Profile
|
||||
|
||||
### Ví Dụ Profile GLM
|
||||
|
||||
**Vị trí**: `~/.ccs/glm.settings.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"env": {
|
||||
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
|
||||
"ANTHROPIC_AUTH_TOKEN": "your_glm_api_key",
|
||||
"ANTHROPIC_MODEL": "glm-4.6",
|
||||
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-4.6",
|
||||
"ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.6",
|
||||
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.6"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Profile Claude (Mặc Định)
|
||||
|
||||
- Sử dụng `~/.claude/settings.json` (config Claude CLI hiện tại của bạn)
|
||||
- CCS không bao giờ sửa file này (tiếp cận không xâm phạm)
|
||||
|
||||
## Cách Hoạt Động Cấu Hình
|
||||
|
||||
1. CCS đọc tên profile từ dòng lệnh (mặc định là "default")
|
||||
2. Tìm đường dẫn file settings trong `~/.ccs/config.json`
|
||||
3. Thực thi `claude --settings <file> [remaining-args]`
|
||||
|
||||
Không có magic. Không sửa file. Chuyển giao thuần túy. Hoạt động giống nhau trên tất cả nền tảng.
|
||||
|
||||
## Vị Trí Config Tùy Chỉnh
|
||||
|
||||
```bash
|
||||
export CCS_CONFIG=~/my-custom-config.json
|
||||
ccs glm
|
||||
```
|
||||
|
||||
## Lưu Ý Tùy Theo Nền Tảng
|
||||
|
||||
### Cấu Hình Windows
|
||||
|
||||
Windows dùng cấu trúc file và phương pháp giống như Linux/macOS.
|
||||
|
||||
**Định dạng config** (`~/.ccs/config.json`):
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"glm": "~/.ccs/glm.settings.json",
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cấu Hình macOS / Linux
|
||||
|
||||
Sử dụng đường dẫn file settings với mở rộng `~`:
|
||||
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"glm": "~/.ccs/glm.settings.json",
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Mỗi profile trỏ đến một file settings JSON của Claude. Tạo file settings theo [tài liệu Claude CLI](https://docs.claude.com/en/docs/claude-code/installation).
|
||||
|
||||
## Vấn Đề Cấu Hình
|
||||
|
||||
### Không tìm thấy profile
|
||||
|
||||
```
|
||||
Error: Profile 'foo' not found in ~/.ccs/config.json
|
||||
```
|
||||
|
||||
**Fix**: Thêm profile vào `~/.ccs/config.json`:
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"foo": "~/.ccs/foo.settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Thiếu file settings
|
||||
|
||||
```
|
||||
Error: Settings file not found: ~/.ccs/foo.settings.json
|
||||
```
|
||||
|
||||
**Fix**: Tạo file settings hoặc sửa đường dẫn trong config.
|
||||
|
||||
### Thiếu profile mặc định
|
||||
|
||||
```
|
||||
Error: Profile 'default' not found in ~/.ccs/config.json
|
||||
```
|
||||
|
||||
**Fix**: Thêm profile "default" hoặc luôn chỉ định tên profile:
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,182 @@
|
||||
# Hướng Dẫn Đóng Góp CCS
|
||||
|
||||
## Nguyên Tắc Phát Triển
|
||||
|
||||
### Triết Lý
|
||||
|
||||
CCS tuân theo các nguyên tắc cốt lõi sau:
|
||||
|
||||
- **YAGNI**: Không có tính năng "phòng hờ"
|
||||
- **KISS**: Bash đơn giản, không phức tạp
|
||||
- **DRY**: Một nguồn chân lý duy nhất (config)
|
||||
|
||||
Công cụ này chỉ LÀM MỘT việc tốt: ánh xạ tên profile đến file settings.
|
||||
|
||||
### Tiêu Chuẩn Code
|
||||
|
||||
#### Yêu Cầu Tương Thích
|
||||
|
||||
- **Unix**: tương thích bash 3.2+
|
||||
- **Windows**: tương thích PowerShell 5.1+
|
||||
- **Dependencies**: Chỉ jq (Unix) hoặc PowerShell có sẵn (Windows)
|
||||
|
||||
#### Phong Cách Code
|
||||
|
||||
**Bash (Unix)**:
|
||||
- Sử dụng shebang `#!/usr/bin/env bash`
|
||||
- Quote variables: `"$VAR"` không phải `$VAR`
|
||||
- Sử dụng `[[ ]]` cho tests, không phải `[ ]`
|
||||
- Tuân theo mẫu thụt lề và đặt tên hiện có
|
||||
|
||||
**PowerShell (Windows)**:
|
||||
- Sử dụng `CmdletBinding` và xử lý parameter đúng cách
|
||||
- Tuân theo quy ước động-tên của PowerShell
|
||||
- Sử dụng xử lý lỗi đúng cách với `try/catch`
|
||||
- Duy trì tương thích với PowerShell 5.1+
|
||||
|
||||
### Kiểm Thử
|
||||
|
||||
#### Kiểm Thử Nền Tảng
|
||||
|
||||
Kiểm tra trên tất cả nền tảng trước khi gửi PR:
|
||||
- macOS (bash)
|
||||
- Linux (bash)
|
||||
- Windows (PowerShell, CMD, Git Bash)
|
||||
|
||||
#### Kịch Bản Kiểm Thử
|
||||
|
||||
1. **Chức năng cơ bản**:
|
||||
```bash
|
||||
ccs # Nên dùng profile mặc định
|
||||
ccs glm # Nên dùng profile GLM
|
||||
ccs --version # Nên hiển thị phiên bản
|
||||
```
|
||||
|
||||
2. **Với arguments**:
|
||||
```bash
|
||||
ccs glm --help
|
||||
ccs /plan "test"
|
||||
```
|
||||
|
||||
3. **Xử lý lỗi**:
|
||||
```bash
|
||||
ccs invalid-profile # Nên hiển thị lỗi
|
||||
ccs --invalid-flag # Nên chuyển cho Claude
|
||||
```
|
||||
|
||||
### Quy Trình Gửi
|
||||
|
||||
#### Trước Khi Gửi
|
||||
|
||||
1. Fork repository
|
||||
2. Tạo feature branch: `git checkout -b feature-name`
|
||||
3. Thực hiện thay đổi của bạn
|
||||
4. Kiểm tra trên tất cả nền tảng
|
||||
5. Đảm bảo các tests hiện có passes
|
||||
|
||||
#### Yêu Cầu Pull Request
|
||||
|
||||
- Mô tả rõ ràng các thay đổi
|
||||
- Hướng dẫn kiểm thử nếu có
|
||||
- Link đến các issues liên quan
|
||||
- Tuân theo kiểu commit message hiện có
|
||||
|
||||
#### Kiểu Commit Message
|
||||
|
||||
```
|
||||
type(scope): description
|
||||
|
||||
[optional body]
|
||||
|
||||
[optional footer]
|
||||
```
|
||||
|
||||
Ví dụ:
|
||||
```
|
||||
fix(installer): handle git worktree detection
|
||||
feat(config): support custom config location
|
||||
docs(readme): update installation instructions
|
||||
```
|
||||
|
||||
### Thiết Lập Phát Triển
|
||||
|
||||
#### Phát Triển Địa Phương
|
||||
|
||||
```bash
|
||||
# Clone fork của bạn
|
||||
git clone https://github.com/yourusername/ccs.git
|
||||
cd ccs
|
||||
|
||||
# Tạo feature branch
|
||||
git checkout -b your-feature-name
|
||||
|
||||
# Thực hiện thay đổi
|
||||
# Kiểm tra địa phương với ./ccs
|
||||
|
||||
# Chạy tests
|
||||
./test.sh # nếu có
|
||||
```
|
||||
|
||||
#### Kiểm Thử Installer
|
||||
|
||||
```bash
|
||||
# Kiểm thử installer Unix
|
||||
./installers/install.sh
|
||||
|
||||
# Kiểm thử installer Windows (trong PowerShell)
|
||||
.\installers\install.ps1
|
||||
```
|
||||
|
||||
### Lĩnh Vực Đóng Góp
|
||||
|
||||
#### Tính Năng Mong Muốn
|
||||
|
||||
1. **Hỗ trợ profile bổ sung**:
|
||||
- Validation profile tùy chỉnh
|
||||
- Lối tắt chuyển profile
|
||||
|
||||
2. **Xử lý lỗi nâng cao**:
|
||||
- Thông báo lỗi tốt hơn
|
||||
- Gợi ý khôi phục
|
||||
|
||||
3. **Tài liệu**:
|
||||
- Nhiều ví dụ hơn
|
||||
- Hướng dẫn tích hợp
|
||||
|
||||
#### Sửa Lỗi
|
||||
|
||||
- Vấn đề installer trên các nền tảng khác nhau
|
||||
- Edge cases trong parsing config
|
||||
- Tương thích riêng của Windows
|
||||
|
||||
### Quy Trình Review
|
||||
|
||||
1. **Kiểm tra tự động**:
|
||||
- Validation cú pháp
|
||||
- Tests chức năng cơ bản
|
||||
|
||||
2. **Review thủ công**:
|
||||
- Chất lượng và phong cách code
|
||||
- Tương thích nền tảng
|
||||
- Phù hợp với triết lý
|
||||
|
||||
3. **Kiểm thử**:
|
||||
- Xác nhận đa nền tảng
|
||||
- Kiểm thử tích hợp
|
||||
|
||||
### Cộng Đồng
|
||||
|
||||
#### Nhận Trợ Giúp
|
||||
|
||||
- GitHub Issues: Báo lỗi hoặc yêu cầu tính năng
|
||||
- Discussions: Hỏi câu hỏi hoặc chia sẻ ý tưởng
|
||||
|
||||
#### Quy Tắc Ứng Xử
|
||||
|
||||
Hãy tôn trọng, mang tính xây dựng, và tập trung vào triết lý đơn giản và đáng tin cậy của dự án.
|
||||
|
||||
---
|
||||
|
||||
**Cảm ơn bạn đã đóng góp cho CCS!**
|
||||
|
||||
Hãy nhớ: Giữ nó đơn giản, kiểm thử kỹ lưỡng, và trung thành với triết lý YAGNI/KISS/DRY.
|
||||
@@ -0,0 +1,139 @@
|
||||
# Hướng Dẫn Cài Đặt CCS
|
||||
|
||||
## Cài Đặt Một Dòng Lệnh (Khuyến Nghị)
|
||||
|
||||
### macOS / Linux
|
||||
|
||||
```bash
|
||||
# URL ngắn (qua CloudFlare)
|
||||
curl -fsSL ccs.kaitran.ca/install | bash
|
||||
|
||||
# Hoặc trực tiếp từ GitHub
|
||||
curl -fsSL https://raw.githubusercontent.com/kaitranntt/ccs/main/installers/install.sh | bash
|
||||
```
|
||||
|
||||
### Windows PowerShell
|
||||
|
||||
```powershell
|
||||
# URL ngắn (qua CloudFlare)
|
||||
irm ccs.kaitran.ca/install.ps1 | iex
|
||||
|
||||
# Hoặc trực tiếp từ GitHub
|
||||
irm https://raw.githubusercontent.com/kaitranntt/ccs/main/installers/install.ps1 | iex
|
||||
```
|
||||
|
||||
**Lưu ý**:
|
||||
- Installer Unix hỗ trợ cả chạy trực tiếp (`./install.sh`) và cài đặt qua pipe (`curl | bash`)
|
||||
- Installer Windows yêu cầu PowerShell 5.1+ (đã cài sẵn trên Windows 10+)
|
||||
|
||||
## Cài Đặt qua Git Clone
|
||||
|
||||
### macOS / Linux
|
||||
|
||||
```bash
|
||||
git clone https://github.com/kaitranntt/ccs.git
|
||||
cd ccs
|
||||
./installers/install.sh
|
||||
```
|
||||
|
||||
### Windows PowerShell
|
||||
|
||||
```powershell
|
||||
git clone https://github.com/kaitranntt/ccs.git
|
||||
cd ccs
|
||||
.\installers\install.ps1
|
||||
```
|
||||
|
||||
**Lưu ý**: Hoạt động với git worktrees và submodules - installer phát hiện cả thư mục `.git` và file `.git`.
|
||||
|
||||
## Cài Đặt Thủ Công
|
||||
|
||||
### macOS / Linux
|
||||
|
||||
```bash
|
||||
# Tải script
|
||||
curl -fsSL https://raw.githubusercontent.com/kaitranntt/ccs/main/ccs -o ~/.local/bin/ccs
|
||||
chmod +x ~/.local/bin/ccs
|
||||
|
||||
# Đảm bảo ~/.local/bin trong PATH
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
```
|
||||
|
||||
### Windows PowerShell
|
||||
|
||||
```powershell
|
||||
# Tạo thư mục
|
||||
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.ccs"
|
||||
|
||||
# Tải script
|
||||
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/kaitranntt/ccs/main/ccs.ps1" -OutFile "$env:USERPROFILE\.ccs\ccs.ps1"
|
||||
|
||||
# Thêm vào PATH (khởi động lại terminal sau)
|
||||
$Path = [Environment]::GetEnvironmentVariable("Path", "User")
|
||||
[Environment]::SetEnvironmentVariable("Path", "$Path;$env:USERPROFILE\.ccs", "User")
|
||||
```
|
||||
|
||||
## Những Gì Được Cài Đặt
|
||||
|
||||
```bash
|
||||
~/.ccs/
|
||||
├── ccs # Tệp thực thi chính
|
||||
├── config.json # Cấu hình profile
|
||||
├── glm.settings.json # Profile GLM
|
||||
└── .claude/ # Tích hợp Claude Code
|
||||
├── commands/ccs.md # meta-command /ccs
|
||||
└── skills/ # Kỹ năng delegation
|
||||
```
|
||||
|
||||
## Nâng Cấp CCS
|
||||
|
||||
### macOS / Linux
|
||||
|
||||
```bash
|
||||
# Từ git clone
|
||||
cd ccs && git pull && ./install.sh
|
||||
|
||||
# Từ cài đặt curl
|
||||
curl -fsSL ccs.kaitran.ca/install | bash
|
||||
```
|
||||
|
||||
### Windows PowerShell
|
||||
|
||||
```powershell
|
||||
# Từ git clone
|
||||
cd ccs
|
||||
git pull
|
||||
.\install.ps1
|
||||
|
||||
# Từ cài đặt irm
|
||||
irm ccs.kaitran.ca/install.ps1 | iex
|
||||
```
|
||||
|
||||
## Yêu Cầu
|
||||
|
||||
### macOS / Linux
|
||||
- `bash` 3.2+
|
||||
- `jq` (trình xử lý JSON)
|
||||
- [Claude CLI](https://docs.claude.com/en/docs/claude-code/installation)
|
||||
|
||||
### Windows
|
||||
- PowerShell 5.1+ (đã cài sẵn trên Windows 10+)
|
||||
- [Claude CLI](https://docs.claude.com/en/docs/claude-code/installation)
|
||||
|
||||
### Cài đặt jq (chỉ macOS / Linux)
|
||||
|
||||
```bash
|
||||
# macOS
|
||||
brew install jq
|
||||
|
||||
# Ubuntu/Debian
|
||||
sudo apt install jq
|
||||
|
||||
# Fedora
|
||||
sudo dnf install jq
|
||||
|
||||
# Arch
|
||||
sudo pacman -S jq
|
||||
```
|
||||
|
||||
**Lưu ý**: Phiên bản Windows dùng JSON support có sẵn của PowerShell - không cần jq.
|
||||
@@ -0,0 +1,180 @@
|
||||
# Hướng Dẫn Khắc Phục Sự Cố CCS
|
||||
|
||||
## Vấn Đề Riêng Của Windows
|
||||
|
||||
### PowerShell Execution Policy
|
||||
|
||||
Nếu bạn thấy "cannot be loaded because running scripts is disabled":
|
||||
|
||||
```powershell
|
||||
# Kiểm tra policy hiện tại
|
||||
Get-ExecutionPolicy
|
||||
|
||||
# Cho phép user hiện tại chạy scripts (khuyến nghị)
|
||||
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||
|
||||
# Hoặc chạy với bypass (một lần)
|
||||
powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.ccs\ccs.ps1" glm
|
||||
```
|
||||
|
||||
### PATH chưa được cập nhật (Windows)
|
||||
|
||||
Nếu lệnh `ccs` không tìm thấy sau khi cài đặt:
|
||||
|
||||
1. Khởi động lại terminal của bạn
|
||||
2. Hoặc thêm thủ công vào PATH:
|
||||
- Mở "Edit environment variables for your account"
|
||||
- Thêm `%USERPROFILE%\.ccs` vào User PATH
|
||||
- Khởi động lại terminal
|
||||
|
||||
### Claude CLI không tìm thấy (Windows)
|
||||
|
||||
```powershell
|
||||
# Kiểm tra Claude CLI
|
||||
where.exe claude
|
||||
|
||||
# Nếu thiếu, cài đặt từ tài liệu Claude
|
||||
```
|
||||
|
||||
## Vấn Đề Cài Đặt
|
||||
|
||||
### Lỗi BASH_SOURCE unbound variable
|
||||
|
||||
Lỗi này xảy ra khi chạy installer trong một số shells hoặc môi trường.
|
||||
|
||||
**Đã sửa trong phiên bản mới nhất**: Installer bây giờ xử lý cả thực thi qua pipe (`curl | bash`) và thực thi trực tiếp (`./install.sh`).
|
||||
|
||||
**Giải pháp**: Nâng cấp lên phiên bản mới nhất:
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/kaitranntt/ccs/main/installers/install.sh | bash
|
||||
```
|
||||
|
||||
### Git worktree không được phát hiện
|
||||
|
||||
Nếu cài từ git worktree hoặc submodule, các phiên bản cũ có thể không phát hiện repository git.
|
||||
|
||||
**Đã sửa trong phiên bản mới nhất**: Installer bây giờ phát hiện cả thư mục `.git` (clone chuẩn) và file `.git` (worktree/submodule).
|
||||
|
||||
**Giải pháp**: Nâng cấp lên phiên bản mới nhất hoặc dùng phương pháp cài đặt curl.
|
||||
|
||||
## Vấn Đề Cấu Hình
|
||||
|
||||
### Không tìm thấy profile
|
||||
|
||||
```
|
||||
Error: Profile 'foo' not found in ~/.ccs/config.json
|
||||
```
|
||||
|
||||
**Fix**: Thêm profile vào `~/.ccs/config.json`:
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"foo": "~/.ccs/foo.settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Thiếu file settings
|
||||
|
||||
```
|
||||
Error: Settings file not found: ~/.ccs/foo.settings.json
|
||||
```
|
||||
|
||||
**Fix**: Tạo file settings hoặc sửa đường dẫn trong config.
|
||||
|
||||
### jq chưa được cài đặt
|
||||
|
||||
```
|
||||
Error: jq is required but not installed
|
||||
```
|
||||
|
||||
**Fix**: Cài đặt jq (xem hướng dẫn cài đặt).
|
||||
|
||||
**Lưu ý**: Installer tạo các mẫu cơ bản ngay cả khi không có jq, nhưng các tính năng nâng cao cần jq.
|
||||
|
||||
## Vấn Đề Môi Trường
|
||||
|
||||
### PATH chưa được thiết lập
|
||||
|
||||
```
|
||||
⚠️ Warning: ~/.local/bin is not in PATH
|
||||
```
|
||||
|
||||
**Fix**: Thêm vào `~/.bashrc` hoặc `~/.zshrc`:
|
||||
```bash
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
```
|
||||
Sau đó `source ~/.bashrc` hoặc khởi động lại shell.
|
||||
|
||||
### Thiếu profile mặc định
|
||||
|
||||
```
|
||||
Error: Profile 'default' not found in ~/.ccs/config.json
|
||||
```
|
||||
|
||||
**Fix**: Thêm profile "default" hoặc luôn chỉ định tên profile:
|
||||
```json
|
||||
{
|
||||
"profiles": {
|
||||
"default": "~/.claude/settings.json"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Vấn Đề Phổ Biến
|
||||
|
||||
### Claude CLI không tìm thấy
|
||||
|
||||
```
|
||||
Error: claude command not found
|
||||
```
|
||||
|
||||
**Giải pháp**: Cài đặt Claude CLI từ [tài liệu chính thức](https://docs.claude.com/en/docs/claude-code/installation).
|
||||
|
||||
### Permission denied (Unix)
|
||||
|
||||
```
|
||||
Error: Permission denied: ~/.local/bin/ccs
|
||||
```
|
||||
|
||||
**Giải pháp**: Cho phép script thực thi:
|
||||
```bash
|
||||
chmod +x ~/.local/bin/ccs
|
||||
```
|
||||
|
||||
### Không tìm thấy file config
|
||||
|
||||
```
|
||||
Error: Config file not found: ~/.ccs/config.json
|
||||
```
|
||||
|
||||
**Giải pháp**: Chạy lại installer hoặc tạo config thủ công:
|
||||
```bash
|
||||
mkdir -p ~/.ccs
|
||||
echo '{"profiles":{"default":"~/.claude/settings.json"}}' > ~/.ccs/config.json
|
||||
```
|
||||
|
||||
## Nhận Trợ Giúp
|
||||
|
||||
Nếu bạn gặp các vấn đề không được đề cập ở đây:
|
||||
|
||||
1. Kiểm tra [GitHub Issues](https://github.com/kaitranntt/ccs/issues)
|
||||
2. Tạo issue mới với:
|
||||
- Hệ điều hành của bạn
|
||||
- Phiên bản CCS (`ccs --version`)
|
||||
- Thông báo lỗi chính xác
|
||||
- Các bước để tái tạo vấn đề
|
||||
|
||||
## Chế Độ Debug
|
||||
|
||||
Bật verbose output để khắc phục sự cố:
|
||||
|
||||
```bash
|
||||
ccs --verbose glm
|
||||
```
|
||||
|
||||
Điều này sẽ hiển thị:
|
||||
- File config nào đang được đọc
|
||||
- Profile nào đang được chọn
|
||||
- File settings nào đang được sử dụng
|
||||
- Lệnh chính xác đang được thực thi
|
||||
@@ -0,0 +1,157 @@
|
||||
# Hướng Dẫn Sử Dụng CCS
|
||||
|
||||
## Tại Sao Dùng CCS?
|
||||
|
||||
**Được xây dựng cho lập trình viên có cả Claude subscription và GLM Coding Plan.**
|
||||
|
||||
### Hai Tình Huống Thực Tế
|
||||
|
||||
#### 1. Chọn Model Phù Hợp Với Tác Vụ
|
||||
|
||||
**Claude Sonnet 4.5** xuất sắc trong:
|
||||
- Quyết định kiến trúc phức tạp
|
||||
- Thiết kế hệ thống và lập kế hoạch
|
||||
- Gỡ lỗi các vấn đề khó
|
||||
- Review code cần suy luận sâu
|
||||
|
||||
**GLM 4.6** hoạt động tốt cho:
|
||||
- Sửa lỗi đơn giản
|
||||
- Triển khai thẳng thắn
|
||||
- Refactoring hàng ngày
|
||||
- Viết tài liệu
|
||||
|
||||
**Với CCS**: Chuyển model dựa trên độ phức tạp của tác vụ, tối đa hóa chất lượng trong khi quản lý chi phí.
|
||||
|
||||
```bash
|
||||
ccs # Lên kế hoạch kiến trúc tính năng mới
|
||||
# Đã có kế hoạch? Triển khai với GLM:
|
||||
ccs glm # Viết code đơn giản
|
||||
```
|
||||
|
||||
#### 2. Quản Lý Rate Limit
|
||||
|
||||
Nếu bạn có cả Claude subscription và GLM Coding Plan, bạn biết sự khó khăn:
|
||||
- Claude hết rate limit giữa chừng dự án
|
||||
- Bạn phải copy thủ công config GLM vào `~/.claude/settings.json`
|
||||
- 5 phút sau, cần chuyển lại
|
||||
- Lặp lại 10 lần mỗi ngày
|
||||
|
||||
**CCS giải quyết điều này**:
|
||||
- Một lệnh để chuyển: `ccs` (mặc định) hoặc `ccs glm` (fallback)
|
||||
- Lưu cả hai config dạng profiles
|
||||
- Chuyển trong <1 giây
|
||||
- Không phải sửa file, không copy-paste, không sai sót
|
||||
|
||||
### Tính Năng
|
||||
|
||||
- Chuyển profile tức thì (Claude ↔ GLM)
|
||||
- Chuyển tất cả args của Claude CLI
|
||||
- Cài đặt thông minh: phát hiện provider hiện tại của bạn
|
||||
- Tự động tạo configs khi cài đặt
|
||||
- Không proxy, không magic—chỉ bash + jq
|
||||
|
||||
## Sử Dụng Cơ Bản
|
||||
|
||||
### Chuyển Profiles
|
||||
|
||||
```bash
|
||||
# Hoạt động trên macOS, Linux, và Windows
|
||||
ccs # Dùng Claude subscription (mặc định)
|
||||
ccs glm # Dùng GLM fallback
|
||||
```
|
||||
|
||||
**Lưu ý Windows**: Lệnh hoạt động giống nhau trong PowerShell, CMD, và Git Bash.
|
||||
|
||||
### Với Arguments
|
||||
|
||||
Tất cả args sau tên profile được chuyển trực tiếp cho Claude CLI:
|
||||
|
||||
```bash
|
||||
ccs glm --verbose
|
||||
ccs /plan "add feature"
|
||||
ccs glm /code "implement feature"
|
||||
```
|
||||
|
||||
### Lệnh Tiện Ích
|
||||
|
||||
```bash
|
||||
ccs --version # Hiển thị phiên bản CCS
|
||||
ccs --help # Hiển thị trợ giúp Claude CLI
|
||||
```
|
||||
|
||||
## Delegation Tác Vụ
|
||||
|
||||
**CCS bao gồm delegation tác vụ thông minh** qua meta-command `/ccs`:
|
||||
|
||||
```bash
|
||||
# Delegation lập kế hoạch cho GLM (tiết kiệm tokens Sonnet)
|
||||
/ccs glm /plan "add user authentication"
|
||||
|
||||
# Delegation coding cho GLM
|
||||
/ccs glm /code "implement auth endpoints"
|
||||
|
||||
# Câu hỏi nhanh với Haiku
|
||||
/ccs haiku /ask "explain this error"
|
||||
```
|
||||
|
||||
**Lợi ích**:
|
||||
- ✅ Tiết kiệm tokens bằng cách delegation tác vụ đơn giản cho model rẻ hơn
|
||||
- ✅ Dùng đúng model cho từng tác vụ tự động
|
||||
- ✅ Lệnh có thể tái sử dụng trên tất cả dự án (user-scope)
|
||||
- ✅ Tích hợp liền mạch với workflows hiện có
|
||||
|
||||
## Workflow Thực Tế
|
||||
|
||||
### Chọn Model Dựa Trên Tác Vụ
|
||||
|
||||
**Tình huống**: Xây dựng tính năng tích hợp thanh toán mới
|
||||
|
||||
```bash
|
||||
# Bước 1: Kiến trúc & Lập kế hoạch (cần trí tuệ của Claude)
|
||||
ccs
|
||||
/plan "Design payment integration with Stripe, handle webhooks, errors, retries"
|
||||
# → Claude Sonnet 4.5 suy nghĩ sâu về edge cases, bảo mật, kiến trúc
|
||||
|
||||
# Bước 2: Triển khai (coding đơn giản, dùng GLM)
|
||||
ccs glm
|
||||
/code "implement the payment webhook handler from the plan"
|
||||
# → GLM 4.6 viết code hiệu quả, tiết kiệm usage của Claude
|
||||
|
||||
# Bước 3: Code Review (cần phân tích sâu)
|
||||
ccs
|
||||
/review "check the payment handler for security issues"
|
||||
# → Claude Sonnet 4.5 phát hiện các lỗ hổng tinh vi
|
||||
|
||||
# Bước 4: Sửa Lỗi (đơn giản)
|
||||
ccs glm
|
||||
/fix "update error message formatting"
|
||||
# → GLM 4.6 xử lý các sửa lỗi hàng ngày
|
||||
```
|
||||
|
||||
**Kết quả**: Model tốt nhất cho từng tác vụ, chi phí thấp hơn, chất lượng tốt hơn.
|
||||
|
||||
### Quản Lý Rate Limit
|
||||
|
||||
```bash
|
||||
# Làm việc với refactoring phức tạp bằng Claude
|
||||
ccs
|
||||
/plan "refactor authentication system"
|
||||
|
||||
# Claude hết rate limit giữa chừng tác vụ
|
||||
# → Error: Rate limit exceeded
|
||||
|
||||
# Chuyển sang GLM ngay lập tức
|
||||
ccs glm
|
||||
# Tiếp tục làm việc không gián đoạn
|
||||
|
||||
# Rate limit reset? Chuyển lại
|
||||
ccs
|
||||
```
|
||||
|
||||
## Cách Hoạt Động
|
||||
|
||||
1. Đọc tên profile (mặc định là "default" nếu bỏ qua)
|
||||
2. Tìm đường dẫn file settings trong `~/.ccs/config.json`
|
||||
3. Thực thi `claude --settings <path> [remaining-args]`
|
||||
|
||||
Không có magic. Không sửa file. Chuyển giao thuần túy. Hoạt động giống nhau trên tất cả nền tảng.
|
||||
Reference in New Issue
Block a user