Skip to main content

referência de comando da CLI GitHub Copilot

Encontre comandos e atalhos de teclado para ajudá-lo a usar Copilot CLI com eficiência.

Comandos de linha de comando

CommandPropósito
copilotInicie a interface interativa do usuário.
copilot appAbra o GitHub Copilot app no diretório atual, criando um link direto para uma nova sessão. Recorre à abertura da página de download do aplicativo em um navegador caso o deep link não possa ser processado ou exibe a URL para abertura manual caso não haja navegador disponível.
copilot completion SHELLImprima um script para o shell escolhido que pode ser usado para ativar a conclusão automática de tabulação para Copilot CLI. Shells com suporte: bash, , zsh. fish Consulte Como usar copilot completion.
copilot help [TOPIC]Exibir informações de ajuda. Os tópicos de ajuda incluem: billing, , config, commands, environment, logging, monitoring, permissions, , providerse sandbox.
copilot initInicialize Copilot instruções personalizadas para este repositório.
copilot login [OPTION]Autenticar com Copilot via OAuth. Veja copilot login as opções.
copilot mcpGerencie as configurações do servidor MCP na linha de comando.
copilot pluginGerenciar plug-ins e mercados de plug-ins.
copilot plugins listInspecione de forma não interativa todos os plug-ins, servidor MCP, habilidade, fonte de instrução e servidor de idiomas descobertos para o diretório de trabalho atual — os mesmos recursos que o painel de plug-ins da CLI mostra. Consulte Como usar copilot plugins list.
copilot skillGerencie as habilidades do agente na linha de comando (listar, adicionar e remover habilidades). Consulte Adicionando habilidades de agente para GitHub Copilot CLI.
copilot updateBaixe e instale a versão mais recente.
copilot versionExibir informações de versão e verificar se há atualizações.

copilot login opções

OpçãoPropósito
--host HOST
GitHub URL do host (padrão: https://github.com). Use isso para autenticar com uma GitHub Enterprise Cloud instância que usa residência de dados (por exemplo, https://example.ghe.com).
--web-flowForce o fluxo de autenticação baseado em navegador (Web), que é o padrão em um terminal local.
--device-codeForce o fluxo de código do dispositivo OAuth, que é o padrão em um terminal remoto ou em CI.
--with-tokenLeia um token de autenticação da entrada padrão em vez de iniciar um fluxo OAuth. Solicita entrada sem ecoar a entrada quando a entrada padrão é um terminal. Conflitos com --web-flow e --device-code.

Em um terminal local ou em um processo local não TTY que ainda pode acessar um navegador (por exemplo, um sistema operacional da área de trabalho ou Linux com um sinal de exibição ou navegador), o modo de autenticação padrão é um fluxo da Web baseado em navegador: a CLI abre seu navegador para autorizar e captura o resultado em um retorno de chamada de loopback local. Em um terminal remoto (por exemplo, GitHub CodespacesSSH ou um contêiner de desenvolvimento) ou em CI, a CLI usa como padrão o fluxo de código do dispositivo OAuth, já que o navegador normalmente não pode acessar a porta de loopback. Use --web-flow ou --device-code para substituir o fluxo selecionado automaticamente.

Após a conclusão, um token de autenticação é armazenado com segurança no repositório de credenciais do sistema. Se um repositório de credenciais não for encontrado, o token será armazenado em um arquivo de configuração em texto simples em ~/.copilot/ (ou no diretório especificado por COPILOT_HOME, se definido).

Como alternativa, Copilot CLI usará um token de autenticação encontrado em variáveis de ambiente. Os seguintes são verificados em ordem de precedência: COPILOT_GITHUB_TOKEN, , GH_TOKEN. GITHUB_TOKEN Esse método é mais adequado para uso sem cabeça, como automação.

Os tipos de token compatíveis incluem fine-grained personal access tokens (PATs v2) com a permissão "Solicitações do Copilot", tokens OAuth do aplicativo CLI Copilot e tokens OAuth do aplicativo GitHub CLI (gh). Clássicos personal access tokens (ghp_) não são suportados.

Exemplos:

# Authenticate with github.com
copilot login

# Authenticate with GitHub Enterprise Cloud (data residency)
copilot login --host https://example.ghe.com

# Force the device code flow, for example on a remote terminal
copilot login --device-code

# Force the browser (web) flow, for example on a local terminal
copilot login --web-flow

# Read a token from standard input, bypassing the OAuth flow entirely
copilot login --with-token < mytoken.txt

# Use a fine-grained PAT via environment variable
COPILOT_GITHUB_TOKEN=github_pat_... copilot

Usando copilot completion

O comando copilot completion SHELL gera um script para o shell especificado (bash, zsh ou fish).

Ao executar este script (ou gravá-lo no diretório de autocompletar do seu shell), você pode habilitar o autocompletar com a tecla Tab no seu terminal para subcomandos copilot, opções de comando e valores conhecidos para opções de comando.

Exemplos de uso

Bash (somente sessão atual):

Bash
source <(copilot completion bash)

Bash (persistente, Linux):

Bash
copilot completion bash | sudo tee /etc/bash_completion.d/copilot

Zsh: grave a saída em um diretório no seu $fpath. Reinicie o shell depois de executar este comando:

Shell
copilot completion zsh > "${fpath[1]}/_copilot"

Peixe:

Shell
copilot completion fish > ~/.config/fish/completions/copilot.fish

Usando copilot plugins list

Execute copilot plugins list para inspecionar cada plug-in, servidor MCP, habilidade, fonte de instrução e servidor de idioma descobertos para o diretório de trabalho atual. A saída é agrupada por categoria e, em seguida, por escopo de configuração (usuário, repositório, organização, fornecido por plug-in, integrado ou desconhecido).

# List everything for the current workspace
copilot plugins list

# Only MCP servers and skills
copilot plugins list --kind mcp --kind skill

# Only user-scoped resources, as JSON
copilot plugins list --scope user --json
OpçãoDescrição
--kind KINDSFiltrar por tipo. Repetível ou separado por vírgula: mcp, , skill, instruction, , plugin. lsp
--scope SCOPESFiltrar por escopo de configuração. Repetível ou separado por vírgula.
--jsonEmita JSON legível por computador em vez de texto agrupado.
--config-dir=DIRECTORYCaminho para o diretório de configuração. Essa opção foi preterida. Use COPILOT_HOME em seu lugar.

Agentes personalizados e hooks restritos à sessão não são abrangidos por copilot plugins list; ambos exigem uma sessão ativa.

copilot plugins enable / copilot plugins disable

Habilite ou desabilite um plug-in, um servidor MCP ou uma habilidade por nome. A alteração persiste na configuração e se aplica a sessões futuras.

# Disable an MCP server
copilot plugins disable github --mcp

# Enable a skill
copilot plugins enable my-skill --skill

# Enable a plugin (default kind)
copilot plugins enable spark@copilot-plugins
OpçãoDescrição
--pluginSelecionar o plugin padrão.
--mcpDirecione um servidor MCP.
--skillSelecione uma habilidade.
--config-dir=DIRECTORYCaminho para o diretório de configuração. Essa opção foi preterida. Use COPILOT_HOME em seu lugar.

As instruções são válidas apenas para a sessão atual e não podem ser ativadas ou desativadas com esses comandos. Servidores de linguagem, agentes e ganchos são gerenciados em outro lugar.

copilot plugins remove

Desinstale um plug-in, remova um servidor MCP ou exclua uma habilidade por nome.

# Remove an MCP server
copilot plugins remove github --mcp

# Delete a personal or project skill
copilot plugins remove my-skill --skill

# Uninstall a plugin (default kind)
copilot plugins remove spark@copilot-plugins
OpçãoDescrição
--pluginRemova um plug-in (padrão).
--mcpRemova um servidor MCP.
--skillRemova uma habilidade pessoal ou de projeto.
--config-dir=DIRECTORYCaminho para o diretório de configuração. Essa opção foi preterida. Use COPILOT_HOME em seu lugar.

Com --skill, passe um nome de habilidade ou o caminho para um diretório de habilidades personalizado que você adicionou. Um nome de habilidade exclui os arquivos dessa habilidade; um caminho de diretório personalizado cancela apenas o registro do diretório e deixa seus arquivos em disco. Somente as habilidades pessoais e de projeto que você adicionou podem ser excluídas– as habilidades fornecidas por um plug-in ou pelo conjunto de buildin não podem ser removidas dessa forma (desabilitá-las em vez disso). As fontes de instrução são descobertas do disco e não podem ser removidas aqui.

Atalhos globais na interface interativa

AtalhoPropósito
@ FILENAMEInclua o conteúdo do arquivo no contexto.
# NUMBERInclua um problema ou solicitação de pull GitHub no contexto.
! COMMANDExecute um comando no shell local, ignorando Copilot. Insira ! sozinho em um prompt vazio para entrar no modo shell para executar vários comandos de shell em sequência. Pressione Esc ou Ctrl+C em um prompt vazio para sair do modo shell.
$Digite um único $ no prompt e pressione Enter para transferir o controle do terminal para um shell interativo real ($SHELL no Unix, %COMSPEC% no Windows) com raiz no diretório de trabalho da sessão. Ao contrário do ! modo shell, isso suspende totalmente a interface do usuário da CLI, portanto, o controle de trabalho, os aplicativos de tela inteira, a conclusão da guia e as cores funcionam nativamente. Saia do shell (exit, ou Ctrl+D em sistemas Unix) para retornar à CLI. Só é ativada para uma sessão local, confiável e ociosa em um TTY real. Pode ser desabilitado nas configurações gerenciadas pela empresa. Habilitado por padrão. Desative-o com a configuração shellShortcut—consulte Diretório de configuração do GitHub Copilot CLI.
?Abra ajuda rápida (em um prompt vazio). Pressione novamente para fechar e inserir o literal ?.
EscCancele a operação atual. Pressione duas vezes para interromper a curva em execução ou para interromper agentes em segundo plano quando o agente principal estiver ocioso.
Ctrl+CCancelar a operação/limpar a entrada. Pressione duas vezes para sair.
Ctrl+DDesligamento.
CTRL+GEdite o prompt em um editor externo ($EDITOR).
Ctrl+LLimpar a tela.
Ctrl+Enter ou Ctrl+QColoca na fila uma mensagem para enviar enquanto o agente está ocupado.
Ctrl+RPesquisa inversa por meio do histórico de comandos.
Ctrl+EspaçoAtivar ou desativar o ditado de voz (alias para Ctrl+X em seguida v). Mantenha o espaço para gravar em vez de alternar.
Ctrl+VCole o conteúdo da área de transferência como anexo.
Alt+VCole a imagem da área de transferência como anexo.
Ctrl+X , em seguida, /Depois de começar a digitar um prompt, isso permite que você execute um comando de barra , por exemplo, se você quiser alterar o modelo sem precisar digitar novamente o prompt.
Ctrl+X , em seguida, eEdite o prompt em um editor externo ($EDITOR).
Ctrl+X , em seguida, bEnvie o comando shell ou a tarefa em execução para o segundo plano.
Ctrl+X , em seguida, oAbra o link mais recente da linha do tempo.
Ctrl+X , em seguida, vAtivar ou desativar o ditado por voz.
Ctrl+ZSuspenda o processo em segundo plano (Unix).
Shift+Enter ou Option+Enter (Mac) / Alt+Enter (Windows/Linux)Insira uma nova linha na entrada.
Shift+TabCiclo entre o modo padrão, plano e piloto automático.

Em sessões locais, você pode enfileirar prompts, comandos de shell e comandos de barra compatíveis para serem executados em ordem após a conclusão da tarefa atual. Pressione Ctrl+Q para enfileirar a entrada atual enquanto o agente está em execução. As entradas na fila exibem um rótulo "pendente" e podem ser canceladas individualmente antes de serem executadas.

Atalhos de linha do tempo na interface interativa

AtalhoPropósito
Ctrl+FAbra a pesquisa de linha do tempo.
Ctrl+OEmbora não haja nada na entrada do prompt, isso expande os itens recentes na linha do tempo de resposta do Copilot para mostrar mais detalhes.
Ctrl+EEmbora não haja nada na entrada do prompt, isso expande todos os itens na linha do tempo de resposta do Copilot.
CTRL+TExpanda/recolha a exibição de raciocínio nas respostas.
Página Para Cima/Página Para BaixoRole a linha do tempo para cima ou para baixo em uma página.

Atalhos da caixa de diálogo Tarefas

Quando a caixa de diálogo de tarefas estiver aberta (aberta via /tasks):

AtalhoPropósito
/KMover a seleção para cima.
/JMover a seleção para baixo.
EnterVeja os detalhes da tarefa ou teletransporte-se para a visualização da sessão do subagente selecionado.
aAlterne entre exibir todos os níveis aninhados de subagentes e apenas as tarefas deste nível.
fAlterne a exibição de subagentes e shells finalizados, não apenas dos ativos.
XEncerre a tarefa ativa selecionada.
RRemova a tarefa concluída selecionada.
BEnvie a tarefa de sincronização selecionada para o segundo plano.
EscFeche a caixa de diálogo (ou volte para a lista).

Subagentes que geram seus próprios subagentes aninhados aparecem como uma árvore recuada; a linha em que você é teletransportado é realçada como "atual". Ao entrar na visualização de um subagente, você pode enviar uma mensagem de orientação pelo compositor da mesma forma que faria na sessão principal.

Atalhos do seletor de sessão

Quando o seletor de sessão estiver aberto (aberto por meio /resume ou --continue):

AtalhoPropósito
/Mova a seleção para cima ou para baixo.
EnterAbra a sessão selecionada.
sCiclo da ordem de classificação: relevância → criado → nome → usado pela última vez.
TabAlterne entre as guias local e remota.
xExclua a sessão selecionada.
EscFeche o seletor.

As sessões são classificadas pelos seguintes modos:

ModoDescrição
relevanceClassifica sessões de acordo com a correspondência no diretório de trabalho atual (padrão).
last usedSessões modificadas mais recentemente primeiro.
createdAs sessões criadas mais recentemente aparecem primeiro.
nameAlfabético por nome da sessão; sessões sem nome são ordenadas ao final.

As sessões já abertas em outra janela são movidas para o topo em todos os modos de classificação que não sejam por relevância. Quando não há contexto de diretório de trabalho disponível, o modo relevance é ignorado.

Atalhos do modo de diferimento

Quando o modo de diferimento está aberto (inserido por meio de /diff):

AtalhoPropósito
/ kMover a seleção uma linha para cima.
/ jMova a seleção para baixo em uma linha.
/ hVá para o arquivo anterior.
/ lVá para o próximo arquivo.
Página Inicial / gVá para a primeira linha.
Final / GVá para a última linha.
Página Para CimaRole uma página para cima.
Página Para BaixoRole para baixo uma página.
Ctrl+URole meia página acima.
Ctrl+DRole meia página abaixo.
ClickSelecione a linha de diferimento clicada (requer suporte ao mouse).
Rolagem do mouseRole para cima ou para baixo.
Alt/Option+scrollRole uma linha de cada vez para um controle refinado.
cAdicione ou edite um comentário na linha selecionada.
sMostrar resumo de comentários (quando houver comentários).
bAlternar alterações não preparadas e o diferimento da ramificação.
wAlterne ocultando alterações somente em espaço em branco.
EnterEnvie todos os comentários (quando houver comentários).
rAtualizar o diff (apenas em sessões remotas).
Esc / Ctrl+CSaia do modo de diferimento.
AtalhoPropósito
Ctrl+AIr para o início da linha (ao digitar).
Ctrl+BMova para o caractere anterior.
Ctrl+EMover para o final da linha (quando se está digitando).
Ctrl+FMova para o próximo caractere.
CTRL+HExclua o caractere anterior.
Ctrl+KApague desde o cursor até o final da linha. Se o cursor estiver no final da linha, exclua a quebra de linha.
Ctrl+UApague desde o cursor até o início da linha.
Ctrl+WExclua a palavra anterior.
InícioVá para o início da linha visual atual.
EndMova para o final da linha visual atual.
Ctrl+CasaVá para o início do texto.
Ctrl+FimMova para o final do texto.
Alt+/← (Windows/Linux)
Opção+/ (Mac)Mova o cursor uma palavra por vez.
/Navegue pelo histórico de comandos.
Tab / Ctrl+YAceite a sugestão atual de conclusão integrada.

Comandos de barra na interface interativa

Esses são os comandos de barra que você pode usar em uma sessão interativa da CLI. Um subconjunto desses comandos com barra está disponível para clientes que usam a CLI por meio do servidor ACP. Para obter mais informações, consulte Servidor da ACP da CLI do Copilot.

CommandPropósito
/add-dir PATHPermitir acesso a arquivos em um diretório e carregar seus .github/skills e .github/agents como configurações confiáveis.
/after [DELAY PROMPT], /afterAgende um prompt, uma habilidade ou um comando de barra programável não recorrente para a sessão atual (por exemplo, /after 30m remind me the time ou /after 1h /chronicle standup). Sem argumentos, o gerenciador de agendamento é exibido. Disponível apenas no modo experimental.
/agentNavegue e selecione entre os agentes disponíveis (se houver). Consulte Sobre agentes personalizados.
/appAbra a sessão atual no GitHub Copilot app (requer a versão 1.1.3 ou posterior) ou mostre a URL de download se o aplicativo não estiver instalado.
/ask QUESTIONFaça uma pergunta rápida sem adicionar ao histórico da conversa.
/allow-all [off|auto|show], /yolo [off|auto|show]Habilite todas as permissões (ferramentas, caminhos e URLs). Este é um alias para /permissions allow-all; consulte a linha /permissions para ver o comando canônico e seus subcomandos.
/autopilot [OBJECTIVE], /goal [OBJECTIVE]Iniciar ou redirecionar o modo de piloto automático, opcionalmente com um objetivo explícito (por exemplo, /goal Refactor the auth module). Sem um objetivo, o piloto automático infere a intenção do contexto e o painel de status mostra seu último prompt como o objetivo inferido. Você pode limitar os gastos com créditos de IA do objetivo usando --max-ai-credits N (por exemplo, /goal Refactor the auth module --max-ai-credits 5). Quando o limite é atingido, o modo automático é pausado e abre um painel mostrando os créditos consumidos em relação ao limite. Insira um novo valor a ser retomado com uma nova janela de crédito ou descarte o painel para permanecer em pausa. Você também pode retomar um objetivo pausado por conta própria, sem o painel, executando a opção por conta própria sem texto objetivo, por exemplo. /goal --max-ai-credits 5 Essa é a mesma ação que o painel executa: abre uma nova janela dos créditos especificados (o novo limite completo, não um incremento) e continua o objetivo.
/goal on e /goal off alternam o modo de piloto automático sem definir um objetivo e não aceitam --max-ai-credits.
/changelog [summarize] [VERSION|last N|since VERSION], /release-notes [summarize] [VERSION|last N|since VERSION]Exiba o registro de alterações da CLI. Opcionalmente, especifique uma versão, uma contagem de versões recentes ou uma versão inicial. Adicione a palavra-chave summarize para um resumo gerado por IA.
/chronicle <standup|tips|improve|reindex|skills create|skills review|skills status>Ferramentas e insights sobre o histórico de sessões. Os skills subcomandos elaboram, examinam e acompanham o status das propostas de habilidade do repositório geradas com base no uso observado. Consulte Sobre os dados de sessão GitHub Copilot CLI.
/clear [PROMPT]
/new [PROMPT]
/reset [PROMPT]
Inicie uma nova conversa.
/clikit [COMPONENT]Visualizar componentes de negócios da CLI (por exemplo, informações de cota).
/compact [FOCUS-INSTRUCTIONS]Resumir o histórico de conversas para reduzir o uso da janela de contexto. Opcionalmente, forneça instruções de foco para orientar o resumo, por exemplo, /compact focus on the auth module. Consulte Gerenciando o contexto em GitHub Copilot CLI.
/contextMostrar o uso e a visualização do token da janela de contexto. Consulte Gerenciando o contexto em GitHub Copilot CLI.
/copyCopie a última resposta para a área de transferência.
/cwd, /cd [PATH]Altere o diretório de trabalho ou exiba o diretório atual.
/delegate [PROMPT]Delegar alterações em um repositório remoto com uma solicitação de pull gerada por IA. Consulte Delegando tarefas para Copilot.
/diagnose [PROMPT], /diagnoseAnalise o log de sessão atual em busca de erros, comportamento inesperado e outros problemas. Opcionalmente, inclua um prompt personalizado para concentrar o diagnóstico em um problema específico.
/diffExamine as alterações feitas no diretório atual; alterna automaticamente para o diferimento da ramificação quando a árvore de trabalho está limpa (experimental).
/downgrade VERSIONBaixe e reinicie em uma versão específica da CLI. Disponível para contas de equipe.
/envMostrar detalhes do ambiente carregado (instruções, servidores MCP, habilidades, agentes, ganchos, plug-ins, LSPs, extensões).
/every [INTERVAL PROMPT], /everyAgende um prompt recorrente, uma habilidade ou um comando de barra programável para a sessão atual (por exemplo, /every 1h run tests ou /every 1d /chronicle standup). Sem argumentos, o gerenciador de agendamento é exibido. Disponível apenas no modo experimental.
/exit, /quitFeche a sessão atual. Se outras sessões estiverem em execução, isso traz para o primeiro plano a sessão restante mais recente em vez de encerrar. Encerra a CLI somente quando é a última sessão aberta.
/exit print sempre encerra a CLI e oferece a opção de gerar o despejo da transcrição.
/extensions [manage|mode], /extensionGerenciar extensões da CLI. Disponível apenas no modo experimental.
/experimental [on|off|show]Alterne, defina ou mostre recursos experimentais.
/feedback, /bugForneça comentários sobre a CLI.
/fleet [PROMPT]Habilite a execução de subagentes paralelos de partes de uma tarefa. Consulte Executando tarefas em paralelo com o /fleet comando.
/helpMostrar a ajuda para comandos interativos.
/ideConecte-se a um workspace do IDE. Consulte Conectando GitHub Copilot CLI a VS Code.
/initInicialize instruções personalizadas e recursos de agentes do Copilot para este repositório. Consulte Inicialização do Projeto para Copilot.
/instructionsExibir e alternar arquivos de instrução personalizados.
/keep-alive [on|off|busy|DURATION], /caffeinate [on|off|busy|DURATION]Impedir que o computador durma: enquanto uma sessão da CLI estiver ativa, enquanto o agente estiver ocupado ou por um período de tempo definido. Aceita durações como 30, 30m, 2h, 1d (números simples padrão para minutos).
/limitsAbra a caixa de diálogo de limites de resposta interativa.
/limits set max-ai-credits VALUEDefina um máximo flexível para créditos de IA permitidos por resposta. Os limites de resposta são limites suaves que são redefinidos para cada mensagem de usuário. Consulte Definindo um AI credit limite de sessão em GitHub Copilot CLI.
/limits unset [max-ai-credits|all]Remova um limite de resposta específico ou todos os limites de resposta.
/list-dirsExiba todos os diretórios para os quais o acesso ao arquivo foi permitido.
/loginFaça login em Copilot.
/logoutFaça logoff do Copilot.
/lsp [show|test|reload|logs|help] [SERVER-NAME]Gerencie a configuração do servidor de idiomas. O logs subcomando abre o painel de log dos serviços LSP dinâmicos.
/mcp [list|show|add|edit|delete|disable|enable|auth|reload|search] [SERVER-NAME]Gerenciar a configuração do servidor MCP.
list (alias ls) exibe uma lista em texto simples dos servidores configurados, com o status da conexão e o estado em tempo real, e é somente leitura, portanto pode ser executado enquanto o agente estiver ocupado processando uma interação; todos os outros subcomandos ficam bloqueados até que a interação termine. Os servidores locais isolados exibem o status connected (sandboxed). Consulte Adicionando servidores MCP para GitHub Copilot CLI.
/model [--session|--global|--repo|--local] [MODEL], /modelsSelecione o modelo de IA que você deseja usar ou escolha Auto. Por padrão (ou com --session, alias -s), altera o modelo, o esforço de raciocínio ou a janela de contexto apenas para a sessão atual, sem tocar nas configurações salvas.
--repo
/
--local fixa o modelo padrão nas configurações do repositório; --global (ou /config model) define o padrão para sessões futuras. Pressione Tab em um modelo com uma variante de contexto longo para alternar sua coluna contextual entre a janela de contexto padrão e longo. O seletor agrupa os modelos em seções — pressione Shift+Tab para alternar o agrupamento entre recomendados (Recentes, Recomendados, Novos e outros modelos), fabricante e categoria. Um modelo com termos de retenção de dados específicos de um fornecedor exibe um banner de aviso sobre retenção de dados com um link para a política desse fornecedor. Utilizável durante o turno: uma alteração solicitada enquanto o agente está em execução é enfileirada como um comando cancelável (Ctrl+C) e aplicada assim que o turno atual termina, em vez de alternar o modelo ativo no meio da solicitação. Consulte Sobre Copilotauto model selection.
/permissions [default|assisted|allow-all|show]Alterne entre os modos de permissão (default, , ), assistedou mostre o modo atual (allow-all``show). Este é o comando canônico para alterações de modo de permissão; /allow-all e /yolo continuam com suporte como aliases.
/permissions resetRedefina todas as aprovações em memória de ferramentas e caminhos da sessão atual (solicitar novamente no próximo uso).
/plan [PROMPT]Crie um plano de implementação antes da codificação.
/pluginAbra o painel de plugins na aba Plugins. Bare /mcp e /skills abrem o mesmo painel, mas com foco na aba MCP ou Habilidades. Consulte Sobre plug-ins GitHub Copilot.
/plugin install SOURCEInstale um plugin a partir de uma especificação de marketplace, GitHub de um repositório, de uma URL do git ou de um caminho local.
/plugin update PLUGIN[@MARKETPLACE]Atualize um plug-in instalado.
/plugin uninstall PLUGIN[@MARKETPLACE] (apelidos remove, rm)Desinstale um plug-in.
/plugin list (também conhecido como ls)Listar plug-ins instalados.
/plugin marketplace add SOURCEAdicione um marketplace.
/plugin marketplace remove NAMERemova um mercado.
/plugin marketplace listListar mercados registrados.
/plugin marketplace browse NAMENavegue por plug-ins em um marketplace.
/plugin marketplace update [NAME] (também conhecido como refresh)Buscar novamente o catálogo de plugins de um marketplace ou, se nenhum nome for informado, de todos os marketplaces registrados.
/pr [view|create|fix|auto|automerge]Gerencie solicitações de pull para a ramificação atual.
auto conduz a solicitação de pull para verde e para; automerge (alias: agentmerge) conduz a solicitação de pull para verde e a mescla. Consulte Gerenciando solicitações de pull com o comando /pr.
/refine TEXTReescreva um prompt redigido de forma rudimentar como um prompt claro para revisão. Execute sem argumentos (via Ctrl+X em seguida /refine) para limpar a caixa de entrada atual. Pode ser especialmente útil para prompts inseridos por voz.
/remote [on|off]Mostrar o status do controle remoto (se nenhum argumento for fornecido), habilitar a direção remota (on) ou encerrar a conexão remota (off). Consulte Controlando uma GitHub Copilot CLI sessão de outro dispositivo.
/rename [NAME]Renomeie a sessão atual (gera automaticamente um nome caso a opção não seja especificada; alias para /session rename).
/research TOPICExecute uma investigação aprofundada usando fontes de busca e web do GitHub. Consulte Pesquisando com GitHub Copilot CLI.
/reset-allowed-toolsRedefina a lista de ferramentas permitidas.
/restartReinicie a CLI, preservando a sessão atual.
/resume [SESSION-ID], /continue [SESSION-ID]Alterne para uma sessão diferente escolhendo em uma lista (opcionalmente, especifique uma ID de sessão).
/review [PROMPT]Execute o agente de revisão de código para analisar as alterações. Consulte Solicitando uma revisão de código com GitHub Copilot CLI.
/rubber-duck [PROMPT]Consulte o agente do pato de borracha para obter uma segunda opinião sobre planos, códigos e testes. Consulte Sobre o agente pato de borracha.
/sandbox [config|status|policy|enable|disable]Gerencie o isolamento em sandbox em nível de sistema operacional que restringe o acesso ao sistema de arquivos e à rede para comandos de shell, servidores MCP/LSP e ferramentas integradas de arquivo e web.
config (ou bare /sandbox) abre a caixa de diálogo de configurações de área restrita.
status mostra se o sandboxing está habilitado.
policy mostra a política efetiva, incluindo concessões de caminho, negações e acesso à rede.
enable
/
disable ativar ou desativar o isolamento diretamente. Disponível apenas no modo experimental.
/search [QUERY], /find [QUERY]Pesquise a linha do tempo da conversa.
/security-review [PROMPT]Execute uma revisão de segurança focada das alterações de código local ativas e retorne descobertas de vulnerabilidade priorizadas com sugestões de correção. Esse comando não é uma auditoria de segurança completa do repositório.
/session [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all], /sessions [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all]Mostrar informações de sessão e gerenciar sessões. O info subcomando mostra os detalhes da sessão, incluindo o link da sessão (quando disponível). Subcomandos: info, , checkpoints, files, plan, rename, cleanup, , prune, , delete. delete-all
/settings [--repo|--local] [show KEY|KEY|KEY VALUE],
/config [--repo|--local] [show KEY|KEY|KEY VALUE]
Abra a caixa de diálogo de configurações, abra-a focada em uma configuração específica (KEY), defina uma configuração embutida (KEY VALUE) ou exiba o valor atual de uma configuração (show KEY).
show oculta valores nomeados como segredos (por exemplo, tokens ou chaves de API dentro de uma configuração) em vez de imprimi-los em texto simples. A caixa de diálogo mostra as guias User, Repo, Repo (local) e Problems — alterne com Tab/Shift+Tab; uma configuração substituída em outro escopo mostra um indicador informando qual escopo prevalece. A aba Problemas é uma visão de vários escopos das configurações que precisam de atenção (por exemplo, chaves desconhecidas ou inválidas); seu rótulo mostra uma contagem, como Problems (2), quando qualquer escopo apresenta um problema e, caso contrário, mostra apenas Problems. Adicionar --repo ou --local ao destino .github/copilot/settings.json ou .github/copilot/settings.local.json, em vez de ao arquivo de configurações do usuário — por exemplo, /settings --repo model gpt-5.2. Somente chaves substituíveis por repositório podem ser definidas dessa forma. Linhas regidas por uma organização ativa ou por uma política gerenciada por MDM são exibidas como somente leitura com a tag (managed). Consulte Alterando as configurações com o /settings comando.
/share [link|off|file|html|gist|research] [...], /export [...]Compartilhe a sessão atual. Sem subcomando, gera um link compartilhável GitHub quando você está conectado e sincronizado (retorna à exportação de arquivo markdown caso contrário).
off interrompe o compartilhamento.
link é um alias explícito para o fluxo de link padrão; link off interrompe o compartilhamento de link.
file [session|research] [PATH] exporta para um arquivo Markdown.
html [session|research] [PATH] exporta para um arquivo HTML.
gist [session|research] cria um GitHub gist.
research [PATH] exporta o relatório de pesquisa.
/skillsAbra o painel de plug-ins na guia Habilidades.
/skills listListar todas as habilidades disponíveis.
/skills info NAMEMostrar detalhes de uma habilidade específica.
/skills add [--project] <FILE|URL|DIRECTORY>Adicionar uma habilidade a partir de um arquivo, URL ou diretório; --project limita uma instalação a partir de um arquivo ou URL a este repositório, em vez de à sua conta de usuário.
/skills remove <NAME|DIRECTORY>Remova uma habilidade por nome ou cancele o registro de um diretório de habilidades personalizado.
/skills reloadRecarregar habilidades de todos os diretórios. Consulte Adicionando habilidades de agente para GitHub Copilot CLI.
/statusline, /footerConfigure quais itens aparecem na linha de status.
/subagents, /agentsConfigure modelos de subagentes padrão e por agente. Consulte Diretório de configuração do GitHub Copilot CLI.
/tasksExibir e gerenciar tarefas (subagentes e comandos de shell).
/terminal-setupConfigure o terminal para suporte de entrada multilinha (Shift+Enter e Ctrl+Enter).
/theme [default|github|dim|high-contrast|colorblind]Exibir ou definir o modo de cor.
/tuikit [colors|icons|select|tabbar]Visualize os componentes do sistema de design TUIkit e tokens de cores.
/undo, /rewindAbra o seletor de retorno para retornar a sessão a uma interação anterior do usuário. Escolha entre: Somente conversa (reverta a conversa, deixando os arquivos como estão) ou Conversa + arquivos (também restaure os arquivos Copilot alterados nesse turno e os turnos posteriores descartados ao conteúdo anterior às alterações, ignorando os que você tiver editado desde então). As alterações nos arquivos são rastreadas a cada turno em ferramentas de edição, comandos de shell e subagentes, portanto o Git não é necessário.
/update, /upgradeAtualize a CLI para a versão mais recente.
/usageExibir estatísticas e métricas de uso de sessão, incluindo totais de token por modelo.
/user [show|list|switch]Gerencie o usuário atual GitHub .
/versionExibir informações de versão e verificar se há atualizações.
/voice [on|off|models|devices]Alterne o modo de voz, procure modelos de voz disponíveis ou escolha o dispositivo de entrada (microfone).
/fork [NAME], /branch [NAME]Bifurque a sessão atual em uma nova sessão, opcionalmente com um nome.
/worktree [branch|task]Crie uma nova árvore de trabalho git e alterne para ela, deixando as alterações não confirmadas para trás na árvore de trabalho atual. Passe um nome de branch, uma descrição da tarefa (com suporte a várias linhas, usada como prompt inicial na nova worktree) ou omita o argumento para gerar automaticamente um nome de branch com base na conversa. Por padrão, cria ramificações a partir do checkout atual (HEAD); defina a configuração worktreeBaseRef como "defaultBranch" para criar ramificações a partir da ramificação padrão remota. Consulte Diretório de configuração do GitHub Copilot CLI. Requer um repositório Git. Disponível apenas no modo experimental.
/worktree new [PROMPT]Inicie uma nova conversa em uma nova worktree do Git, deixando a conversa atual e seu diretório de trabalho inalterados. Opcionalmente, forneça o primeiro prompt.
new é reservado como palavra-chave de subcomando e não pode ser usado literalmente como nome de branch. Segue a mesma worktreeBaseRef configuração que /worktree. Disponível apenas no modo experimental.
/move [branch|task]Mova as alterações não commitadas para uma nova worktree do Git e mude para ela. Passe um nome de branch, uma descrição da tarefa (com suporte a várias linhas, usada como prompt inicial na nova worktree) ou omita o argumento para gerar automaticamente um nome de branch com base na conversa. Requer um repositório Git. Disponível apenas no modo experimental.

Para obter uma lista completa dos comandos slash disponíveis, insira /help na interface interativa da CLI.

No gerenciador de agendamento aberto com um simples pressionamento de /every ou /after, use / para selecionar um item e x para removê-lo. Os agendamentos só podem ser adicionados a partir da entrada do prompt usando /every ou /after com argumentos — a própria caixa de diálogo permite apenas visualizar e remover.

/plugin sinaliza um plug-in ou marketplace instalado quando uma versão mais recente está disponível upstream e oferece uma ação de atualização do painel.

/mcp list / ls e /plugin list/ls (incluindo /plugin simples) são somente leitura e podem ser executados enquanto o agente está ocupado processando uma interação. Todos os outros subcomandos /mcp e /plugin são bloqueados até que o turno seja concluído.

Observação

O comando experimental /plugins foi removido. Seus recursos foram movidos para /plugin, /mcpe /skills. Use /subagents e /instructions para agentes e instruções.

Opções de linha de comando

OpçãoPropósito
--add-dir=PATHPermitir acesso a arquivos em um diretório e carregar .github/skills e .github/agents como configurações confiáveis (pode ser usado várias vezes).
--add-github-mcp-tool=TOOLAdicione uma ferramenta para habilitar para o GitHub servidor MCP, em vez do subconjunto padrão da CLI (pode ser usado várias vezes). Use * para todas as ferramentas.
--add-github-mcp-toolset=TOOLSETAdicione um conjunto de ferramentas para habilitar para o GitHub servidor MCP, em vez do subconjunto padrão da CLI (pode ser usado várias vezes). Use all para todos os conjuntos de ferramentas.
--additional-mcp-config=JSONAdicione apenas um servidor MCP para esta sessão. A configuração do servidor pode ser fornecida como uma cadeia de caracteres JSON ou um caminho de arquivo (prefixo com @). Amplia a configuração de ~/.copilot/mcp-config.json. Substitui qualquer configuração de servidor MCP instalada com o mesmo nome. Consulte Adicionando servidores MCP para GitHub Copilot CLI.
--agent=AGENTEspecifique um custom agent a ser usado. Consulte Sobre agentes personalizados.
--allow-allHabilitar todas as permissões (equivalente a --allow-all-tools --allow-all-paths --allow-all-urls).
--allow-all-mcp-server-instructionsInclua instruções de inicialização de todos os servidores MCP no prompt do sistema. Por padrão, somente as instruções dos servidores permitidos são incluídas inicialmente; as instruções de outros servidores são recuperadas conforme necessário.
--allow-all-pathsDesabilite a verificação do caminho do arquivo e permita o acesso a qualquer caminho.
--allow-all-toolsPermitir que todas as ferramentas sejam executadas automaticamente sem confirmação. Necessário ao usar a CLI programaticamente (env: COPILOT_ALLOW_ALL).
--allow-all-urlsPermitir acesso a todas as URLs sem confirmação.
--allow-tool=TOOL ...Ferramentas que a CLI tem permissão para usar. Não solicitará permissão. Para várias ferramentas, use uma lista entre aspas e separada por vírgulas. Consulte Permitir e negar o uso da ferramenta.
--allow-url=URL ...Permitir o acesso a URLs ou domínios específicos. Para várias URLs, use uma lista entre aspas e separada por vírgulas.
--acpIniciar como servidor do Agent Client Protocol.
--attachment PATHAnexe um arquivo ao prompt inicial (pode ser usado várias vezes). Arquivos de imagem são aceitos, mas enviá-los com êxito requer o modelo selecionado e a política de organização para permitir a entrada da visão.
--autopilotHabilite a continuação do piloto automático– o agente continua funcionando até task_complete ser chamado e, em seguida, retorna ao modo interativo. Consulte Permitindo que GitHub Copilot CLI funcione de forma autônoma.
--available-tools=TOOL ...Somente essas ferramentas estarão disponíveis para o modelo. Para várias ferramentas, use uma lista entre aspas e separada por vírgulas. Consulte Permitir e negar o uso da ferramenta.
--banner, --no-bannerMostrar ou ocultar o banner de inicialização.
--bash-envHabilitar o suporte de BASH_ENV para shells bash.
-C DIRECTORYAltere o diretório de trabalho antes de fazer qualquer outra coisa.
--connect[=SESSION-ID]Conecte-se diretamente a uma sessão remota (opcionalmente, especifique uma ID de sessão ou ID da tarefa). Conflitos com --resume e --continue.
--context TIER.Defina o nível da janela de contexto para modelos de preços em níveis (substitui a configuração persistida e é aplicada em novas sessões interativas recém-iniciadas). Opções: "padrão", "long_context".
--config-dir=DIRECTORYEssa opção para definir o diretório de configuração foi preterida. Em vez disso, use a COPILOT_HOME variável de ambiente.
--continueRetome a sessão mais recente no diretório de trabalho atual, voltando à sessão globalmente mais recente. Conflitos com --resume.
--deny-tool=TOOL ...Ferramentas que a CLI não tem permissão para usar. Não solicitará permissão. Para várias ferramentas, use uma lista entre aspas e separada por vírgulas.
--deny-url=URL ...Negar acesso a URLs ou domínios específicos, tem precedência sobre --allow-url. Para várias URLs, use uma lista entre aspas e separada por vírgulas.
--disable-builtin-mcpsDesabilitar todos os servidores MCP internos (atualmente: github-mcp-server).
--disable-mcp-server=SERVER-NAMEDesabilite um servidor MCP específico (pode ser usado várias vezes).
--disallow-temp-dirImpedir o acesso automático ao diretório temporário do sistema.
--effort=LEVEL, --reasoning-effort=LEVELDefina o nível de esforço de raciocínio (low, , medium, high, xhigh, max).
max é a camada de profundidade mais alta para modelos de Anthropic.
--enable-all-github-mcp-toolsHabilite todas as GitHub ferramentas do servidor MCP, em vez do subconjunto padrão da CLI. Substitui as opções --add-github-mcp-toolset e --add-github-mcp-tool.
--enable-mcp-server=SERVER-NAMEHabilite novamente um servidor MCP desabilitado em suas configurações, somente para esta sessão (pode ser usado várias vezes). A alteração não é mantida em sua configuração.
--enable-memoryHabilite a memória no modo prompt (desabilitado por padrão).
--enable-reasoning-summariesOpção de compatibilidade preterida (aceita, mas ignorada). Resumos detalhados de raciocínio para dar suporte a modelos OpenAI são mostrados por padrão. Ative/desative-os com Ctrl+T.
--excluded-tools=TOOL ...Essas ferramentas não estarão disponíveis para o modelo. Para várias ferramentas, use uma lista entre aspas e separada por vírgulas.
--experimentalHabilitar recursos experimentais (use --no-experimental para desabilitar).
--extension-sdk-path DIRECTORYSubstitua o @github/copilot-sdk empacotado injetado nos subprocessos da extensão por uma pasta local copilot-sdk/. Caminhos inválidos retornam ao SDK empacotado.
-h, --helpExibir ajuda.
-i PROMPT, --interactive=PROMPTInicie uma sessão interativa e execute esse prompt automaticamente.
--log-dir=DIRECTORYDefina o diretório do arquivo de log (padrão: ~/.copilot/logs/).
--log-level=LEVELDefina o nível de log (opções: none, , , error, warning, info, , debug). all``default
--max-ai-credits=CREDITSDefina um máximo flexível para créditos de IA permitidos para cada resposta. O limite é redefinido a cada mensagem do usuário e pode ser ajustado durante a sessão com /limits. Consulte Definindo um AI credit limite de sessão em GitHub Copilot CLI.
--max-autopilot-continues=COUNTNúmero máximo de mensagens de continuação no modo de piloto automático (padrão: ilimitado). Deve ser um inteiro não negativo; Valores malformados (NaNnegativos ou fracionários) são rejeitados. Consulte Permitindo que GitHub Copilot CLI funcione de forma autônoma.
--mode=MODEDefina o modo de agente inicial (opções: interactive, plan, ). autopilot Combine com --plan (como --plan --mode autopilot) para plan-then-autopilot: a sessão começa no modo de plano e progride automaticamente para o modo de piloto automático quando o plano estiver pronto, em vez de esperar que um humano o aprove. Qualquer outro --plan --mode MODE emparelhamento é rejeitado.
--model=MODELDefina o modelo de IA que você deseja usar. Passe auto como o valor para permitir Copilot escolher o melhor modelo disponível automaticamente. Consulte Sobre Copilotauto model selection.
--mouse[=VALUE]Habilite ou desabilite o suporte ao mouse na interface interativa. VALUE pode ser on (padrão) ou off. Quando habilitada, a CLI captura eventos do mouse — roda de rolagem, cliques e assim por diante — para navegar em sua própria interface, como rolar a linha do tempo ou clicar em guias. Quando desabilitado, o comportamento do mouse nativo do terminal, como seleção de texto e scrollback, é preservado. Quando você define essa opção explicitamente, o valor é mantido no arquivo de configuração.
-n NAME, --name=NAMEDefina um nome para a nova sessão. Usado por --resume e /resume para localizar sessões por nome.
--no-ask-userDesabilite a ask_user ferramenta (o agente funciona de forma autônoma sem fazer perguntas).
--no-auto-updateDesabilite o download de atualizações da CLI automaticamente.
--no-bash-envDesative o suporte de BASH_ENV para shells bash.
--no-colorDesative toda a saída de cor.
--no-custom-instructionsDesabilite o carregamento de instruções personalizadas de AGENTS.md e arquivos relacionados.
--no-experimentalDesabilitar recursos experimentais.
--no-mouseDesabilite o suporte ao mouse.
--no-remoteDesabilite o acesso remoto para esta sessão.
--no-remote-exportDesabilite a exportação de sua sessão para GitHub.com e GitHub Mobile (também desabilita o controle remoto).
--output-format=FORMATFORMAT pode ser text (padrão) ou json (saídas JSONL: um objeto JSON por linha).
-p PROMPT, --prompt=PROMPTExecute um prompt programaticamente (sai após a conclusão). O resumo de saída inclui uma copilot --resume=SESSION-ID dica para continuar a sessão. Consulte Executando GitHub Copilot CLI programaticamente.
--planInicie no modo plano. Abreviação de --mode plan. Não é possível combinar com --autopilot. Pode ser combinado com --mode autopilot para plan-then-autopilot; qualquer outro --mode valor é rejeitado.
--plain-diffDesative a renderização de diferenças avançadas (realce de sintaxe através da ferramenta de diferença especificada na sua configuração do Git).
--plugin-dir=DIRECTORYCarregue um plug-in de um diretório local (pode ser usado várias vezes).
--remoteHabilite o acesso remoto a esta sessão a partir de GitHub.com e GitHub Mobile. Consulte Controlando uma GitHub Copilot CLI sessão de outro dispositivo.
--remote-exportExporte sua sessão para GitHub.com e GitHub Mobile (somente leitura; não habilita o controle remoto).
-r, --resume[=VALUE]Retome uma sessão interativa anterior escolhendo em uma lista. Opcionalmente, especifique uma ID de sessão, um prefixo de ID ou um nome de sessão. A correspondência de nomes é exata e não diferencia maiúsculas de minúsculas; ela retorna para o resumo gerado automaticamente quando nenhum nome explícito corresponde. Conflitos com --continue. Bare --resume (sem valor) mostra um seletor de sessão interativo, que requer um TTY. Se existirem várias sessões e o seletor não puder ser mostrado (por exemplo, em -p, um -i não TTY ou stdin redirecionado), a CLI será encerrada com erro em vez de iniciar silenciosamente uma nova sessão — passe um --resume=SESSION-ID explícito ou use --continue.
-s, --silentGerar somente a resposta do agente (sem estatísticas de uso), útil para scripts com -p.
--screen-readerHabilitar otimizações de leitor de tela.
--secret-env-vars=VAR ...Redigir uma variável de ambiente do shell e do servidor MCP (pode ser usada várias vezes). Para várias variáveis, use uma lista entre aspas e separada por vírgulas. Os valores nas variáveis de ambiente GITHUB_TOKEN e COPILOT_GITHUB_TOKEN são omitidos do resultado por padrão.
--session-id IDUse um ID exato de sessão ou de tarefa quando não quiser a correspondência mais ampla de --resume por prefixo do ID ou pelo nome da sessão. Se a ID corresponder a uma sessão ou tarefa existente, essa sessão ou tarefa será retomada. Se nada corresponder, uma nova sessão será criada somente quando o valor for uma UUID válida. Os nomes e os prefixos de ID não criam novas sessões. Não combine essa opção com outras opções de seleção de sessão ou de início de sessão, como --resume, --continueou --connect, porque elas competem para decidir qual sessão abrir ou criar.
--sandboxHabilite a área restrita do shell no nível do sistema operacional somente para esta sessão, sem alterar a configuração de área restrita salva. Útil com -p. Disponível apenas no modo experimental.
--no-sandboxDesative o isolamento local somente nesta sessão, sem alterar a configuração salva de isolamento. Essa opção será ignorada se uma política gerenciada pela empresa tiver sido configurada para impor a área restrita. Disponível apenas no modo experimental.
--share=PATHCompartilhe uma sessão em um arquivo Markdown após a conclusão de uma sessão programática (caminho padrão: ./copilot-session-<ID>.md).
--share-gistCompartilhe uma sessão em um gist secreto do GitHub após a conclusão de uma sessão programática.
--stream=MODEHabilite ou desabilite Copiloto modo de streaming, que exibe a resposta progressivamente conforme ela é gerada em vez de aguardar a resposta completa chegar (opções de modo: on ou off, padrão: on).
-v, --versionMostrar informações de versão.
-w, --worktree[=NAME]Crie ou reutilize uma árvore de trabalho <repo>.worktrees/ do Git isolada e inicie a sessão dentro dela.
NAME é opcional – omita-o para gerar automaticamente um nome de ramificação. Por padrão, cria ramificações a partir do checkout atual (HEAD); defina a configuração worktreeBaseRef como "defaultBranch" para criar ramificações a partir da ramificação padrão remota. Conflitos com --resume, --continuee --connect. Disponível apenas no modo experimental.
--yoloHabilitar todas as permissões (equivalente a --allow-all).

Para obter uma lista completa de comandos e opções, execute copilot help.

Observação

As opções --remote, --no-remote, --remote-export, --no-remote-export e --connect exigem que o recurso de sessões remotas esteja disponível na sua conta.

Você pode usar --remote com --resume <TASK-ID> para retomar uma tarefa remota localmente. Isso funciona mesmo quando a tarefa foi criada originalmente fora de um repositório Git.

Se uma sessão ainda estava aberta quando o processo da CLI foi embora, por exemplo, devido a uma falha ou uma reinicialização do computador, na próxima vez que você iniciar copilot , será oferecida a opção de restaurá-la. Você pode ver as sessões disponíveis para restauração ou, em vez disso, iniciar uma nova sessão. Uma sessão restaurada cujo agente estava no meio do turno retoma automaticamente esse trabalho.

Planeje e depois piloto automático

O Plan-then-autopilot permite que uma sessão comece no modo de plano e continue automaticamente no modo de piloto automático quando o plano estiver pronto, sem esperar que um humano aprove a transição. Habilite-o com --plan --mode autopilot, ou com a variável de ambiente COPILOT_PLAN_THEN_AUTOPILOT para estruturas de teste que só conseguem injetar variáveis de ambiente, e não opções de linha de comando. Se ambos forem definidos, as opções explícitas têm precedência e a CLI exibe um aviso de que a variável de ambiente foi ignorada.

Nível da sandbox gerenciada pela empresa

Uma política gerenciada pela empresa pode impor o isolamento em sandbox do shell no nível do sistema operacional como nível mínimo. Em outras palavras, mesmo que você forneça --no-sandbox, a política ainda assim pode forçar a ativação do sandbox. Essa é uma substituição de política, não uma falha do sinalizador em si. Por outro lado, --sandbox não é afetado porque só ativa o sandboxing e nunca o remove.

Quando uma política gerenciada substitui sua configuração, a CLI mostra um aviso na linha do tempo interativa (ou no stderr ao usar -p) para que fique claro que o comportamento vem da imposição da política em vez da opção não funcionar. Entre em contato com o administrador se precisar que a política seja alterada. O comando /sandbox também é registrado sempre que uma política gerenciada impõe o uso de sandboxing, mesmo sem recursos experimentais ativados, para que você ainda possa inspecionar a política efetiva e o status enquanto essa imposição estiver em vigor. Disponível apenas no modo experimental.

A CLI também avisa quando uma política gerenciada habilita o sandboxing em uma sessão que você não solicitou, não apenas quando ela substitui --no-sandbox. Isso inclui sessões em que a política chega após a inicialização, pois as configurações gerenciadas pelo servidor só estão disponíveis após o logon. O aviso será omitido caso suas próprias configurações ou a opção --sandbox já tenham solicitado isolamento em sandbox, já que o estado da sessão seria então esperado.

Se um dispositivo tiver uma política gerenciada que não puder ser lida, a CLI falhará em modo fechado e aplicará o isolamento em sandbox no nível mais restritivo. O aviso explica que a política não pôde ser determinada e diz para você esperar que ela seja resolvida. O aviso de inicialização para um host sem suporte usa a mesma redação.

Restringindo as opções --allow-all

Quando permissions.disableBypassPermissionsMode é definido como "disable", todas as opções de linha de comando que permitem todas as permissões (--allow-all-tools, , --allow-all-paths, --allow-all-urls, --allow-all, --yolo) são suprimidas na inicialização e não podem ser usadas para conceder permissões elevadas. O /permissions allow-all comando barra e seus aliases /allow-all e /yolotambém são suprimidos.

Defina permissions.disableBypassPermissionsMode como "allow-auto-only" para bloquear permissões irrestritas, mas permitir /permissions assisted (aprovação de permissões assistida por LLM). A aprovação assistida ainda solicita confirmação para cada solicitação, mas anexa uma recomendação de segurança da LLM para que a CLI possa aprovar automaticamente as solicitações que o modelo considerar aceitáveis.

Se permissions.disableBypassPermissionsMode estiver definido como um valor não reconhecido, a CLI não o rejeitará totalmente. Em vez disso, a CLI registra o problema e aplica "disable" como comportamento padrão de bloqueio por padrão, de modo que uma política gerenciada malformada ainda restrinja as opções de “permitir tudo”, em vez de permiti-las silenciosamente.

Três fontes podem definir essa restrição, aumentando a ordem de permanência:

FonteScopeLimpo com a troca de conta?
Configurações do usuário (~/.copilot/settings.json)MáquinaNão – aplica-se a todas as contas
Configurações gerenciadas (obtidas do servidor para cada conta)ContaSim — é desmarcada ao mudar para uma conta diferente que não desabilita as opções de permitir tudo
Política de MDM (plist/registro/arquivo)DispositivoNunca — política em nível de dispositivo que não pode ser substituída por trocas de conta

Para obter detalhes de configuração do MDM, consulte Diretório de configuração do GitHub Copilot CLI.

Modelos com suporte

Use --model=MODEL ou a variável de COPILOT_MODEL ambiente para selecionar o modelo de IA. Passe auto para permitir Copilot a escolha do melhor modelo disponível automaticamente.

ModeloMais adequado para
claude-sonnet-4.6Codificação de uso geral (padrão)
gpt-5.4Tarefas de raciocínio complexas
claude-haiku-4.5Operações rápidas e leves
gpt-5.3-codexTarefas focadas em código
gemini-3.1-pro-previewRaciocínio do Google Gemini
gemini-3.5-flashRespostas rápidas do Google Gemini
gemini-3.6-flashRespostas rápidas do Google Gemini
gemini-3.7-flashRespostas rápidas do Google Gemini
mai-code-1-flashTarefas de codificação rápidas e adaptáveis

Você também pode alternar entre modelos durante uma sessão interativa usando o comando de barra /model.

Valores de disponibilidade da ferramenta

As opções --available-tools e --excluded-tools dão suporte a estes valores:

Ferramentas do Shell

Nome da ferramentaDescrição
bash / powershellExecutar comandos
list_bash / list_powershellListar sessões ativas do shell
read_bash / read_powershellLer a saída de uma sessão de shell
stop_bash / stop_powershellEncerrar uma sessão de shell
write_bash / write_powershellEnviar entrada para uma sessão de shell

Ferramentas de operação de arquivo

Nome da ferramentaDescrição
apply_patchAplicar patches (usados por alguns modelos em vez de edit/create)
createCriar novos arquivos
editEditar arquivos por meio da substituição de cadeia de caracteres
viewLer arquivos ou diretórios

Ferramentas de delegação de agente e tarefas

Nome da ferramentaDescrição
list_agentsListar agentes disponíveis
read_agentVerificar o status do agente em segundo plano
taskExecutar subagentes
write_agentEnviar uma mensagem para um agente em execução

Outras ferramentas

Nome da ferramentaDescrição
ask_userFaça uma pergunta ao usuário
globLocalizar padrões de correspondência de arquivos
grep(ou rg)Pesquisar texto em arquivos
skillInvocar habilidades personalizadas
web_fetchBuscar e analisar o conteúdo da Web

Padrões de permissão de ferramenta

As opções --allow-tool e --deny-tool aceitam padrões de permissão no formato Kind(argument). O argumento é opcional: omiti-lo corresponde a todas as ferramentas desse tipo.

VarianteDescriçãoPadrões de exemplo
memoryArmazenando fatos na memória do agentememory
readLeituras de arquivo ou diretório
read, read(.env)
shellExecução de comando do Shell
shell(git push)
shell(git:*)
shell
urlAcesso à URL por meio de web-fetch ou shell
url(github.com), url(https://*.api.com)
writeCriação ou modificação de arquivo
write, write(src/*.ts)
SERVER-NAMEInvocação da ferramenta de servidor MCP
MyMCP(create_issue), MyMCP

Para as shell regras, o sufixo :* corresponde ao comando principal seguido por um espaço, impedindo correspondências parciais. Por exemplo, shell(git:*) corresponde git push e git pull não corresponde gitea.

As regras de negação sempre têm precedência sobre as regras de permissão, mesmo quando --allow-all estão definidas.

# Allow all git commands except git push
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'

# Allow a specific MCP server tool
copilot --allow-tool='MyMCP(create_issue)'

# Allow all tools from a server
copilot --allow-tool='MyMCP'

# Deny writes to a specific path (exact or trailing-path-segment match; no glob support yet)
copilot --deny-tool='write(secret.txt)'

--deny-tool='write(PATH)' define o escopo da negação a esse caminho — outras gravações não são afetadas. A correspondência resolve symlinks e segmentos ./.., e não faz distinção entre maiúsculas e minúsculas no macOS e no Windows.

Variáveis de ambiente

VariableDescrição
COPILOT_ALLOW_ALLConfigure para true permitir todas as permissões automaticamente (equivalente a --allow-all).
COPILOT_AUTO_UPDATEDefina como false para desabilitar as atualizações automáticas da CLI e dos plugins primários.
COPILOT_CACHE_HOMESubstitua o diretório de cache (usado para caches do marketplace, pacotes de atualização automática e outros dados efêmeros). Consulte Diretório de configuração do GitHub Copilot CLI para ver os padrões da plataforma.
COPILOT_CUSTOM_INSTRUCTIONS_DIRSLista separada por vírgulas de diretórios adicionais para instruções personalizadas.
COPILOT_EDITORComando do editor para edição interativa (checado após $VISUAL e $EDITOR). Assume o valor padrão de vi se nenhum for definido.
COPILOT_ENABLE_HTTP2Defina como 1 ou true para ativar o transporte HTTP/2. HTTP/1.1 é o padrão.
COPILOT_GH_HOST
GitHub nome do host apenas para Copilot CLI, substituindo GH_HOST. Use quando GH_HOST tem como alvo GitHub Enterprise Server, mas Copilot precisa se autenticar no GitHub.com ou em um nome de host GitHub Enterprise Cloud.
COPILOT_GITHUB_TOKENToken de autenticação. Tem precedência sobre GH_TOKEN e GITHUB_TOKEN.
COPILOT_HOMESobrescreva a configuração e o diretório de estado. Padrão: $HOME/.copilot.
COPILOT_LARGE_OUTPUT_THRESHOLD_BYTESTamanho máximo, em bytes UTF-8, da saída da ferramenta retornada diretamente ao modelo. Padrão: 20480 (20 KiB). Consulte Gerenciando o contexto em GitHub Copilot CLI.
COPILOT_MCP_TOOL_CACHEDefina como false para desabilitar o carregamento e o salvamento dos snapshots das ferramentas de servidores MCP locais em todo o processo. Consulte o cache de instantâneos da Ferramenta.
COPILOT_MODELDefina o modelo de IA.
COPILOT_PLAN_THEN_AUTOPILOTDefina como on, --plan --mode autopilot, yes ou true para solicitar plan-then-autopilot (equivalente a 1) para ambientes de execução que só podem injetar variáveis de ambiente. Ignorado, com um aviso, quando uma opção explícita --plan, --mode ou --autopilot é especificada. Consulte Plan-then-autopilot.
COPILOT_PROMPT_FRAMEDefina como 1 para habilitar o quadro decorativo da IU ao redor do prompt de entrada ou como 0 para desabilitá-lo. Substitui o sinalizador de recurso experimental PROMPT_FRAME para a sessão atual.
COPILOT_SKILLS_DIRSLista separada por vírgulas de diretórios adicionais para habilidades.
PLUGINS_DASHBOARDDefina para false desabilitar o painel de plug-ins aberto por bare /plugin, /mcpe , e /skillspara desabilitar os comandos não interativos/copilot plugin``copilot plugins.
COPILOT_STRIP_REASONING_ON_RESUMEDefina como 0 ou false para manter os tokens de raciocínio BYOK durante uma retomada de sessão, em vez de removê-los. O padrão é despojá-los.
COPILOT_SUBAGENT_MAX_CONCURRENTMáximo de subagentes simultâneos por sessão (padrão: 32, intervalo: 1256).
COPILOT_SUBAGENT_MAX_DEPTHProfundidade máxima de aninhamento de subagente (padrão: 4, intervalo: 1128).
COPILOT_TASK_WAIT_TIMEOUT_SECONDSNúmero máximo de segundos -p (e -p --autopilot) para esperar a conclusão de agentes em segundo plano ou comandos de shell pendentes antes de encerrar (padrão: 600; 0 encerra imediatamente, sem esperar).
GH_HOST
GitHub nome do host para ambos GitHub CLI e Copilot CLI (padrão: github.com). Defina como seu GitHub Enterprise Cloud com nome de host de residência de dados. Substitui por COPILOT_GH_HOST somente para Copilot CLI.
GH_TOKENToken de autenticação. Tem precedência sobre GITHUB_TOKEN.
GITHUB_COPILOT_PROMPT_MODE_EXTENSIONSDefina true para carregar extensões de projeto e permitir ferramentas de gerenciamento de extensão em modo de prompt (-p). Desabilitado por padrão para impedir a execução do código de extensão controlado pelo repositório sem confiança interativa.
GITHUB_COPILOT_PROMPT_MODE_REPO_HOOKSDefina como true para carregar os ganchos do repositório no modo de prompt (-p). Os ganchos do repositório também são carregados automaticamente quando a pasta já é considerada confiável ou quando COPILOT_ALLOW_ALL estiver definido.
GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCPDefina como true para carregar as fontes do MCP da área de trabalho no modo de prompt (-p). Desabilitado por padrão para impedir a inicialização de servidores MCP controlados por repositório sem confiança interativa.
GITHUB_TOKENToken de autenticação.
PLAIN_DIFFDefinir para true para desativar a renderização de diferenças avançadas.
USE_BUILTIN_RIPGREPDefina como false para usar o ripgrep do sistema em vez da versão agrupada.
USE_TGREPDefina como true para sempre usar tgrep, um mecanismo de busca indexado por trigramas, independentemente do tamanho do repositório, ou como false para sempre usar ripgrep. Quando não definido, Copilot CLI alterna automaticamente de ripgrep para tgrep quando um repositório excede um limite de contagem de arquivos específico da plataforma.

Configurações do arquivo de configuração

Para obter informações detalhadas sobre as configurações do arquivo de configuração, incluindo a lista completa de configurações de usuário, configurações de repositório, configurações locais e como elas são em cascata, consulte Diretório de configuração do GitHub Copilot CLI.

Observação

As configurações do usuário foram armazenadas anteriormente em ~/.copilot/config.json. As configurações editáveis pelo usuário existentes nesse local são migradas automaticamente para ~/.copilot/settings.json ao inicialização.

inicialização do projeto Copilot

Quando você usa o comando copilot init ou o comando barra /init em uma sessão interativa, Copilot analisa sua base de código e grava ou atualiza um arquivo .github/copilot-instructions.md no repositório. Este arquivo de instruções personalizado contém diretrizes específicas do projeto que melhorarão as sessões futuras da CLI.

Normalmente, você usará copilot init, ou /init, quando iniciar um novo projeto ou quando começar a usar Copilot CLI em um repositório existente.

O copilot-instructions.md arquivo que é criado ou atualizado normalmente documenta:

  • Comandos de compilação, teste e lint.
  • Arquitetura de alto nível.
  • Convenções específicas do Codebase.

Se o arquivo já existir, Copilot sugerirá melhorias que você pode optar por aplicar ou rejeitar.

A CLI procura o copilot-instructions.md arquivo na inicialização e, se ele estiver ausente, ele exibirá a mensagem:

💡 Nenhuma instrução de co-piloto foi encontrada. Execute /init para gerar um arquivo copilot-instructions.md para este projeto.

Se você não quiser criar esse arquivo, poderá ocultar permanentemente essa mensagem de inicialização para o repositório atual usando o /init suppress comando barra.

Para obter mais informações, consulte Adicionando instruções personalizadas do repositório para GitHub Copilot.

Use --sandbox ou --no-sandbox com copilot init para habilitar ou desabilitar o sandbox do shell no nível do sistema operacional apenas para a sessão de inicialização, sem alterar a configuração de sandbox salva. Essas opções estão sujeitas ao mesmo nível mínimo de sandbox gerenciado pela empresa que outros pontos de entrada — consulte Nível mínimo de sandbox gerenciado pela empresa.

Locais de instruções personalizadas

Copilot CLI carrega instruções personalizadas desses locais simultaneamente (todas são mescladas):

LocalidadeNotes
CLAUDE.mdNa raiz do Git e no cwd
GEMINI.mdNa raiz do Git e no cwd
AGENTS.mdNa raiz do Git e no cwd
.github/instructions/**/*.instructions.mdNa raiz do Git e no cwd
.github/copilot-instructions.mdNa raiz do Git e no cwd
$HOME/.copilot/copilot-instructions.md
$HOME/.copilot/instructions/**/*.instructions.md
COPILOT_CUSTOM_INSTRUCTIONS_DIRSDiretórios adicionais por meio de variável de ambiente.

Importações de instruções personalizadas

Os arquivos de instruções oferecem suporte a @path importações. Prefixe uma linha com @ seguido por um caminho para alinhar o conteúdo de outro arquivo. Os caminhos podem ser relativos ao diretório do arquivo de instrução ou absoluto. As importações são resolvidas recursivamente, até um limite de profundidade, com proteções contra ciclos e limites de tamanho. Isso tem suporte em AGENTS.md, CLAUDE.mde .github/copilot-instructions.md.

Referência de ganchos

Para obter informações detalhadas sobre ganchos, incluindo formatos de configuração de gancho, eventos de gancho, conteúdos de entrada e controle de decisão, consulte Referência de ganchos do GitHub Copilot.

Configuração do servidor MCP

Os servidores MCP fornecem ferramentas adicionais para o agente da CLI. Configurar servidores persistentes em ~/.copilot/mcp-config.json. Use --additional-mcp-config para adicionar servidores para uma única sessão.

Os servidores locais (stdio) que são iniciados dentro do sandbox (consulte o comando de barra /sandbox) mostram o status connected (sandboxed) em copilot mcp list e /mcp list, pois os servidores remotos (HTTP/SSE) nunca são executados em sandbox. Disponível apenas no modo experimental.

copilot mcp list e /mcp list marcam um servidor desabilitado com o sufixo (disabled) na saída em texto ou com "enabled": false por servidor na saída --json. copilot mcp get mostra uma Status: Enabled/Disabled linha.

Ao alternar /sandbox, apenas os servidores MCP locais (stdio) são reiniciados, pois são iniciados dentro do sandbox. Os servidores remotos (HTTP/SSE) permanecem conectados.

copilot mcp Subcomando

Use copilot mcp para gerenciar as configurações do servidor MCP da linha de comando sem iniciar uma sessão interativa.

SubcommandDescrição
list [--json]Liste todos os servidores MCP configurados agrupados por origem, incluindo servidores fornecidos por plug-in.
get <name> [--json]Mostrar configuração e ferramentas para um servidor específico. Para servidores fornecidos pelo plug-in, também mostra o nome e a versão do plug-in de origem.
add [options] <name> [url]Adicione um servidor à configuração do usuário. Grava em ~/.copilot/mcp-config.json.
remove <name>Remova um servidor no nível do usuário. Os servidores de espaço de trabalho devem ser editados diretamente em seus arquivos de configuração.

Para servidores locais (stdio), forneça o comando após --:

Shell
copilot mcp add SERVER-NAME -- COMMAND [ARGS...]

Para servidores HTTP ou SSE remotos, especifique o transporte e forneça a URL:

Shell
copilot mcp add --transport http SERVER-NAME URL

** copilot mcp add Opções:**

OpçãoDescrição
-- <command> [args...]Comandos e argumentos para servidores locais (stdio).
<url>URL para servidores remotos.
--transport <transport>Tipo de transporte: stdio, httpou sse. O padrão é stdio.
--env KEY=VALUEVariável de ambiente (repetível).
--header "HEADER: VALUE"Cabeçalho HTTP para servidores remotos (repetível).
--tools <tools>Filtro de ferramenta: "*" para todos, uma lista separada por vírgulas ou "" para nenhum.
--timeout <ms>Tempo limite em milissegundos para descoberta de ferramentas e chamadas de ferramentas. Padrão: 30000.
--jsonA saída adicionou a configuração como JSON.
--show-secretsMostrar valores completos de variável de ambiente e cabeçalho.

No formulário interativo, insira o /mcp add campo como pares separados por vírgulas / ou como um objeto JSON (por exemplo, /mcp edit).env``KEY=VALUE``{"API_KEY":"secret"} $PATH é incluído por padrão e não precisa ser listado.

Cuidado

--show-secrets é capaz de imprimir valores confidenciais de variáveis de ambiente e de cabeçalho no seu terminal ou nos arquivos de log. Use essa opção apenas em ambientes confiáveis e evite copiar, colar ou capturar a saída em logs ou histórico compartilhados.

Tipos de transporte

TipoDescriçãoCampos obrigatórios
local / stdioProcesso local comunicando-se por meio de stdin/stdout.
command, args
httpServidor remoto utilizando transporte HTTP transmissível.
"streamable-http" também é aceito como um alias e é normalizado para "http".url
sseServidor remoto usando o transporte de eventos Server-Sent.url

Campos de configuração do servidor local

CampoObrigatórioDescrição
commandSimComando para iniciar o servidor.
argsSimArgumentos de comando (matriz).
toolsSimFerramentas para habilitar: ["*"] para todos ou uma lista de nomes de ferramentas específicos.
envNoVariáveis de ambiente. Dá suporte a $VAR, ${VAR} e ${VAR:-default} expansão.
cwdNoDiretório de trabalho para o servidor.
timeoutNoTempo limite em milissegundos para descoberta de ferramentas e chamadas de ferramentas. Padrão: 30000.
typeNo
"local" ou "stdio". Padrão: "local".
deferToolsNo
"auto" (padrão) ou "never". Defina como "never" para manter as ferramentas deste servidor sempre visíveis, mesmo quando a busca por ferramentas estiver ativa.
disableToolCacheNoDefina para true ignorar o carregamento e a persistência do instantâneo da ferramenta para este servidor.

Cache de instantâneo de ferramentas

Copilot CLI salva um instantâneo da lista de ferramentas de cada servidor local para que as ferramentas fiquem disponíveis imediatamente ao iniciar, enquanto a descoberta em tempo real é concluída em segundo plano. A descoberta em tempo real sempre é executada e substitui o snapshot quando é concluída.

Defina disableToolCache: true em um servidor para forçar a descoberta em tempo real somente para esse servidor ou defina a variável de ambiente COPILOT_MCP_TOOL_CACHE=false para desabilitar o carregamento e a persistência de instantâneos para o processo inteiro. Ambas as recusas deixam os arquivos de cache existentes intocados.

Registro npm privado

Use --registry no array args para obter um pacote de um registro npm privado – por exemplo, Artifactory ou um feed de pacotes GitHub:

{
    "mcpServers": {
        "my-internal-server": {
            "command": "npx",
            "args": [
                "--registry", "https://npm.pkg.github.com",
                "@my-org/internal-mcp-server"
            ],
            "tools": ["*"]
        }
    }
}

A opção --registry e outras opções de configuração do npm (--userconfig, , --prefix``--globalconfig, --cache, --node-options, --workspace, -w) são tratadas como argumentos que consomem valor ao calcular a impressão digital de identidade do servidor. Isso garante que as verificações de lista de permissões da empresa e a verificação do registro funcionem corretamente quando essas opções aparecerem antes do nome do pacote.

Campos de configuração de servidor remoto

CampoObrigatórioDescrição
typeSim
"http" ou "sse" ("streamable-http" também é aceito como um alias para "http").
urlSimURL do servidor.
toolsSimFerramentas para habilitar.
headersNoCabeçalhos HTTP. Dá suporte à expansão variável.
oauthClientIdNoID do cliente OAuth estático (ignora o registro dinâmico).
oauthPublicClientNoSe o cliente OAuth é público. Padrão: true. Definido como false para clientes confidenciais com um segredo armazenado.
oauthGrantTypeNoTipo de concessão OAuth: "authorization_code" (padrão, fluxo baseado em navegador) ou "client_credentials" (totalmente sem interface gráfica, sem navegador ou retorno de chamada).
oidcNoHabilitar a injeção de token OIDC. Quando true, a CLI injeta tokens OIDC em qualquer variável GITHUB_COPILOT_OIDC_MCP_TOKEN ou GITHUB_COPILOT_OIDC_MCP_TOKEN_<SUFFIX> referenciada no bloco env do servidor (servidores locais) ou envia o token como cabeçalho Bearer``Authorization (servidores remotos). Para servidores locais, prefira variantes sufixas (por exemplo, ${GITHUB_COPILOT_OIDC_MCP_TOKEN_MY_SVC}) para atribuir um nome de variável exclusivo para cada servidor.
timeoutNoTempo limite em milissegundos para descoberta de ferramentas e chamadas de ferramentas. Padrão: 30000.
deferToolsNo
"auto" (padrão) ou "never". Defina como "never" para manter as ferramentas deste servidor sempre visíveis, mesmo quando a busca por ferramentas estiver ativa.

Autenticação nova do OAuth

Servidores MCP remotos que usam OAuth podem mostrar um needs-auth status quando um token expira ou quando uma conta diferente é necessária. Use /mcp auth <server-name> para disparar um fluxo OAuth novo. Isso abre um prompt de autenticação do navegador, permitindo que você entre ou alterne contas. Depois de concluir o fluxo, o servidor se reconecta automaticamente.

OAuth sem periféricos (concessãoclient_credentials )

Para casos de uso de CI ou cron em que nenhum navegador está disponível, defina oauthGrantType: "client_credentials". Isso requer:

  • oauthClientId— a ID do cliente estático emitida pelo provedor MCP.
  • oauthPublicClient: false— o cliente é confidencial.
  • O client_secret armazenado no chaveiro do sistema (configurada uma vez pela interface do usuário /mcp ou por meio de gravação no OAuth Credential Store).

Quando configurada, a CLI ignora totalmente o navegador, o servidor de retorno de chamada, o PKCE e o registro dinâmico do cliente. A cada 401, ele envia grant_type=client_credentials diretamente para o ponto de extremidade de token descoberto do servidor.

{
    "mcpServers": {
        "headless-api": {
            "type": "http",
            "url": "https://api.example.com/mcp",
            "tools": ["*"],
            "oauthClientId": "YOUR-CLIENT-ID",
            "oauthPublicClient": false,
            "oauthGrantType": "client_credentials"
        }
    }
}

Mapeamento de filtro

Controlar como a saída da ferramenta MCP é processada usando o filterMapping campo na configuração de um servidor.

ModoDescrição
noneSem filtragem.
markdownFormatar saída como Markdown.
hidden_charactersRemova caracteres ocultos ou de controle. Padrão.

Servidores MCP internos

A CLI inclui servidores MCP internos que estão disponíveis sem configuração adicional.

ServidorDescrição
github-mcp-server
GitHub Integração de API: problemas, pull requests, rótulos, confirmações, pesquisa de código e GitHub Actions.
playwrightAutomação do navegador: navegar, clicar, digitar, captura de tela e manipulação de formulários.
fetchSolicitações HTTP pela ferramenta fetch.
timeUtilitários de tempo: get_current_time e convert_time.

Use --disable-builtin-mcps para desabilitar todos os servidores internos ou --disable-mcp-server SERVER-NAME desabilitar um específico.

GitHub Ferramentas do servidor MCP

github-mcp-server fornece as seguintes ferramentas.

ToolsDescrição
get_file_contents, search_codeProcure arquivos de repositório.
list_issues
issue_read
search_issues
Rastreamento de ocorrências.
get_pull_request
list_pull_requests
get_pull_request_files
Solicitações de pull.
list_commits, get_commitHistórico de confirmações
list_workflow_runs, get_workflow_run_logs
GitHub Actions.
get_label
list_label
label_write
Gerenciamento de rótulos.

Nomenclatura do servidor MCP

Os nomes de servidor podem conter caracteres imprimíveis, incluindo espaços, caracteres Unicode e pontuação. Caracteres de controle (U+0000–U+001F, U+007F) e a chave de fechamento (}) não são permitidos. Os nomes de servidor são usados como prefixos para nomes de ferramentas, por exemplo, um servidor nomeado my-server produz nomes de ferramentas como my-server-fetch, e um servidor nomeado My Server produz My Server-fetch.

Sanitização do nome da ferramenta MCP

Nomes de servidor MCP e nomes de ferramentas são sanitizados antes de serem enviados para o modelo. Caracteres inválidos em nomes de ferramentas (qualquer coisa diferente de a-z, A-Z, 0-9, -, _) são substituídos por -. Os caracteres Unicode são codificados em Punycode. O símbolo @ também é substituído por - para evitar conflitos com a codificação Punycode.

O nome combinado (serverName-toolName) é limitado a 64 caracteres. Quando o truncamento criaria uma colisão de nome, um sufixo numérico é acrescentado (por exemplo, my-server-tool2, my-server-tool3) para garantir a unicidade.

Níveis de confiança do servidor MCP

Os servidores MCP são carregados de várias fontes, cada uma com um nível de confiança diferente.

FonteNível de confiançaRevisão necessária
InternaAltoNo
Repositório (.github/mcp.json)MediumRecomendado
Espaço de Trabalho (.mcp.json)MediumRecomendado
Configuração do usuário (~/.copilot/mcp-config.json)User-definedResponsabilidade do usuário
Servidores remotosBaixoSempre

Todas as invocações da ferramenta MCP exigem permissão explícita. Isso se aplica até mesmo a operações somente leitura em serviços externos.

Prioridade de carregamento do servidor MCP

Os servidores MCP de diferentes fontes são mesclados em ordem de prioridade (primeiro mais alto). Quando os servidores compartilham um nome, a fonte de prioridade mais alta tem precedência.

  1. --additional-mcp-config opção (máxima)
  2. Servidores disponibilizados por plug-ins
  3. Servidores de espaço de trabalho – .mcp.json e .github/mcp.json carregados do diretório de trabalho até a raiz do Git; requer que a pasta seja confiável
  4. ~/.copilot/mcp-config.json (mais baixo)

Observação

Os servidores MCP do espaço de trabalho (.mcp.json e .github/mcp.json) são carregados tanto em sessões interativas quanto em sessões no modo servidor do SDK, desde que o diretório de trabalho seja considerado confiável. Para obter mais informações sobre a confiabilidade da pasta, consulte Permitir e negar o uso da ferramenta.

Lista de permissões do MCP da Empresa

GitHub Enterprise as organizações podem impor uma lista de permissões de servidores MCP permitidos. Quando ativa, a CLI avalia cada servidor não padrão em relação à política corporativa antes de se conectar.

Quando uma política do registro GitHub Enterprise é detectada (ou o sinalizador de recurso experimental MCP_ENTERPRISE_ALLOWLIST está habilitado), a CLI:

  1. Calcula uma impressão digital para cada servidor não padrão configurado com base em seu comando, argumentos e URL remota.
  2. Envia as impressões digitais para o ponto de extremidade de avaliação da lista de permissões da empresa.
  3. Permite apenas servidores cujas impressões digitais são aprovadas; todos os outros são bloqueados com uma mensagem nomeando a empresa.

Essa verificação é encerrada por falha: se o ponto de extremidade de avaliação não for acessível ou retornar um erro, os servidores não padrão serão bloqueados até que a política possa ser verificada.

Quando um servidor é bloqueado por uma lista de permissões da empresa, a CLI exibe:

MCP server "SERVER-NAME" was blocked by your enterprise "ENTERPRISE-NAME".
Contact your enterprise administrator to add this server to the allowlist.

Os servidores padrão internos são sempre isentos da imposição da lista de permissões.

Migrando de .vscode/mcp.json

Se o projeto usar .vscode/mcp.json (formato de configuração MCP do VS Code), migre para .mcp.jsonGitHub Copilot CLI. A migração mapeia novamente a servers chave para mcpServers.

Shells POSIX (bash, zsh, fish e outros):

jq '{mcpServers: .servers}' .vscode/mcp.json > .mcp.json

Requer jq.

PowerShell:

pwsh -NoProfile -Command "`$json = Get-Content '.vscode/mcp.json' -Raw | ConvertFrom-Json; `$content = ([pscustomobject]@{ mcpServers = `$json.servers } | ConvertTo-Json -Depth 100); [System.IO.File]::WriteAllText('.mcp.json', `$content, (New-Object System.Text.UTF8Encoding `$false))"

Em Windows, substitua pwsh por powershell se estiver usando Windows PowerShell em vez do PowerShell Core.

Saída do servidor Stdio

O transporte stdio do MCP reserva o stdout exclusivamente para mensagens JSON-RPC delimitadas por quebras de linha. A interface de linha de comando (CLI) filtra automaticamente todas as linhas que não estão em JSON — logs em texto simples, rastreamentos de pilha de exceções ou linhas contendo apenas espaços em branco — antes de encaminhar a saída ao analisador do protocolo.

Escreva toda a saída de diagnóstico em stderr, não stdout. Um servidor que grava logs ou mensagens de erro no stdout pode disparar um loop de comentários de erro de análise que trava o handshake de inicialização; o filtro impede isso soltando silenciosamente quadros não JSON.

Linhas com mais de 1 MB não passam pela verificação estrutural e são encaminhadas como estão, para evitar dividir ou descartar quadros de protocolo grandes demais, mas válidos (por exemplo, uma resposta tools/list grande).

Referência de habilidades

As habilidades são arquivos markdown que estendem o que a CLI pode fazer. Cada habilidade reside em seu próprio diretório que contém um SKILL.md arquivo. Quando invocado (via /SKILL-NAME ou automaticamente pelo agente), o conteúdo da habilidade é injetado na conversa.

Campos de frontmatter de habilidades

CampoTipoObrigatórioDescrição
namecadeiaSimIdentificador exclusivo para a habilidade. Somente letras, números e hifens. Máximo de 64 caracteres.
descriptioncadeiaSimO que a habilidade faz e quando usá-la. Máximo de 1024 caracteres.
argument-hintcadeiaNoDica de forma livre que descreve argumentos esperados, mostrada no seletor de habilidades (por exemplo, "[target] [mode]").
allowed-toolscadeia de caracteres ou string[]NoLista separada por vírgulas ou matriz yaml de ferramentas que são automaticamente permitidas quando a habilidade está ativa. Use "*" para todas as ferramentas.
user-invocablebooleanNoSe os usuários podem invocar a habilidade com /SKILL-NAME. Padrão: true.
disable-model-invocationbooleanNoImpedir que o agente invoque automaticamente essa habilidade. Padrão: false.

Localizações de habilidades

As habilidades são carregadas desses locais em ordem de prioridade (o primeiro encontrado vence para nomes duplicados).

LocalidadeScopeDescrição
.github/skills/ProjetoHabilidades específicas de projeto.
.agents/skills/ProjetoLocal alternativo do projeto.
.claude/skills/ProjetoLocal compatível com Claude.
Pai .github/skills/HerdadoSuporte para diretório raiz do Monorepo.
~/.copilot/skills/PessoalHabilidades pessoais para todos os projetos.
~/.agents/skills/PessoalHabilidades de agente compartilhadas em todos os projetos.
Diretórios de plug-inPlug-inHabilidades de complementos instalados.
COPILOT_SKILLS_DIRSPersonalizadoDiretórios adicionais (separados por vírgula).
--add-dir <path>Raiz adicionada
.github/skills/ nos diretórios adicionados com --add-dir, /add-dir ou additionalDirectories do SDK. Essa é uma decisão de confiança: as habilidades adicionadas são executadas com a mesma confiança que as habilidades do projeto.
(agrupado com a CLI)InternaHabilidades enviadas com a CLI. Prioridade mais baixa , substituível por qualquer outra fonte.
(org/enterprise)RemotoHabilidades hospedadas por sua organização ou empresa, projetadas por meio da retransmissão AHP. O conteúdo é buscado sob demanda quando a habilidade é invocada.

As habilidades remotas são projetadas juntamente com as habilidades locais e seguem a mesma prioridade baseada em nome quando uma habilidade local tem o mesmo nome.

Quando dois plug-ins fornecem habilidades com o mesmo nome, ambos coexistem usando nomes de invocação qualificados para plug-in, como /my-plugin/search e /other-plugin/search. O nome simples é encaminhado para o plug-in com prioridade mais alta. Isso se aplica somente a habilidades; os comandos mantêm a eliminação de duplicação baseada em camada padrão, em que a fonte de prioridade mais alta vence.

Instalando uma habilidade de forma não interativa

Use copilot plugins install --skill para instalar uma habilidade de um arquivo, URL ou diretório sem abrir uma sessão interativa:

# Install for your user account (default scope)
copilot plugins install --skill ./my-skill/SKILL.md

# Install into the current project (.github/skills; file or URL skills only)
copilot plugins install --skill --scope project ./my-skill/SKILL.md

Instalar um diretório registra-o como uma fonte de habilidade personalizada em vez de copiá-lo. A instalação de um arquivo ou URL copia o conteúdo da habilidade no diretório de habilidades pessoais ou de projeto. O comando interativo equivalente é /skills add [--project] <FILE|URL|DIRECTORY>. Para obter a referência de opção completa, consulte referência de plugin da CLI GitHub Copilot.

Comandos (formato de habilidade alternativa)

Os comandos são uma alternativa às habilidades armazenadas como arquivos individuais .md em .claude/commands/. O nome do comando é derivado do nome do arquivo. Os arquivos de comando usam um formato simplificado (nenhum name campo necessário) e dão suporteargument-hint, descriptione allowed-tools``disable-model-invocation. Os comandos têm prioridade menor do que as habilidades com o mesmo nome.

Referência de agentes personalizados

Agentes personalizados são agentes de IA especializados definidos em arquivos Markdown. O nome do arquivo (extensão menos) torna-se a ID do agente. Use .agent.md ou .md como a extensão de arquivo.

Agentes integrados

AgenteModelo padrãoDescrição
code-reviewclaude-sonnet-4.5Revisão de código com alta relação sinal/ruído. Analisa as diferenças em busca de bugs, problemas de segurança e erros lógicos. Não modificará o código.
exploregpt-5.4-miniExploração rápida da base de código. Pesquisa arquivos, lê código e responde a perguntas. Retorna respostas focadas em menos de 300 palavras. Seguro para ser executado em paralelo.
general-purposeclaude-sonnet-4.5Agente de funcionalidade completa para tarefas complexas de várias etapas. É executado em uma janela de contexto separada.
researchclaude-haiku-4.5Executa pesquisas completas com base nas instruções. Pesquisa GitHub repositórios, busca arquivos, verifica declarações e relata descobertas detalhadas com citações.
rubber-duckmodelo complementarUse um modelo complementar para fornecer uma crítica construtiva de propostas, designs, implementações ou testes. Identifica pontos fracos e sugere melhorias. Consulte Sobre o agente pato de borracha.
security-reviewclaude-sonnet-4.5Revisão de código focada em segurança. Analisa alterações em vulnerabilidades de alta confiabilidade em 11 categorias. Apenas sinaliza problemas com >80% de confiança na possibilidade de exploração. Informa as pontuações de severidade e de confiança. Não modificará o código.
taskclaude-haiku-4.5Execução de comandos (testes, compilações, lints). Retorna um breve resumo em caso de sucesso, saída completa em caso de falha.

code-review e security-review nunca encaminham uma revisão completa para outro agente de revisão: iniciar um deles já atende a uma solicitação para "usar" ou "chamar" um revisor, portanto eles próprios realizam a revisão, em vez de delegar toda a tarefa para um subagente code-review ou security-review aninhado, recursivamente, ao longo de toda a cadeia de delegação. code-review ainda encaminha para o especialista dedicado security-review as partes de uma solicitação voltadas à segurança, e ambos os agentes podem delegar a agentes que não fazem revisão, como explore, um trabalho pontual de levantamento de fatos com escopo independente.

Campos de frontmatter personalizados do agente

CampoTipoObrigatórioDescrição
descriptioncadeiaSimDescrição mostrada na lista de agentes e na ferramenta task.
inferbooleanNoPermitir a delegação automática pelo agente principal. Padrão: true.
mcp-serversobjetoNoServidores MCP para conectar. Usa o mesmo esquema que ~/.copilot/mcp-config.json.
modelcadeiaNoModelo de IA para este agente. Quando não definido, herda o modelo do agente externo. Quando o modelo de sessão é definido Auto como (selecionado pelo servidor), os subagentes sempre herdam o modelo de sessão resolvido, independentemente desse campo.
namecadeiaNoNome de exibição. O padrão é o nome do arquivo.
reasoningEffortcadeiaNoEsforço de raciocínio padrão para esse agente (por exemplo, "low", "medium"ou "high"). Quando não definido, herda o esforço do agente externo.
toolscadeia de caracteres[]NoFerramentas disponíveis para o agente. Padrão: ["*"] (todas as ferramentas).

model e reasoningEffort se aplicam independentemente de o agente ser despachado pela ferramenta task ou iniciado diretamente — por exemplo, por meio do SDK session.startSubagent. Isso é resolvido com a seguinte precedência, da mais alta para a mais baixa: um valor explícito por chamada, a substituição subagents em model, o campo /reasoningEffort``~/.copilot/settings.json da definição do agente e, em seguida, o valor da sessão pai. Um modelo ou esforço declarado que não possa ser atendido recorre ao valor da sessão em vez de fazer o despacho falhar.

Locais do agente personalizado

ScopeLocalidade
Projeto
.github/agents/ ou .claude/agents/
Usuário~/.copilot/agents/
Plug-in<plugin>/agents/
Raiz adicionada
.github/agents/ em um diretório adicionado com --add-dir, /add-dir ou o additionalDirectories do SDK. Adicionar o diretório é uma decisão de confiança: seus agentes são carregados como configuração confiável.

Para agentes com escopo no projeto, a CLI percorre os diretórios ascendentes a partir do diretório de trabalho atual até a raiz do Git, carregando os diretórios .github/agents/ e .claude/agents/ em cada nível de ancestral. Isso significa que cada pacote ou subdiretório em um repositório único pode fornecer seus próprios agentes. Quando vários .github/agents/ diretórios existem no caminho, todos são carregados, com o diretório mais profundo tendo a prioridade mais alta. A convenção .github/agents/ tem precedência sobre .claude/agents/ no mesmo nível. Os agentes de nível de usuário têm prioridade menor do que os agentes no nível do projeto. Os agentes de plug-in têm a prioridade mais baixa.

Comunicação do agente

Use list_agents e write_agent dentro de agentes personalizados para inspecionar agentes próximos e coordenar o trabalho em uma sessão com vários agentes.

Rótulos de relação em list_agents

Os rótulos de relação identificam como agentes visíveis se relacionam com o agente atual. Os rótulos aparecem quando um subagente é executado em uma sessão principal com a comunicação compartilhada entre sessões irmãs habilitada.

LabelMeaningUse para
"self"O agente atualConfirmar qual entrada representa o agente ativo
"sibling"Um agente iniciado pelo mesmo paiCoordenar com agentes pares por meio de write_agent
"child"Um agente iniciado pelo agente atualAcompanhar as atividades de acompanhamento delegadas pelo agente atual

Listagem restrita ao escopo

Use scope em list_agents para restringir a lista antes de escolher os alvos.

Valor scopeReturnsUse para
OmitidoAgentes próximos no contexto atualConsulte o conjunto de trabalho padrão para o fluxo de trabalho atual
"siblings"Somente agentes irmãosLocalizar agentes pares iniciados pelo mesmo pai
"children"Somente os agentes filhos do agente atualRevisar o trabalho delegado pelo agente atual
"all"Todos os agentes visíveisInspecionar a árvore de sessão completa sem usá-la para coordenação

Em sessões com um único agente, a exibição padrão é centralizada nos agentes secundários. Em sessões de vários agentes, o modo de exibição padrão mostra o contexto local imediato em vez de toda a árvore.

list_agents(scope="siblings")
list_agents(scope="children")
list_agents(scope="all")

Mensagens com escopo

Use scope em write_agent para enviar uma mensagem a vários agentes relacionados.

Use mensagens com escopo restrito apenas a partir de um subagente em execução dentro de uma sessão principal com a comunicação compartilhada entre sessões irmãs habilitada. Em sessões de nível superior, tenha como alvo os agentes com valores explícitos de agent_id.

Valor scopeEnvia paraUse para
"siblings"Todos os agentes irmãos visíveisCoordenar o trabalho entre pares em uma sessão compartilhada
"children"Todos os agentes filhos do agente atualEnviar o mesmo acompanhamento para o trabalho delegado

Se um escopo corresponder a muitos agentes, write_agent retorna um erro e, em vez disso, solicita valores explícitos de agent_id de list_agents.

write_agent(scope="children", message="Re-check your findings against the updated schema.")
write_agent(scope="siblings", message="Post status when your current check completes.")
write_agent(agent_id="explore-auth", message="Focus on token refresh flow and report only confirmed issues.")

Limites de subagente

A CLI impõe limites de profundidade e simultaneidade para impedir a geração de agente fugitivo.

LimitDefaultMax
Profundidade máxima6256
Máximo simultâneobaseado em plano32

A profundidade conta quantos agentes estão aninhados dentro um do outro. Quando o limite de profundidade é atingido, o agente mais interno não pode gerar subagentes adicionais. Concorrência conta quantos subagentes estão sendo executados simultaneamente em toda a árvore de sessão. Quando o limite é atingido, novas solicitações de subagente são rejeitadas até que um agente ativo finalize sua tarefa.

O limite de simultaneidade padrão depende do seu Copilot plano:

PlanMáximo simultâneo
Gratuito/Educacional2
Pro/Pro+4
Max8
Negócio16
Enterprise32
Cobrança baseada no uso32

Usuários com cobrança baseada no uso podem ignorar esses limites com as configurações subagents.maxConcurrency e subagents.maxDepth:

{
    "subagents": {
        "maxConcurrency": 16,
        "maxDepth": 10
    }
}

Os valores fora do intervalo válido são limitados: maxConcurrency é limitado a 32, e maxDepth é limitado a 256. Essas configurações são ignoradas para planos que não usam cobrança baseada em uso. Consulte as configurações do arquivo de configuração.

Agentes assistentes

Os agentes sidekick são executados automaticamente em segundo plano e publicam o contexto na caixa de entrada da sessão. Eles respondem a eventos de sessão em vez de serem invocados explicitamente.

Adicione um bloco sidekick: a qualquer definição de agente para transformá-lo em um agente auxiliar:

---
name: Context Gatherer
description: Gathers relevant context when the working directory changes
sidekick:
    triggers:
        - session.context_changed
        - event: user.message
          limit: 1
    behavior: persistent
    maxSendsPerTurn: 2
---

Gather useful context about the current repository and working directory.
Summarize recent changes and any relevant project structure.

Gatilhos de sidekick

Cada entrada em triggers é uma string simples com o nome do evento, que é disparada um número ilimitado de vezes, ou um objeto com event e um limit opcional.

AcontecimentoDescrição
user.messageÉ acionado a cada mensagem do usuário.
session.context_changedSão disparados quando o diretório de trabalho, o repositório ou a ramificação são alterados (por exemplo, após cd ou quando se troca as ramificações de Git).
Campo de acionamentoTipoDefaultDescrição
eventstringObrigatórioTipo de evento de sessão que inicia esse agente.
limitnumberUnlimitedNúmero máximo de vezes que esse gatilho pode ser acionado por sessão. Deve ser um inteiro positivo quando definido.

Campos de configuração do sidekick

CampoTipoDefaultDescrição
triggers
string[] ou object[]ObrigatórioTipos de evento de sessão que iniciam esse agente. É necessário, pelo menos, um acionador.
behaviorstring"restart"
"restart": cancele qualquer execução anterior e reinicie a cada acionamento.
"persistent": mantenha a mesma execução de longa duração e envie novas mensagens para o loop existente em vez de reiniciá-la.
maxSendsPerTurnnumber1Número máximo de envios para a caixa de entrada permitidos por gatilho. No modo "persistent", cada mensagem enviada pelo usuário redefine esse orçamento.

O comportamento de "restart" é indicado para agentes de coleta de contexto sem estado. O comportamento de "persistent" é adequado para agentes que acumulam estado ao longo dos turnos.

Respostas de aprovação de permissão

Quando a CLI solicita permissão para executar uma operação, você pode responder com as seguintes chaves.

ChaveEfeito
yPermitir essa solicitação específica uma vez.
nNegar essa solicitação específica uma vez.
!Permitir todas as solicitações semelhantes para o restante da sessão.
#Negar todas as solicitações semelhantes para o restante da sessão.
?Mostrar informações detalhadas sobre a solicitação.

Quando a caixa de diálogo completa é mostrada, você também pode escolher entre estas opções:

OpçãoScopePersistência
Uma vezUso únicoNenhum
Este localAté ser desmarcado manualmenteSalvo em disco por localização
SemprePermanenteArquivo de configuração

Essa opção de local é exibida quando a CLI pode determinar uma chave de local (raiz do Git ou diretório atual). A permissão é salva no disco, de modo que a mesma permissão é concedida automaticamente na próxima vez que você trabalhar nesse diretório, sem que seja necessário confirmar novamente.

Use /permissions reset para limpar as aprovações na memória da sessão atual.

Segurança

Modo planejamento

/plan inicia uma sessão de planejamento em que Copilot CLI pode explorar e analisar sua base de código, mas é impedida de editar seus arquivos de projeto. Specifically:

  • Os arquivos do projeto estão protegidos. Qualquer tentativa de editar, corrigir ou executar um comando de shell que alteraria um arquivo em seu workspace é bloqueada automaticamente. Isso não é apenas uma sugestão para o modelo, ele é imposto diretamente, portanto, não depende do modelo optar por se comportar.
  • O plano em si ainda pode ser escrito. Copilot precisa de um lugar para manter anotações e elaborar o plano, para que ele possa criar e editar arquivos em seu próprio workspace de planejamento privado (incluindo o arquivo de plano que você examinará e aprovará).
  • Subtarefas delegadas também são protegidas. Se Copilot criar uma sessão auxiliar para pesquisar parte da sua pergunta, esse auxiliar herdará as mesmas restrições e também não poderá editar seu projeto.
  • É uma rede de segurança, não uma garantia. Essa proteção foi projetada para capturar tentativas claras e diretas de alterar seus arquivos, não é um bloqueio hermético. Algumas coisas são permitidas intencionalmente para que a pesquisa não seja excessivamente restrita: por exemplo, comandos de shell cujo efeito não pode ser claramente determinado com antecedência e chamadas para ferramentas externas/MCP que você conectou. Na prática, isso raramente é um problema, mas o modo de plano deve ser considerado como "as alterações exigem sua revisão antes de aplicar", não uma garantia absoluta de que nada no disco pode mudar.

Quando estiver satisfeito com o plano, aprove-o para sair do modo de planejamento e permitir que Copilot faça as alterações efetivas.

Análise de segurança de comando

Os comandos do Shell são analisados antes da execução para identificar padrões potencialmente perigosos:

  • Exclusão de arquivo (rm -rf)
  • Modificações do sistema (sudo, chmod 777)
  • Exfiltração de rede (curl com caminhos confidenciais)
  • Acesso a credenciais (leitura de .env, chaves SSH)
  • Atribuições de variáveis de ambiente embutidas que substituem variáveis perigosas (por exemplo, PATH=..., ) LD_PRELOAD=...

Os comandos de alto risco exibem avisos adicionais e exigem confirmação explícita.

Quando o sandboxing está habilitado e a configuração Permitir bypass de área restrita está ativada (o padrão), um comando de shell síncrono bloqueado pelo sistema de arquivos da área restrita ou pela política de rede solicita que você a execute novamente fora da área restrita— nenhum modelo de ida e volta é necessário. Ao aprovar o prompt, o comando é executado novamente e sua saída é retornada. O declínio mantém o resultado em área restrita (bloqueado).

Para obter mais informações, consulte Configurando as configurações locais da sandbox.

Lista de negação de variável de ambiente

A interface de linha de comando (CLI) bloqueia a atribuição em linha de variáveis de ambiente, que pode ser explorada para executar código arbitrário, mesmo em comandos somente de leitura. As categorias bloqueadas incluem:

CategoriaExemplos
Injeção de vinculador dinâmico
LD_*, DYLD_* (todos os prefixos)
Substituições de configuração indexadas do Git
GIT_CONFIG_COUNT, GIT_CONFIG_KEY_*, GIT_CONFIG_VALUE_* (todos os prefixos GIT_CONFIG_)
Hooks de programas externos do Git
GIT_EXTERNAL_DIFF, GIT_PROXY_COMMAND
Substituições no arquivo de configuração do Git
GIT_CONFIG
GIT_CONFIG_GLOBAL
GIT_CONFIG_SYSTEM
Shell PATH e arquivos de inicialização
PATH
BASH_ENV
ENV
Variáveis bloqueadas existentes
PAGER, GIT_PAGER, GIT_EDITOR, VISUAL, EDITOR, , GIT_SSH, GIT_SSH_COMMAND, , GIT_ASKPASS, BROWSER, GH_BROWSER

web_fetch Proteção SSRF

A ferramenta web_fetch aplica proteções contra falsificação de solicitações do lado do servidor (SSRF) antes de realizar qualquer solicitação HTTP:

  • Lista de permissões de protocolo: somente http:// e https:// URLs são permitidas. file:// e outros esquemas são rejeitados.
  • Lista de bloqueio de IP: solicitações para endereços de loopback (127.x.x.x, ::1), intervalos privados RFC-1918 (10.x, 172.16–31.x, 192.168.x) e endpoints de metadados da nuvem (por exemplo, 169.254.169.254) são bloqueadas pela verificação de IP literal e pela pré-resolução de DNS.
  • Redirecionamentos validados: web_fetch segue 3xx redirecionamentos (até 10 saltos, dentro de um orçamento de rede de 60 segundos), validando novamente o destino de cada salto na mesma lista de bloqueios de IP antes de segui-lo. Um redirecionamento para uma origem diferente da URL original requer aprovação de permissão, o mesmo que qualquer outra busca entre origens; Os redirecionamentos de mesma origem são seguidos sem um prompt extra. O resultado final anota quando o conteúdo era (redirected from <original URL>).

Para permitir que web_fetch alcance localhost durante o desenvolvimento — por exemplo, para um servidor local de documentação — defina a seguinte variável de ambiente:

export COPILOT_WEB_FETCH_ALLOW_LOCALHOST=1

Permissões do diretório de ferramentas de sandbox

Quando o sandboxing local está habilitado, Copilot CLI descobre os diretórios de ferramentas que um comando em área restrita provavelmente precisará e concede a cada um acesso somente leitura, para que um comando possa executar uma cadeia de ferramentas instalada sem poder modificá-la . A detecção é executada para cada comando, antes que o processo seja iniciado, e lê dois tipos de fontes no ambiente do comando.

  • PATH(Path em Windows). Cada diretório listado é uma concessão de candidato.
  • Variáveis nomeadas da toolchain. A CLI inspeciona as variáveis na tabela abaixo em cada sistema operacional. Uma variável que contém um único diretório concede acesso a esse diretório; uma variável que contém uma lista de caminhos é separada usando o separador de caminhos do sistema operacional (; no Windows, : nos demais sistemas), e cada entrada se torna uma candidata a concessão de acesso.

Um candidato só é aceito quando é um caminho absoluto existente e resolve para um diretório. Os candidatos são descartados — e o motivo registrado no destino de log sandbox_spawn — quando são relativos, não existem, resolvem para a raiz de um sistema de arquivos (como / ou C:\) ou ficam em um local crítico do sistema (%WINDIR% no Windows; /bin, /sbin, /usr/bin, /usr/sbin, /boot, /proc, /sys e /dev no Linux e no macOS). Links simbólicos são resolvidos antes dessas verificações e diretórios duplicados são removidos (sem diferenciar maiúsculas de minúsculas em Windows).

VariableCadeia de ferramentasValorNormalmente definido em
PATH / PathExecutáveis (todos)Lista de caminhosAll
PYTHONPATHPythonLista de caminhosAll
PYTHONHOMEPythonDiretório únicoAll
VIRTUAL_ENVPython (venv)Diretório únicoAll
PYENV_ROOTPython (pyenv)Diretório únicoAll
CONDA_PREFIXCondaDiretório únicoAll
GOPATHGoLista de caminhosAll
GOROOTGoDiretório únicoAll
CARGO_HOMERust (Cargo)Diretório únicoAll
RUSTUP_HOMERust (rustup)Diretório únicoAll
JAVA_HOMEJavaDiretório únicoAll
NODE_PATHNode.jsLista de caminhosAll
NVM_HOMENode.js (nvm)Diretório únicoWindows
NVM_SYMLINKNode.js (nvm)Diretório únicoWindows
DOTNET_ROOT.NETDiretório únicoAll
PSModulePathPowerShellLista de caminhosAll
VCINSTALLDIRVisual C++Diretório únicoWindows
VSINSTALLDIRVisual StudioDiretório únicoWindows
VCPKG_ROOTvcpkgDiretório únicoAll
LD_LIBRARY_PATHBibliotecas compartilhadasLista de caminhosLinux

Cada variável é lida em todas as plataformas; a coluna Normalmente definido em mostra onde cada variável é normalmente definida, não uma restrição imposta pela CLI. Uma variável não configurada simplesmente não contribui em nada.

Essas não são as únicas permissões de somente leitura. Copilot CLI também concede acesso aos diretórios de aplicativos do perfil do usuário (~/.local/bin e ~/.local/lib no Linux e macOS; os subdiretórios imediatos de %LOCALAPPDATA%\Programs no Windows), aos locais padrão do sistema e do perfil do usuário e aos caches e registros usados por gerenciadores de pacotes e cadeias de ferramentas comuns (mostrados como acesso a ferramentas de desenvolvimento no relatório /sandbox policy). Para ver a política completamente resolvida para o diretório atual — caminhos com leitura/gravação, somente leitura e negados — execute /sandbox policy em uma sessão. Para obter os conceitos por trás de como a política é montada, consulte Noções básicas sobre políticas de sistema de arquivos para área restrita local em GitHub Copilot CLI.

Monitoramento do OpenTelemetry

Copilot CLI pode exportar rastreamentos e métricas por meio do OpenTelemetry (OTel), proporcionando visibilidade das interações do agente, chamadas LLM, execuções de ferramentas e uso de token. Todos os nomes de sinal e atributos seguem as Convenções Semânticas do OTel GenAI.

O OTel está desativado por padrão sem sobrecarga. Ele é ativado quando qualquer uma das seguintes condições é atendida:

  • COPILOT_OTEL_ENABLED=true
  • OTEL_EXPORTER_OTLP_ENDPOINT está definido
  • COPILOT_OTEL_FILE_EXPORTER_PATH está definido

A configuração do OTel também pode ser definida em VS Code, ou em um arquivo managed-settings.json de toda a empresa. Consulte Habilitar o monitoramento OTel na documentação VS Code e Configurações gerenciadas pela empresa.

Variáveis de ambiente OTel

VariableDefaultDescrição
COPILOT_OTEL_ENABLEDfalseHabilite explicitamente o OTel. Não é necessário se OTEL_EXPORTER_OTLP_ENDPOINT estiver definido.
OTEL_EXPORTER_OTLP_ENDPOINTURL do ponto de extremidade OTLP. Definir isso habilita automaticamente o OTel.
COPILOT_OTEL_EXPORTER_TYPEotlp-httpTipo de exportador: otlp-http ou file. Seleciona automaticamente file quando COPILOT_OTEL_FILE_EXPORTER_PATH está definido.
OTEL_EXPORTER_OTLP_PROTOCOLhttp/jsonProtocolo de fio HTTP OTLP: http/json ou http/protobuf. Aplica-se apenas ao otlp-http exportador.
OTEL_EXPORTER_OTLP_TRACES_PROTOCOLSubstitua OTEL_EXPORTER_OTLP_PROTOCOL apenas para rastreamentos.
OTEL_EXPORTER_OTLP_METRICS_PROTOCOLSubstitua OTEL_EXPORTER_OTLP_PROTOCOL apenas para métricas.
OTEL_SERVICE_NAMEgithub-copilotNome do serviço em atributos de recurso.
OTEL_RESOURCE_ATTRIBUTESAtributos de recursos extras como pares separados por vírgula key=value . Use a codificação por porcentagem para caracteres especiais.
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENTfalseCapture o conteúdo completo do prompt e da resposta. Consulte a captura de conteúdo.
OTEL_LOG_LEVELNível do log de diagnóstico OTel: NONE, ERROR, WARN, INFO, DEBUG, VERBOSE, ALL.
COPILOT_OTEL_FILE_EXPORTER_PATHEscreva todos os sinais neste arquivo como linhas JSON. Definir isso habilita automaticamente o OTel.
COPILOT_OTEL_SOURCE_NAMEgithub.copilotNome do escopo de instrumentação para rastreador e medidor.
OTEL_EXPORTER_OTLP_HEADERSCabeçalhos de autenticação para o exportador OTLP (por exemplo, Authorization=Bearer token).

Vestígios

O runtime emite uma árvore de intervalo hierárquica para cada interação do agente. Cada árvore contém um invoke_agent intervalo raiz, com chat e execute_tool intervalos filho.

invoke_agent atributos de 'span'

Encapsula toda a invocação do agente: todas as chamadas LLM e execuções de ferramentas para uma mensagem de usuário.

  • Tanto as sessões de nível superior quanto as invocações de subagentes (por exemplo, explore, task) usam o tipo de span INTERNAL (no processo); a inferência relacionada ao provedor é representada por spans filhos CLIENT``chat.
  • Sessões de nível superior também incluem server.address e server.port; invocações de subagentes não.
AttributeDescriçãoScope
gen_ai.operation.nameinvoke_agentAmbas
gen_ai.provider.nameProvedor (por exemplo, github, anthropic)Ambas
gen_ai.agent.idIdentificador de definição de agente estável quando conhecido; usos padrão de nível superior github.copilot.defaultAmbas
gen_ai.agent.nameNome do agente (quando disponível)Ambas
gen_ai.agent.descriptionDescrição do agente (quando disponível)Ambas
gen_ai.agent.versionVersão da definição do agente, quando conhecida; caso contrário, versão em tempo de execuçãoAmbas
gen_ai.conversation.idIdentificador de sessãoAmbas
enduser.pseudo.idIdentificador de usuário Copilot pseudônimo de analytics_tracking_id quando disponívelAmbas
gen_ai.request.modelModelo solicitadoAmbas
gen_ai.response.finish_reasons
["stop"] ou ["error"]Ambas
gen_ai.usage.input_tokensTotal de tokens de entrada (todas as voltas)Ambas
gen_ai.usage.output_tokensTotal de tokens de saída (todos os turnos)Ambas
gen_ai.usage.cache_read.input_tokensLeitura de tokens de entrada armazenados em cacheAmbas
gen_ai.usage.cache_creation.input_tokensTokens de entrada em cache criadosAmbas
github.copilot.turn_countNúmero de viagens de ida e volta de LLMAmbas
github.copilot.costCusto monetárioAmbas
github.copilot.aiuUnidades de IA consumidasAmbas
server.addressNome do host do servidorSomente de nível superior
server.portPorta do servidorSomente de nível superior
error.typeNome da classe de erro (em caso de erro)Ambas
gen_ai.input.messagesMensagens de entrada completas como JSON (somente captura de conteúdo)Ambas
gen_ai.output.messagesMensagens de saída completas como JSON (somente captura de conteúdo)Ambas
gen_ai.system_instructionsConteúdo da solicitação do sistema como JSON (captura de conteúdo somente)Ambas
gen_ai.tool.definitionsEsquemas de ferramentas como JSON (somente captura de conteúdo)Ambas

chat atributos de 'span'

Um intervalo por solicitação LLM. Tipo de intervalo: CLIENT.

AttributeDescrição
gen_ai.operation.namechat
gen_ai.provider.nameNome do provedor
gen_ai.request.modelModelo solicitado
gen_ai.request.streamSe o modo de streaming foi usado (somente streaming)
gen_ai.conversation.idIdentificador de sessão
gen_ai.response.finish_reasonsRazões de parada
gen_ai.response.idID de resposta
gen_ai.response.modelModelo resolvido
gen_ai.response.time_to_first_chunkTempo para a primeira parte de transmissão, em segundos (somente transmissão)
gen_ai.usage.cache_creation.input_tokensTokens em cache criados
gen_ai.usage.cache_read.input_tokensLeitura de tokens armazenados em cache
gen_ai.usage.input_tokensTokens de entrada desta vez
gen_ai.usage.output_tokensTokens de saída neste turno
github.copilot.costCusto de turno
github.copilot.aiuAs unidades de IA foram consumidas neste turno
github.copilot.server_durationDuração no lado do servidor
github.copilot.initiatorIniciador de solicitação
github.copilot.turn_idIdentificador de turno
github.copilot.interaction_idIdentificador de interação
server.addressNome do host do servidor
server.portPorta do servidor
error.typeNome da classe de erro (em caso de erro)
gen_ai.input.messagesMensagens completas de prompt como JSON (captura de conteúdo apenas)
gen_ai.output.messagesMensagens de resposta completas como JSON (somente captura de conteúdo)
gen_ai.system_instructionsConteúdo da solicitação do sistema como JSON (captura de conteúdo somente)

execute_tool atributos de 'span'

Um intervalo por chamada de ferramenta. Tipo de intervalo: INTERNAL.

AttributeDescrição
gen_ai.operation.nameexecute_tool
gen_ai.provider.nameNome do provedor (quando disponível)
gen_ai.tool.nameNome da ferramenta (por exemplo, readFile)
gen_ai.tool.typefunction
gen_ai.tool.call.idIdentificador de chamada de ferramenta
gen_ai.tool.descriptionDescrição da ferramenta
error.typeNome da classe de erro (em caso de erro)
gen_ai.tool.call.argumentsArgumentos de entrada da ferramenta como JSON (apenas captura de conteúdo)
gen_ai.tool.call.resultSaída da ferramenta como JSON (somente captura de conteúdo)

Métricas

Métricas de convenção do GenAI

MétricaTipoUnidadeDescrição
gen_ai.client.operation.durationHistogramasDuração da chamada à API LLM e da invocação do agente
gen_ai.client.token.usageHistogramatokensContagens de token por tipo (input/output)
gen_ai.client.operation.time_to_first_chunkHistogramasHora de receber a primeira parte de streaming
gen_ai.client.operation.time_per_output_chunkHistogramasLatência entre partes após a primeira parte
gen_ai.invoke_agent.inference_callsHistograma{inference_call}Número de chamadas ao modelo feitas durante uma invocação do agente, contabilizadas no envio ao provedor (incluindo chamadas com falha e parciais; excluindo solicitações bloqueadas antes do envio). Dimensão: gen_ai.agent.name.
gen_ai.invoke_agent.tool_callsHistograma{tool_call}Número de chamadas de ferramentas do lado do cliente feitas durante uma invocação de agente (chamadas parciais e com falha incluídas; ciclos de vida da ferramenta da CLI sintética e ferramentas do lado do servidor executadas pelo provedor excluídas). Dimensão: gen_ai.agent.name.

Métricas específicas do fornecedor

MétricaTipoUnidadeDescrição
github.copilot.tool.call.countContadorchamadasInvocações de ferramenta por gen_ai.tool.name e success
github.copilot.tool.call.durationHistogramasLatência de execução da ferramenta por gen_ai.tool.name
github.copilot.agent.turn.countHistogramaturnosCiclos de ida e volta de LLM por chamada de agente
github.copilot.mcp.server.connection.countContadorTentativasTentativas concluídas de conexão ao servidor MCP por transporte e resultado
github.copilot.code.lines_addedContadorLinhasLinhas adicionadas por ferramentas de edição de arquivo, registradas em tempo real
github.copilot.code.lines_removedContadorLinhasLinhas removidas por ferramentas de edição de arquivo, registradas em tempo real

Eventos com intervalo

Eventos de ciclo de vida registrados no intervalo ativo entre chat e invoke_agent.

AcontecimentoDescriçãoAtributos de chave
github.copilot.hook.startUm gancho começou a ser executado
github.copilot.hook.type, github.copilot.hook.invocation_id
github.copilot.hook.endO hook foi concluído com êxito
github.copilot.hook.type, github.copilot.hook.invocation_id
github.copilot.hook.errorFalha em um gancho
github.copilot.hook.type
github.copilot.hook.invocation_id
github.copilot.hook.error_message
github.copilot.session.truncationO histórico de conversas foi truncado
github.copilot.token_limit, github.copilot.pre_tokens, github.copilot.post_tokens, github.copilot.pre_messages, github.copilot.post_messages, github.copilot.tokens_removed, , github.copilot.messages_removed, , github.copilot.performed_by
github.copilot.session.compaction_startCompactação de histórico iniciadaNenhum
github.copilot.session.compaction_completeCompactação de histórico concluída
github.copilot.success, github.copilot.pre_tokens, github.copilot.post_tokens, github.copilot.tokens_removed, , github.copilot.messages_removed``github.copilot.message(somente captura de conteúdo)
github.copilot.skill.invokedUma habilidade foi invocada
github.copilot.skill.name, github.copilot.skill.path, , github.copilot.skill.plugin_name``github.copilot.skill.plugin_version
github.copilot.session.shutdownA sessão está sendo fechada
github.copilot.shutdown_type, github.copilot.total_premium_requests, github.copilot.lines_added, , github.copilot.lines_removed``github.copilot.files_modified_count
github.copilot.session.abortO usuário cancelou a operação atualgithub.copilot.abort_reason
exceptionErro de sessão
github.copilot.error_type
github.copilot.error_status_code
github.copilot.error_provider_call_id

Atributos de recursos

Todos os sinais carregam esses atributos de recurso.

AttributeValor
service.name
github-copilot (configurável via OTEL_SERVICE_NAME)
service.versionVersão de execução

Captura de conteúdo

Por padrão, nenhum conteúdo de prompt, respostas ou argumentos de ferramenta são capturados– somente metadados como nomes de modelo, contagens de token e durações. Para capturar o conteúdo completo, defina OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true.

Aviso

A captura de conteúdo pode incluir informações confidenciais, como código, conteúdo de arquivo e prompts do usuário. Habilite isso apenas em ambientes confiáveis.

Quando a captura de conteúdo é habilitada, os atributos a seguir são preenchidos.

AttributeConteúdo
gen_ai.input.messagesMensagens de prompt completo (JSON)
gen_ai.output.messagesMensagens de resposta completas (JSON)
gen_ai.system_instructionsConteúdo do prompt do sistema (JSON)
gen_ai.tool.definitionsEsquemas de ferramentas (JSON)
gen_ai.tool.call.argumentsArgumentos de entrada da ferramenta
gen_ai.tool.call.resultSaída da ferramenta

Leitura adicional