Tài liệu

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.

shell mà bạn khởi động copilot từ đó
# 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
GitHub không nêu Copilot CLI sẽ nối đường dẫn nào, vì vậy /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.
Tệp ~/.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.
Cấu hình này được trích từ tài liệu chính thức của GitHub vào ngày bên dưới. Kunavo chưa chạy Copilot CLI với endpoint của mình — 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 trong nhóm này. Trang hướng dẫn thiết lập đã công bố không phải là kết quả kiểm thử. 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 CLI sẽ trả về lỗi. Vì vậy, tác vụ đầu tiên bạn giao nên thao tác với một tệp thay vì chỉ chào hỏi.
Kunavo không cung cấp model embedding, chuyển văn bản thành giọng nói hoặc chuyển giọng nói thành văn bản, vì vậy endpoint này chỉ xử lý các lượt chat. GitHub Code Search, máy chủ GitHub MCP và /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.
Chưa có khóa? Tạo tài khoản Kunavo, tạo khóa (bắt đầu bằng 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

  1. Tạo khóa tại /app/keys rồi sao chép khóa — khóa chỉ hiển thị một lần.
  2. Kiểm tra xem có ~/.copilot/providers.json cũ nào không (hoặc tệp mà COPILOT_PROVIDERS_CONFIG trỏ đế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.
  3. Export COPILOT_PROVIDER_BASE_URL, COPILOT_PROVIDER_API_KEY và COPILOT_MODEL như trên. Mặc định, COPILOT_PROVIDER_TYPE là openai, mà GitHub mô tả là hỗ trợ “mọi endpoint khác tương thích với API OpenAI Chat Completions”.
  4. Khởi chạy copilot từ 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ũ.
  5. 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. --model ghi đè COPILOT_MODEL trong 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.

Đây là phiên bản ngắn. Hướng dẫn đầy đủ — lựa chọn mô hình, chi phí của một phiên thực tế và các trường hợp lỗi — nằm trong Copilot CLI và Claude Code — ranh giới BYOK và hai khoản chi phí.

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ìnhKunavo vào / raPhù hợp ở đâu trong GitHub Copilot CLI
claude-sonnet-5$1.40 / $7.00model làm việc mặc định cho các phiên chỉnh sửa tệp
claude-opus-5$3.50 / $17.50lập kế hoạch thay đổi mà nếu sai sẽ tốn kém để sửa
claude-haiku-4-5$0.70 / $3.50cá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ở
Thanh toán theo token từ số dư trả trước, không có phí hàng tháng — xem trang Thanh toán. Với ngữ cảnh lặp lại — chiếm phần lớn dữ liệu mà trình chỉnh sửa hoặc ứng dụng trò chuyện gửi đi — bộ nhớ đệm prompt ảnh hưởng đến hóa đơn nhiều hơn lựa chọn mô hình.

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:

  1. COPILOT_PROVIDER_TYPE=anthropic
  2. COPILOT_PROVIDER_BASE_URL — theo cấu trúc ví dụ của GitHub, hãy dùng https://api.kunavo.com không có hậu tố, vì route riêng của Anthropic nằm tại /v1/messages bê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.
  3. COPILOT_PROVIDER_API_KEY — khóa sk-kn- của bạn. Bề mặt Messages của Kunavo chấp nhận khóa này trong x-api-key hoặc Authorization: Bearer, vì vậy CLI chọn header nào thì khóa cũng được nhận diện.
  4. 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.