github / github/copilot-cli

BYOK support for GitHub Copilot CLI in ACP server mode

Aberta
#4,037 0 comentários 3 reações 0 responsáveis Ver no GitHub
area:authentication area:models
Linguagem predominante
Shell
Estrelas
11.2k
Forks
1.9k
Merge médio
14h 16min
PRs com merge (30d)
6

Descrição

### Describe the feature or problem you'd like to solve

Provide the opportunity to use your own LLM models in GitHub Copilot CLI in ACP server mode

### Proposed solution

At JetBrains, we're integrating the Copilot agent into our IDEs via the ACP (Agent Client Protocol). Currently, when Copilot CLI is run in ACP mode, GitHub login is the only supported authentication method:
```
"authMethods": [
{
"id": "copilot-login",
"name": "Log in with Copilot CLI",
"description": "Run `copilot login` in the terminal",
"_meta": {
"terminal-auth": {
"command": "/opt/homebrew/Caskroom/copilot-cli/1.0.63/copilot",
"args": [
"login"
],
"label": "Copilot Login"
}
}
}
]
```
Copilot CLI does support [BYOK](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-byok-models) when run normally from the terminal, using env vars like:
```
export COPILOT_PROVIDER_BASE_URL=https://api.openai.com/v1
export COPILOT_PROVIDER_API_KEY=YOUR-OPENAI-API-KEY
export COPILOT_MODEL=YOUR-MODEL-NAME
```
However, this doesn't appear to work in ACP mode.
Without GitHub login, with the BYOK env vars set, session/new fails:
```
{
"code": -32000,
"message": "Authentication required"
}
```
With GitHub login, session/new succeeds, but the BYOK env vars are ignored — the session reports Copilot's default model instead of the configured one:
```
"currentModelId": "gpt-5.4"
```
So as it stands, there's no way to use BYOK through ACP: it's either blocked by the auth requirement, or silently overridden once authenticated.

Could you either:
* Add a BYOK-based auth method to the ACP authMethods list (e.g. an entry that validates/uses COPILOT_PROVIDER_BASE_URL, COPILOT_PROVIDER_API_KEY, and COPILOT_MODEL instead of requiring copilot login), or
* Skip the GitHub-login requirement in ACP mode when valid BYOK env vars are present, and ensure the session actually honors the configured provider/model.

This would let ACP clients (like our IDE integration) offer BYOK as a first-class option, matching what's already possible via the CLI directly.
Happy to share our test script or logs if that's useful for reproducing this on your end.

### Example prompts or workflows

- **Anthropic subscription** — Customer has a paid Anthropic subscription and wants to use Copilot in the IDE with BYOK, using their existing Claude API access instead of paying for a separate Copilot seat.
- **Local model** — Customer has a local model (e.g. via Ollama, LM Studio, or self-hosted) and wants to use Copilot in the IDE with the model's local address set, for privacy, offline work, or avoiding API costs.
- **Corporate OpenAI-compatible model** — Customer has a corporate OpenAI-compatible model (e.g. an internal Azure OpenAI or self-hosted gateway) and wants to use Copilot in the IDE with BYOK and a special model/base URL set, to meet compliance or data-residency requirements.

### Additional context

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece reproduzindo o fluxo ACP session/new com COPILOT_PROVIDER_BASE_URL, COPILOT_PROVIDER_API_KEY e COPILOT_MODEL definidos e, em seguida, inspecione como authMethods e o currentModelId reportado são produzidos. O trabalho estará concluído quando o ACP aceitar credenciais BYOK válidas sem exigir o login no GitHub e usar o provedor e o modelo configurados.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
github, shell
Domínio
authentication, cli
Tipo de issue
Funcionalidade
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.