Tài liệu
CC Switch
CC Switch chuyển đổi Claude Code và Codex giữa các nhà cung cấp từ ứng dụng máy tính. Thêm Kunavo dưới dạng Cấu hình tùy chỉnh — gốc dịch vụ, xác thực Bearer, Anthropic Messages nguyên bản, không định tuyến cục bộ.
Ba trường và hai danh sách thả xuống. https://api.kunavo.com làm điểm cuối, khóa sk-kn-… của bạn và — phần mà hầu hết hướng dẫn bỏ qua — để API Format ở Anthropic Messages (Native) và Auth Field ở ANTHROPIC_AUTH_TOKEN. Kunavo hỗ trợ API Messages nguyên bản, vì vậy phía Claude Code không cần định tuyến cục bộ.
Provider Name Kunavo
API Key sk-kn-...
API Endpoint https://api.kunavo.com <- service root, no /v1, no trailing slash
Advanced Options
API Format Anthropic Messages (Native) <- the default; do NOT switch
Auth Field ANTHROPIC_AUTH_TOKEN (Default)/v1, không có dấu gạch chéo ở cuối. Các ứng dụng kiểu Anthropic tự nối thêm /v1/messages — vì vậy trường này khác với mọi ví dụ OpenAI, nơi /v1 nằm trong URL cơ sở. Xem giải thích đầy đủ trên trang ANTHROPIC_BASE_URL.Từng bước (thẻ Claude Code)
- Tạo khóa tại
/app/keysrồi sao chép khóa — khóa chỉ hiển thị một lần. - Mở CC Switch ở thẻ cấp cao nhất
Claude Coderồi nhấp nút dấu cộng. Giữ nguyênCustom Configurationmặc định thay vì chọn cấu hình có sẵn. - Điền
Provider Name,API Keyvà đặtAPI Endpoint=https://api.kunavo.com. - Mở rộng
Advanced Optionsvà xác nhậnAPI FormatlàAnthropic Messages (Native)vàAuth FieldlàANTHROPIC_AUTH_TOKEN (Default). Cả hai đều là mặc định; mục đích là kiểm tra, không phải thay đổi. - Lưu, rồi
Activate. Thẻ này không nên hiển thị dấuNeeds Routing— dấu đó chỉ xuất hiện ở những nhà cung cấp cần chuyển đổi giao thức.
Vì sao không có dấu “Cần định tuyến”
Tuyến cục bộ của CC Switch được dùng để kết nối các giao thức. Claude Code gửi yêu cầu Anthropic Messages đến /v1/messages; một cổng chỉ cung cấp OpenAI Chat Completions hoặc Responses API không thể phản hồi yêu cầu đó, nên tuyến này chuyển đổi yêu cầu khi gửi đi và chuyển đổi phản hồi khi nhận về. Quá trình chuyển đổi định dạng lại các sự kiện truyền trực tuyến, lệnh gọi công cụ và cấu hình suy luận — cách này hoạt động, nhưng tạo thêm một thành phần giữa trình soạn thảo và mô hình.
Kunavo cung cấp trực tiếp POST /v1/messages, vì vậy phía Claude Code không cần chuyển đổi: nhà cung cấp vẫn là Anthropic Messages (Native) và tuyến hoàn toàn không tham gia. Kunavo cũng cung cấp POST /v1/chat/completions và POST /v1/responses bằng cùng một khóa, nhờ đó có thể thực hiện chiều Codex bên dưới.
| Thẻ CC Switch | Đặt định dạng thành | Định tuyến cục bộ |
|---|---|---|
| Claude Code | Anthropic Messages (Native) | Không cần |
| Codex | Anthropic Messages (routing required) | Bắt buộc — tuyến chuyển đổi /responses thành /v1/messages |
Chạy các mô hình Claude bên trong Codex
Đây là chiều mà các hướng dẫn dành cho nhà cung cấp khác không đề cập. Codex sử dụng OpenAI Responses API, vì vậy nếu trỏ trực tiếp vào điểm cuối /v1/messages sẽ nhận lỗi 404 — CC Switch xử lý việc này bằng cách giữ Codex trên tuyến cục bộ và chuyển đổi giao thức. Trong thẻ Codex không có cấu hình Anthropic có sẵn, vì vậy đây cũng là một Custom Configuration:
Provider Name Kunavo
API Key sk-kn-...
API Request URL https://api.kunavo.com
Default Model claude-sonnet-5
Advanced Options
Upstream Format Anthropic Messages (routing required)sk-kn-… cung cấp cả giao diện Messages lẫn Responses, và không giao diện nào có danh sách cho phép ứng dụng khách. Nếu muốn bỏ qua hoàn toàn bước chuyển đổi, Codex CLI cũng có thể trỏ thẳng đến giao diện /v1/responses nguyên bản của Kunavo; hướng dẫn nằm trên trang Codex CLI.Ánh xạ mô hình
CC Switch ánh xạ ba cấp của Claude Code sang các ID mô hình thực tế. Điền cả ba cấp cùng Default fallback model — nếu không khớp, yêu cầu sẽ được chuyển tiếp với tên Claude ban đầu và gặp lỗi ở dịch vụ thượng nguồn. Mức giá tính bằng USD cho mỗi 1M token, đầu vào / đầu ra, được đọc trực tiếp từ danh mục.
| Cấp | ID mô hình | Kunavo vào / ra | Tại sao |
|---|---|---|---|
| Haiku | claude-haiku-4-5 | $0.70 / $3.50 | Claude Code định tuyến các tác vụ phụ chạy nền đến đây — cấp rẻ nhất là lựa chọn phù hợp |
| Sonnet | claude-sonnet-5 | $1.40 / $7.00 | Mặc định phù hợp cho việc chỉnh sửa |
| Opus | claude-opus-5-5 | $2.80 / $14.00 | Các thay đổi ở cấp kiến trúc |
1M trừ khi cấp này thực sự hỗ trợ cửa sổ ngữ cảnh một triệu token. Khai báo ngữ cảnh mà dịch vụ thượng nguồn không có không làm tăng giới hạn — chỉ khiến lỗi xuất hiện ở giữa một cuộc trò chuyện dài.Xác minh trước khi gỡ lỗi ứng dụng
Một cặp yêu cầu là đủ để xác định lỗi nằm ở khóa, điểm cuối hay CC Switch. Nếu cả hai đều trả về 200, mọi lỗi còn lại đều do một trường trong biểu mẫu — gần như luôn là Auth Field hoặc /v1 không nên có trong điểm cuối.
# Settles whether a failure is the key, the endpoint, or CC Switch.
# 200 + a JSON list of model ids means the same key works in the app.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."
# The Anthropic face, which is the one the Claude Code tab actually calls.
curl -sS https://api.kunavo.com/v1/messages \
-H "Authorization: Bearer sk-kn-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-haiku-4-5","max_tokens":16,
"messages":[{"role":"user","content":"ping"}]}'Tài liệu tham khảo
CC Switch là phần mềm mã nguồn mở tại github.com/farion1231/cc-switch. Tên trường và cách hoạt động ở trên lấy từ hướng dẫn chính thức của ứng dụng — hướng dẫn định tuyến Claude Code và hướng dẫn định tuyến Codex; cả hai đều nêu áp dụng cho phiên bản 3.17.0 trở lên. Biểu mẫu ở các phiên bản cũ khác đôi chút; hãy kiểm tra mục Giới thiệu của ứng dụng nếu thiếu trường được nêu ở đây. Phía Kunavo được mô tả trong API Messages, chat completions và trang tích hợp.
Câu hỏi thường gặp
Làm cách nào để thêm nhà cung cấp tùy chỉnh trong CC Switch?
Trên thẻ Claude Code, nhấp nút dấu cộng, giữ tùy chọn mặc định Cấu hình tùy chỉnh và điền Tên nhà cung cấp, Khóa API cùng Điểm cuối API. Điểm cuối API là URL gốc dịch vụ của cổng kết nối, không có dấu gạch chéo ở cuối — với Kunavo, đó là https://api.kunavo.com, không có /v1. Sau đó mở Tùy chọn nâng cao và kiểm tra hai trường: Định dạng API và Trường xác thực. Hai trường này quyết định nhà cung cấp có hoạt động được hay không, và cũng là hai trường mà hầu hết hướng dẫn thiết lập bỏ qua.
Kunavo có cần bật định tuyến cục bộ của CC Switch không?
Không. Định tuyến cục bộ dùng để chuyển đổi giữa các giao thức — nó chuyển yêu cầu /v1/messages của Claude Code thành OpenAI Responses hoặc Chat Completions khi dịch vụ thượng nguồn chỉ hỗ trợ các giao thức đó. Kunavo cung cấp trực tiếp Anthropic Messages API tại https://api.kunavo.com/v1/messages, nên API Format giữ nguyên giá trị mặc định Anthropic Messages (Native), thẻ nhà cung cấp không bao giờ hiển thị dấu Needs Routing và yêu cầu đi thẳng đến dịch vụ thượng nguồn. Cổng kết nối chỉ cung cấp Chat Completions phải chạy qua tuyến cục bộ cho mọi yêu cầu.
Tại sao Điểm cuối API không có /v1 trong khi các ví dụ OpenAI lại có?
Vì hai quy ước này khác nhau một cách có chủ đích. Máy khách theo kiểu Anthropic tự nối thêm /v1/messages, nên chúng chỉ cần URL gốc — https://api.kunavo.com. OpenAI SDK yêu cầu /v1 đã có sẵn trong base_url, nên chúng cần https://api.kunavo.com/v1. Thẻ Claude Code của CC Switch thuộc phía Anthropic, nên bỏ /v1. Nhầm lẫn điều này là lỗi thiết lập phổ biến nhất trên mọi máy khách; trang ANTHROPIC_BASE_URL giải thích cả hai dạng.
Tôi có nên đặt Trường xác thực thành ANTHROPIC_API_KEY không?
Không — hãy giữ giá trị mặc định ANTHROPIC_AUTH_TOKEN. Giá trị mặc định đó khiến CC Switch gửi Authorization: Bearer <key>. Chọn ANTHROPIC_API_KEY khiến nó gửi tiêu đề x-api-key thay thế; Kunavo đọc tiêu đề này cũng tốt như tiêu đề kia, nên vấn đề không nằm ở tiêu đề mà ở việc phê duyệt. Claude Code yêu cầu phê duyệt một lần trước khi sử dụng ANTHROPIC_API_KEY trong phiên tương tác, và khóa bị từ chối tại đó sẽ bị bỏ qua sau này — một lỗi xác thực trông như khóa sai dù khóa vẫn hợp lệ.
Tôi có thể chạy các mô hình Claude trong Codex thông qua CC Switch không?
Có, và đây là phần mà hầu hết hướng dẫn về nhà cung cấp bỏ qua. Trên thẻ Codex, thêm Cấu hình tùy chỉnh với URL yêu cầu API là https://api.kunavo.com và Mô hình mặc định như claude-sonnet-5, rồi đặt Định dạng thượng nguồn thành Anthropic Messages (cần định tuyến) trong Tùy chọn nâng cao. Phải bật định tuyến cục bộ cho chiều này vì Codex dùng Responses API và tuyến định tuyến viết lại /responses thành /v1/messages. Hướng dẫn của chính CC Switch cảnh báo rằng một số nhà cung cấp giới hạn Claude API của họ chỉ cho máy khách Claude Code và các khóa như vậy không hoạt động qua Codex — Kunavo không áp dụng giới hạn đó: cùng một khóa sk-kn- phục vụ cả hai giao diện.
Tôi nên điền những ID mô hình nào vào ánh xạ mô hình của CC Switch?
Sử dụng ID danh mục của Kunavo. Phân bổ mặc định phù hợp là claude-haiku-4-5 ($0.70 / $3.50 trên mỗi 1M token) ở tầng Haiku, vì Claude Code gửi các tác vụ nền đến đó; claude-sonnet-5 ($1.40 / $7.00) ở Sonnet; và claude-opus-5-5 ($2.80 / $14.00) ở Opus. Luôn điền cả mô hình dự phòng mặc định — nếu để trống, CC Switch sẽ chuyển tiếp các yêu cầu không khớp dưới tên Claude ban đầu, và các yêu cầu đó sẽ gặp lỗi ở upstream. Danh sách hiện tại có tại GET /v1/models.
CC Switch lưu khóa API của tôi ở đâu?
Trong kho lưu trữ riêng của nó, không phải trong cấu hình của máy khách. CC Switch lưu các nhà cung cấp trong ~/.cc-switch/cc-switch.db và khi định tuyến cục bộ tiếp quản máy khách, nó chỉ ghi địa chỉ tuyến cục bộ vào ~/.claude/settings.json với một giá trị giữ chỗ trong mục xác thực — khóa thật được tuyến định tuyến chèn vào khi chuyển tiếp. Đây là đặc tính của CC Switch, không phải của Kunavo; điều này đáng biết vì nó có nghĩa là khóa bạn dán không phải khóa nằm trong tệp mà bạn có thể sắp đưa vào một commit.