Tài liệu
GitHub Copilot CLI
Theo tài liệu của chính GitHub, quy trình BYOK của Copilot CLI chỉ cần bốn biến môi trường và hoàn toàn không cần đăng nhập GitHub. Trỏ CLI đến Kunavo để agent sử dụng số dư trả trước thay vì AI Credits — trong khi /delegate, máy chủ GitHub MCP và GitHub Code Search vẫn cần đăng nhập GitHub.
Bốn biến môi trường — COPILOT_PROVIDER_BASE_URL, COPILOT_PROVIDER_TYPE, COPILOT_PROVIDER_API_KEY và COPILOT_MODEL — chuyển Copilot CLI sang endpoint riêng của bạn, và GitHub ghi rõ BYOK không cần đăng nhập GitHub.
# Set before you start Copilot CLI. Variable names and order are GitHub's;
# COPILOT_PROVIDER_BASE_URL and COPILOT_MODEL are the two marked Required.
export COPILOT_PROVIDER_BASE_URL=https://api.kunavo.com/v1 # see the note below
export COPILOT_PROVIDER_TYPE=openai # the default, shown for clarity
export COPILOT_PROVIDER_API_KEY=sk-kn-...
export COPILOT_MODEL=claude-sonnet-5
copilot/v1 ở trên là một ví dụ minh họa, không phải quy tắc. Trang BYOK chỉ định nghĩa trường này là “URL cơ sở của endpoint API của nhà cung cấp model của bạn”, còn các ví dụ của chính GitHub đưa ra cả hai dạng: ví dụ tương thích OpenAI từ xa dùng https://api.openai.com/v1, trong khi ví dụ Ollama và Anthropic dùng origin không có đường dẫn. Trang này dùng dạng tương thích OpenAI từ xa vì đó là trường hợp của Kunavo. Nếu yêu cầu trả về 404, hậu tố đang bị lặp — hãy bỏ hậu tố và dùng https://api.kunavo.com. 401 là khóa, không phải URL, còn curl bên dưới giúp phân biệt hai mục này trước khi bạn xử lý lỗi CLI.~/.copilot/providers.json còn sót lại sẽ âm thầm ghi đè các biến được export này. Tài liệu tham khảo về thư mục cấu hình của GitHub nêu rằng nếu tệp này khai báo bất kỳ nhà cung cấp hoặc model nào, nó sẽ được ưu tiên hơn các biến COPILOT_PROVIDER_*, vốn được GitHub gọi là biến cũ — còn hướng dẫn BYOK không hề nhắc đến tệp này. Nếu CLI bỏ qua URL cơ sở bạn vừa export, hãy kiểm tra tệp đó trước. Cùng tài liệu chỉ mô tả tệp là một đối tượng JSON có các khóa providers và models, không công bố schema, nên ở đây không đưa ví dụ về tệp; để biết thêm, GitHub trỏ đến copilot help providers./delegate là các tính năng phía GitHub mà nhà cung cấp BYOK không thay thế được — GitHub ghi rõ chúng không khả dụng nếu chưa đăng nhập. Bạn có thể giữ các tính năng này bằng cách đăng nhập đồng thời với việc cấu hình nhà cung cấp.sk-kn-) và nạp tín dụng từ $10 — các lệnh gọi được thanh toán từ số dư đó và các lệnh gọi thất bại không bị tính phí. Sau đó, bảng điều khiển mở tại phần thiết lập GitHub Copilot CLI.Từng bước
- Tạo khóa tại
/app/keysrồi sao chép khóa — khóa chỉ hiển thị một lần. - Kiểm tra xem có
~/.copilot/providers.jsoncũ nào không (hoặc tệp màCOPILOT_PROVIDERS_CONFIGtrỏ đến). Nếu tệp đó khai báo nhà cung cấp hoặc model, cấu hình trong bước 3 sẽ bị ghi đè hoàn toàn. - Export
COPILOT_PROVIDER_BASE_URL,COPILOT_PROVIDER_API_KEYvàCOPILOT_MODELnhư trên. Mặc định,COPILOT_PROVIDER_TYPElàopenai, mà GitHub mô tả là hỗ trợ “mọi endpoint khác tương thích với API OpenAI Chat Completions”. - Khởi chạy
copilottừ cùng shell đó — các giá trị này được đọc lúc khởi động, vì vậy một terminal đã mở trước đó vẫn giữ các giá trị cũ. - Giao cho CLI một tác vụ đọc và chỉnh sửa tệp. Copilot CLI cần model hỗ trợ gọi công cụ và truyền phát dữ liệu; lần chạy đầu tiên kiểm tra cả hai điều này sẽ cho bạn biết nhiều hơn một lời chào.
--modelghi đèCOPILOT_MODELtrong một lần chạy nếu bạn muốn so sánh hai id.
Đã kiểm tra đối chiếu với “Dùng model LLM của riêng bạn trong GitHub Copilot CLI” của GitHub vào 21 tháng 9, 2026. Cài đặt của bên thứ ba có thể thay đổi; nếu tên trường ở đây không còn khớp với những gì bạn thấy, trang đó là nguồn có thẩm quyền, không phải trang này.
Xác minh trước khi gỡ lỗi ứng dụng khách
Một yêu cầu sẽ xác định liệu lỗi nằm ở endpoint, khóa hay tệp cấu hình. Nếu lệnh này trả về JSON, cùng base URL và khóa sẽ hoạt động trong GitHub Copilot CLI.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."Đặt model id nào vào trường
Mọi mô hình văn bản đều có thể truy cập bằng model id — danh sách đang hoạt động là GET /v1/models, còn danh mục kèm giá nằm trên trang mô hình. Mức giá tính bằng USD trên mỗi 1M token, đầu vào / đầu ra.
| ID mô hình | Kunavo vào / ra | Phù hợp ở đâu trong GitHub Copilot CLI |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | model làm việc mặc định cho các phiên chỉnh sửa tệp |
claude-opus-5 | $3.50 / $17.50 | lập kế hoạch thay đổi mà nếu sai sẽ tốn kém để sửa |
claude-haiku-4-5 | $0.70 / $3.50 | các lượt xử lý giá rẻ — phân loại, tóm tắt, vòng lặp chạy cả ngày |
gpt-5-6-sol | $2.00 / $12.00 | ý kiến thứ hai từ một họ model khác, dùng cùng khóa và URL cơ sở |
Lựa chọn khác: COPILOT_PROVIDER_TYPE=anthropic
GitHub ghi rõ có ba loại nhà cung cấp, và Kunavo hỗ trợ hai trong số các định dạng truyền tải này: /v1/chat/completions dành cho openai và /v1/messages dành cho anthropic. Ví dụ Anthropic trên trang GitHub gồm bốn lệnh export, với URL cơ sở là origin thuần https://api.anthropic.com:
COPILOT_PROVIDER_TYPE=anthropicCOPILOT_PROVIDER_BASE_URL— theo cấu trúc ví dụ của GitHub, hãy dùnghttps://api.kunavo.comkhông có hậu tố, vì route riêng của Anthropic nằm tại/v1/messagesbên dưới origin đó và Kunavo cũng dùng cấu trúc này. Lưu ý tương tự như trên: GitHub đưa ra một ví dụ, không phải quy tắc.COPILOT_PROVIDER_API_KEY— khóask-kn-của bạn. Bề mặt Messages của Kunavo chấp nhận khóa này trongx-api-keyhoặcAuthorization: Bearer, vì vậy CLI chọn header nào thì khóa cũng được nhận diện.COPILOT_MODEL— id mà nhà cung cấp của bạn yêu cầu. Ví dụ của GitHub dùng cách viết kiểu Anthropic có dấu gạch nối, trong khi danh sách model được hỗ trợ của chính GitHub ghi cùng các họ model với dấu chấm; với BYOK, id được gửi đến endpoint của bạn, vì vậy hãy dùng cách viết trong bảng ở trên.
Vì sao trang này ưu tiên loại openai: tài liệu của GitHub không cho biết liệu luồng BYOK của Anthropic có chuyển tiếp cache_control, anthropic-beta hay một anthropic-version cụ thể nào hay không. Điều này ảnh hưởng đến hóa đơn khi ngữ cảnh lặp lại — xem bộ nhớ đệm prompt — và trang này không thể giả định một câu trả lời chưa được tài liệu hóa. Loại openai không có câu hỏi bỏ ngỏ như vậy, nên đây là loại có khối cấu hình hoàn chỉnh.
Câu hỏi thường gặp
Làm thế nào để trỏ GitHub Copilot CLI đến một endpoint API tùy chỉnh?
Đặt các biến môi trường trước khi khởi chạy CLI. Trang BYOK của GitHub đánh dấu hai biến bắt buộc — COPILOT_PROVIDER_BASE_URL và COPILOT_MODEL — đồng thời yêu cầu COPILOT_PROVIDER_API_KEY đối với mọi endpoint cần xác thực. COPILOT_PROVIDER_TYPE mặc định là openai; GitHub mô tả giá trị này là bao gồm OpenAI, Ollama, vLLM, Foundry Local và mọi endpoint khác tương thích với API OpenAI Chat Completions; các giá trị còn lại là azure và anthropic. Có một điểm cần lưu ý mà GitHub đề cập ở nơi khác: nếu ~/.copilot/providers.json khai báo bất kỳ nhà cung cấp hoặc model nào, tệp này sẽ được ưu tiên hơn tất cả các biến đó.
URL cơ sở của Copilot CLI có cần kết thúc bằng /v1 không?
Tài liệu của GitHub chưa làm rõ điều này. Trường chỉ được định nghĩa là "URL cơ sở của endpoint API của nhà cung cấp model của bạn", còn các ví dụ trên trang này đưa ra cả hai dạng: ví dụ tương thích OpenAI từ xa là https://api.openai.com/v1, trong khi ví dụ Ollama và Anthropic dùng origin thuần. Với endpoint tương thích OpenAI, hãy bắt đầu bằng dạng GitHub đưa ra cho trường hợp này — https://api.kunavo.com/v1 — và nếu yêu cầu gặp lỗi 404 thay vì 401, hậu tố đang bị lặp, hãy bỏ nó đi. Lỗi 404 là do URL, còn 401 là do khóa; lệnh curl trực tiếp đến cùng URL cơ sở sẽ giúp phân biệt trước khi bạn xử lý lỗi CLI.
BYOK của GitHub Copilot CLI có yêu cầu tài khoản GitHub không?
Không. Tài liệu xác thực của GitHub nêu rằng khi Copilot CLI được cấu hình với khóa API của nhà cung cấp LLM riêng, không cần xác thực GitHub và CLI kết nối trực tiếp đến nhà cung cấp đã cấu hình. Khi đó, ba tính năng không khả dụng là /delegate, máy chủ GitHub MCP và GitHub Code Search. Bạn cũng có thể đăng nhập đồng thời với việc cấu hình nhà cung cấp để sử dụng cả hai. GitHub còn nêu biến COPILOT_OFFLINE=true dành cho môi trường mà CLI không được liên hệ với máy chủ GitHub — tuy nhiên, thiết lập này chỉ cô lập lưu lượng mạng nếu nhà cung cấp ở cục bộ, vì URL cơ sở từ xa vẫn nhận được prompt và ngữ cảnh mã của bạn.
Kunavo đã kiểm thử GitHub Copilot CLI với endpoint của mình chưa?
Chưa. Cấu hình trên trang này được lấy từ tài liệu BYOK chính thức của GitHub vào ngày ghi bên dưới; không có nội dung nào ở đây là kết quả chạy thực tế — chưa có phiên nào, lượt xử lý dạng luồng nào, lượt trao đổi công cụ nào; điều tương tự cũng đúng với mọi client khác được ghi lại ở đây. GitHub yêu cầu model BYOK hỗ trợ gọi công cụ và truyền phát dữ liệu, nếu không sẽ trả về lỗi. Vì vậy, cách kiểm tra trung thực đầu tiên là tự chạy một tác vụ đọc và chỉnh sửa tệp, rồi xem khoản phí được ghi nhận và cách CLI hoạt động làm bằng chứng, thay vì dựa vào trang này.