Comandos de linha de comando
| Command | Propósito |
|---|---|
copilot | Inicie a interface interativa do usuário. |
copilot help [topic] | Exibir informações de ajuda. Os tópicos de ajuda incluem: config, , commands, environment, logginge permissions. |
copilot init | Inicialize instruções personalizadas do Copilot para este repositório. |
copilot update | Baixe e instale a versão mais recente. |
copilot version | Exibir informações de versão e verificar se há atualizações. |
copilot login | Autentique usando Copilot através do dispositivo OAuth. Aceita --host HOST para especificar a URL do host GitHub (padrão: https://github.com). |
copilot logout | Saia do GitHub e remova as credenciais armazenadas. |
copilot plugin | Gerenciar plug-ins e mercados de plug-ins. |
Atalhos globais na interface interativa
| Atalho | Propósito |
|---|---|
@ FILENAME | Inclua o conteúdo do arquivo no contexto. |
<kbd>Ctrl</kbd>+<kbd>X</kbd> , 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. |
|
Esc | Cancele a operação atual. |
| ! COMMAND | Execute um comando no shell local, ignorando Copilot. |
|
Ctrl+C | Cancelar a operação/limpar a entrada. Pressione duas vezes para sair. |
|
Ctrl+D | Desligamento. |
|
Ctrl+L | Limpar a tela. |
|
Shift+Tab | Ciclo entre o modo padrão, plano e piloto automático. |
Atalhos de linha do tempo na interface interativa
| Atalho | Propósito |
|---|---|
| ctrl+o | Embora não haja nada na entrada do prompt, isso expande os itens recentes na linha do tempo de resposta de Copilot para mostrar mais detalhes. |
| ctrl+e | Embora não haja nada na entrada do prompt, isso expande todos os itens na linha do tempo de resposta do Copilot. |
| ctrl+t | Expanda/recolher a exibição de raciocínio em respostas. |
Atalhos de navegação na interface interativa
| Atalho | Propósito |
|---|
<kbd>Ctrl</kbd>+<kbd>A</kbd> | Ir para o início da linha (ao digitar). |
| Ctrl+B | Mova para o caractere anterior. | | Ctrl+E | Mover para o final da linha (quando se está digitando). | | Ctrl+F | Mova para o próximo caractere. | | CTRL+G | Edite o prompt em um editor externo. | | CTRL+H | Exclua o caractere anterior. | | Ctrl+K | Excluir do cursor até o final da linha. Se o cursor estiver no final da linha, exclua a quebra de linha. | | Ctrl+U | Excluir desde o cursor até o início da linha. | | Ctrl+W | Exclua a palavra anterior. | | Início | Mova para o início da linha atual. | | End | Mova para o final da linha atual. | | Ctrl+Casa | Vá para o início do texto. | | Ctrl+Fim | Mova para o final do texto. | | Meta+←/→ | Mova o cursor uma palavra por vez. | | ↑/↓ | Navegue pelo histórico de comandos. |
Comandos de barra na interface interativa
| Command | Propósito |
|---|---|
/add-dir PATH | Adicione um diretório à lista de permissões para acesso ao arquivo. |
/agent | Navegue e selecione entre os agentes disponíveis (se houver). |
`/allow-all`, `/yolo` | Habilite todas as permissões (ferramentas, caminhos e URLs). |
|
/clear, /new | Limpe o histórico da conversa. |
| /compact | Resumir o histórico de conversas para reduzir o uso da janela de contexto. |
| /context | Mostrar o uso e a visualização do token da janela de contexto. |
|
/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. |
| /diff | Examine as alterações feitas no diretório atual. |
|
/exit, /quit | Saia da CLI. |
| /experimental [on\|off] | Alterne ou ative/desative recursos experimentais. |
| /feedback | Forneç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. |
| /help | Mostrar a ajuda para comandos interativos. |
| /ide | Conecte-se a um workspace do IDE. |
| /init | Inicialize Copilot instruções personalizadas e funcionalidades autônomas para este repositório. |
| /list-dirs | Exiba todos os diretórios para os quais o acesso ao arquivo foi permitido. |
| /login | Faça login no Copilot. |
| /logout | Sair de Copilot. |
| /lsp [show\|test\|reload\|help] [SERVER-NAME] | Gerencie a configuração do servidor de idiomas. |
| /mcp [show\|add\|edit\|delete\|disable\|enable] [SERVER-NAME] | Gerenciar a configuração do servidor MCP. |
|
/model, /models [MODEL] | Selecione o modelo de IA que você deseja usar. |
| /plan [PROMPT] | Crie um plano de implementação antes da codificação. |
| /plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...] | Gerenciar plug-ins e mercados de plug-ins. |
| /rename NAME | Renomeie a sessão atual (pseudônimo de /session rename). |
| /reset-allowed-tools | Redefina a lista de ferramentas permitidas. |
| /resume [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. |
| /session [checkpoints [n]\|files\|plan\|rename NAME] | Mostrar informações de sessão e um resumo do workspace. Use os subcomandos para obter detalhes. |
| /share [file\|gist] [PATH] | Compartilhe a sessão em um arquivo Markdown ou um gist do GitHub. |
| /skills [list\|info\|add\|remove\|reload] [ARGS...] | Gerenciar habilidades para funcionalidades aprimoradas. |
| /terminal-setup | Configure o terminal para suporte de entrada multilinha (Shift+Enter e Ctrl+Enter). |
| /theme [show\|set\|list] [auto\|THEME-ID] | Exibir ou configurar o tema do terminal. |
| /usage | Exibir estatísticas e métricas de uso de sessão. |
| /user [show\|list\|switch] | Gerencie o usuário GitHub atual. |
Para obter uma lista completa dos comandos slash disponíveis, insira /help na interface interativa da CLI.
Opções de linha de comando
| Opção | Propósito |
|---|---|
--acp | Inicie o servidor de Protocolo do Cliente do Agente. |
--add-dir=PATH | Adicione um diretório à lista de permissões para acesso a arquivos (pode ser usado várias vezes). |
--add-github-mcp-tool=TOOL | Adicione uma ferramenta para habilitar o servidor GitHub MCP, em vez do subconjunto padrão da CLI (pode ser usado várias vezes). Use * para todas as ferramentas. |
--add-github-mcp-toolset=TOOLSET | Adicione um conjunto de ferramentas para habilitar para o servidor GitHub 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=JSON | Adicione 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. |
--agent=AGENT | Especifique um agente personalizado a ser usado. |
--allow-all | Habilitar todas as permissões (equivalente a --allow-all-tools --allow-all-paths --allow-all-urls). |
--allow-all-paths | Desabilite a verificação do caminho do arquivo e permita o acesso a qualquer caminho. |
--allow-all-tools | Permitir que todas as ferramentas sejam executadas automaticamente sem confirmação. Necessário ao usar a CLI programaticamente (env: COPILOT_ALLOW_ALL). |
--allow-all-urls | Permitir 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. |
--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. |
--alt-screen=VALUE | Use o buffer de tela alternativo do terminal (on ou off). |
--autopilot | Habilite a continuação do piloto automático no modo prompt. 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. |
--banner | Mostrar o banner de inicialização. |
--bash-env | Habilite suporte para BASH_ENV em shells bash. |
--config-dir=PATH | Defina o diretório de configuração (padrão: ~/.copilot). |
--continue | Retome a sessão mais recente. |
--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-mcps | Desabilitar todos os servidores MCP internos (atualmente: github-mcp-server). |
--disable-mcp-server=SERVER-NAME | Desabilite um servidor MCP específico (pode ser usado várias vezes). |
--disable-parallel-tools-execution | Desabilitar a execução paralela de ferramentas (o LLM ainda pode fazer chamadas de ferramenta paralelas, mas elas serão executadas sequencialmente). |
--disallow-temp-dir | Impedir o acesso automático ao diretório temporário do sistema. |
--enable-all-github-mcp-tools | Habilite todas as ferramentas de servidor GitHub mcp, em vez do subconjunto padrão da CLI. Substitui as opções --add-github-mcp-toolset e --add-github-mcp-tool. |
--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. |
--experimental | Habilitar recursos experimentais (use --no-experimental para desabilitar). |
`-h`, `--help` | Exibir ajuda. |
|
-i PROMPT, --interactive=PROMPT | Inicie uma sessão interativa e execute esse prompt automaticamente. |
| --log-dir=DIRECTORY | Defina o diretório do arquivo de log (padrão: ~/.copilot/logs/). |
| --log-level=LEVEL | Defina o nível de log (opções: none, , , error, warning, info, , debug). all``default |
| --max-autopilot-continues=COUNT | Número máximo de mensagens de continuação no modo de piloto automático (padrão: ilimitado). Consulte Permitindo que GitHub Copilot CLI funcione de forma autônoma. |
| --model=MODEL | Defina o modelo de IA que você deseja usar. |
| --no-alt-screen | Desabilite o buffer de tela alternativo do terminal. |
| --no-ask-user | Desabilite a ask_user ferramenta (o agente funciona de forma autônoma sem fazer perguntas). |
| --no-auto-update | Desabilite o download de atualizações da CLI automaticamente. |
| --no-bash-env | Desative o suporte BASH_ENV para shells bash. |
| --no-color | Desative toda a saída de cor. |
| --no-custom-instructions | Desabilite o carregamento de instruções personalizadas de AGENTS.md e arquivos relacionados. |
| --no-experimental | Desabilitar recursos experimentais. |
| --output-format=FORMAT | FORMAT pode ser text (padrão) ou json (saídas JSONL: um objeto JSON por linha). |
|
-p PROMPT, --prompt=PROMPT | Execute um prompt programaticamente (sai após a conclusão). |
| --plain-diff | Desabilite a renderização de diferenciação avançada (realce de sintaxe por meio da ferramenta de diferenciação especificada pela configuração git). |
| --resume=SESSION-ID | Retome uma sessão interativa anterior escolhendo em uma lista (opcionalmente, especifique uma ID de sessão). |
|
-s, --silent | Gerar somente a resposta do agente (sem estatísticas de uso), útil para scripts com -p. |
| --screen-reader | Habilitar otimizações de leitor de tela. |
| --secret-env-vars=VAR ... | Uma variável de ambiente cujo valor você deseja redigir na saída. 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 redigidos por padrão. |
| --share=PATH | Compartilhe 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-gist | Compartilhe uma sessão em um GitHub gist privado após concluir uma sessão programática. |
| --stream=MODE | Habilitar ou desabilitar o modo de streaming (opções de modo: on ou off). |
|
-v, --version | Mostrar informações de versão. |
| --yolo | Habilitar todas as permissões (equivalente a --allow-all). |
Para obter uma lista completa de comandos e opções, execute copilot help.
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.
| Variante | Descrição | Padrões de exemplo |
|---|---|---|
shell | Execução de comando do Shell |
`shell(git push)`, `shell(git:*)`, `shell` |
| write | Criação ou modificação de arquivo |
write, write(src/*.ts) |
| read | Leituras de arquivo ou diretório |
read, read(.env) |
| SERVER-NAME | Invocação da ferramenta de servidor MCP |
MyMCP(create_issue), MyMCP |
| url | Acesso à URL por meio de web-fetch ou shell |
url(github.com), url(https://*.api.com) |
| memory | Armazenando fatos na memória do agente | memory |
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'
Variáveis de ambiente
| Variable | Descrição |
|---|---|
COPILOT_MODEL | Defina o modelo de IA. |
COPILOT_ALLOW_ALL | Configure para true permitir todas as permissões automaticamente (equivalente a --allow-all). |
COPILOT_AUTO_UPDATE | Defina como false para desabilitar atualizações automáticas. |
COPILOT_CUSTOM_INSTRUCTIONS_DIRS | Lista separada por vírgulas de diretórios adicionais para instruções personalizadas. |
COPILOT_SKILLS_DIRS | Lista separada por vírgulas de diretórios adicionais para habilidades. |
COPILOT_EDITOR | Comando do editor para edição interativa (checado após $VISUAL e $EDITOR). Assume o valor padrão de vi se nenhum for definido. |
COPILOT_GITHUB_TOKEN | Token de autenticação. Tem precedência sobre GH_TOKEN e GITHUB_TOKEN. |
COPILOT_HOME | Sobrescreva a configuração e o diretório de estado. Padrão: $HOME/.copilot. |
GH_TOKEN | Token de autenticação. Tem precedência sobre GITHUB_TOKEN. |
GITHUB_TOKEN | Token de autenticação. |
USE_BUILTIN_RIPGREP | Defina como false para usar o ripgrep do sistema em vez da versão agrupada. |
PLAIN_DIFF | Definir para true para desativar a renderização rica de diferença. |
COLORFGBG | Opção de contingência para detecção de plano de fundo do terminal escuro/claro. |
COPILOT_CLI_ENABLED_FEATURE_FLAGS | Lista separada por vírgulas de sinalizadores de recursos para habilitar (por exemplo, "SOME_FEATURE,SOME_OTHER_FEATURE"). |
Configurações do arquivo de configuração
As configurações são aplicadas em cascata, do usuário para o repositório e depois para o local, com níveis mais específicos substituindo os mais gerais. Sinalizadores de linha de comando e variáveis de ambiente sempre têm a precedência mais alta.
| Scope | Localidade | Propósito |
|---|---|---|
| Usuário | ~/.copilot/config.json | Padrões globais para todos os repositórios. Use a variável de COPILOT_HOME ambiente para especificar um caminho alternativo. |
| Repositório | .github/copilot/settings.json | Configuração do repositório compartilhado (comitada no repositório). |
| Local | .github/copilot/settings.local.json | Substituições pessoais (adicione-as a .gitignore). |
Configurações do usuário (~/.copilot/config.json)
| Chave | Tipo | Default | Descrição |
|---|---|---|---|
allowed_urls | string[] | [] | URLs ou domínios permitidos sem solicitação. |
alt_screen | boolean | false | Use o buffer de tela alternativo do terminal. |
auto_update | boolean | true | Baixe automaticamente as atualizações da CLI. |
banner |
`"always"`
\|
`"once"`
\|
`"never"`
| `"once"` | Frequência de exibição de banner animado. |
| bash_env | boolean | false | Habilite suporte para BASH_ENV em shells bash. |
| beep | boolean | true | Reproduza um bipe audível quando a atenção é necessária. |
| compact_paste | boolean | true | Compactar conteúdos grandes em tokens compactos. |
| custom_agents.default_local_only | boolean | false | Use apenas agentes personalizados locais. |
| denied_urls | string[] | [] | URLs ou domínios bloqueados (tem precedência sobre allowed_urls). |
| experimental | boolean | false | Habilitar recursos experimentais. |
| include_coauthor | boolean | true | Adicione um trailer Co-authored-by às confirmações do git feitas pelo agente. |
| companyAnnouncements | string[] | [] | Mensagens personalizadas mostradas aleatoriamente na inicialização. |
| log_level |
"none"
|
"error"
|
"warning"
|
"info"
|
"debug"
|
"all"
|
"default"
| "default" | Verbosidade de registro em log. |
| model | string | varies | Modelo de IA a ser usado (consulte o /model comando). |
| powershell_flags | string[] | ["-NoProfile", "-NoLogo"] | Sinalizadores passados para o PowerShell (pwsh) na inicialização. Apenas para Windows. |
| reasoning_effort |
"low"
|
"medium"
|
"high"
|
"xhigh"
| "medium" | Nível de esforço de raciocínio para o pensamento aprofundado. Níveis mais altos usam mais computação. |
| render_markdown | boolean | true | Renderizar Markdown na saída do terminal. |
| screen_reader | boolean | false | Habilitar otimizações de leitor de tela. |
| stream | boolean | true | Habilitar respostas de streaming. |
| store_token_plaintext | boolean | false | Armazene tokens de autenticação em texto não criptografado no arquivo de configuração quando nenhum conjunto de chaves do sistema estiver disponível. |
| streamer_mode | boolean | false | Ocultar nomes de modelos de pré-visualização e detalhes de cotas (o que é útil ao gravar). |
| theme |
"auto"
|
"dark"
|
"light"
| "auto" | Tema de cor do terminal. |
| trusted_folders | string[] | [] | Pastas com acesso a arquivos pré-autorizado. |
| update_terminal_title | boolean | true | Mostrar a intenção atual no título do terminal. |
Configurações do repositório (.github/copilot/settings.json)
As configurações do repositório se aplicam a todos que trabalham no repositório. Há suporte apenas para um subconjunto de configurações no nível do repositório. Chaves sem suporte são ignoradas.
| Chave | Tipo | Comportamento de mesclagem | Descrição |
|---|---|---|---|
companyAnnouncements | string[] | Substituído — o repositório assume precedência | Mensagens mostradas aleatoriamente na inicialização. |
enabledPlugins | Record<string, boolean> | Mesclado — o repositório tem prioridade sobre o usuário para a mesma chave | Instalação automática do plug-in declarativo. |
extraKnownMarketplaces | Record<string, {...}> | Mesclado — o repositório tem prioridade sobre o usuário para a mesma chave | Marketplaces de plug-in disponíveis neste repositório. |
marketplaces | Record<string, {...}> | Mesclado — o repositório tem prioridade sobre o usuário para a mesma chave | Marketplaces de plugins (obsoletos — use extraKnownMarketplaces). |
Configurações locais (.github/copilot/settings.local.json)
Crie .github/copilot/settings.local.json no repositório para configurações pessoais que não devem ser comitadas. Adicione este arquivo a .gitignore.
O arquivo de configuração local usa o mesmo esquema que o arquivo de configuração do repositório (.github/copilot/settings.json) e tem precedência sobre ele.
Referência de ganchos
Ganchos são comandos externos que são executados em pontos de ciclo de vida específicos durante uma sessão, permitindo automação personalizada, controles de segurança e integrações. Os arquivos de configuração de gancho .github/hooks/*.json são carregados automaticamente a partir de seu repositório.
Formato de configuração do gancho
Os arquivos de configuração do gancho usam o formato JSON com a versão 1.
Ganchos de comando
Os ganchos de comando executam scripts de shell e têm suporte em todos os tipos de gancho.
{
"version": 1,
"hooks": {
"preToolUse": [
{
"type": "command",
"bash": "your-bash-command",
"powershell": "your-powershell-command",
"cwd": "optional/working/directory",
"env": { "VAR": "value" },
"timeoutSec": 30
}
]
}
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
type | "command" | Sim | Deve ser "command". |
bash | cadeia | Um dos bash/powershell | Comando shell para Unix. |
powershell | cadeia | Um dos bash/powershell | Comando shell para Windows. |
cwd | cadeia | No | Diretório de trabalho para o comando (relativo à raiz do repositório ou absoluto). |
env | objeto | No | Variáveis de ambiente a serem definidas (dá suporte à expansão variável). |
timeoutSec | número | No | Tempo limite em segundos. Padrão: 30. |
Ganchos de prompt
Prompt hooks enviam automaticamente o texto como se o usuário tivesse digitado. Eles têm suporte apenas em sessionStart e são executados antes que qualquer prompt inicial seja passado via --prompt. O texto pode ser uma solicitação em linguagem natural ou um comando de barra.
{
"version": 1,
"hooks": {
"sessionStart": [
{
"type": "prompt",
"prompt": "Your prompt text or /slash-command"
}
]
}
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
type | "prompt" | Sim | Deve ser "prompt". |
prompt | cadeia | Sim | O texto a ser enviada pode ser uma mensagem de linguagem natural ou um comando de barra. |
Eventos de intercepção
| Acontecimento | Acionado quando | A saída foi processada |
|---|---|---|
sessionStart | Uma sessão nova ou retomada começa. | No |
sessionEnd | A sessão é encerrada. | No |
userPromptSubmitted | O usuário envia um prompt. | No |
preToolUse | Antes de executar cada ferramenta. | Sim — pode permitir, negar ou modificar. |
postToolUse | Após a conclusão de cada ferramenta. | No |
agentStop | O agente principal conclui um turno. | Sim – pode bloquear e forçar a continuação. |
subagentStop | Um subagente completa. | Sim – pode bloquear e forçar a continuação. |
errorOccurred | Ocorre um erro durante a execução. | No |
`preToolUse` controle de decisão
O preToolUse gancho pode controlar a execução da ferramenta escrevendo um objeto JSON para stdout.
| Campo | Valores | Descrição |
|---|---|---|
permissionDecision |
`"allow"`, `"deny"`, `"ask"` | Se a ferramenta é executada. A saída vazia usa o comportamento padrão. |
| permissionDecisionReason | cadeia | Motivo mostrado ao agente. Obrigatório quando a decisão é "deny". |
| modifiedArgs | objeto | Substitua os argumentos da ferramenta para serem usados no lugar dos originais. |
`agentStop`
/
`subagentStop` controle de decisão
| Campo | Valores | Descrição |
|---|---|---|
decision |
`"block"`, `"allow"` |
`"block"` obriga outro agente a fazer um turno usando `reason` como prompt. |
| reason | cadeia | Solicite a próxima rodada quando decision for "block". |
Nomes de ferramentas para correspondência de hooks
| Nome da ferramenta | Descrição |
|---|---|
bash | Execute comandos de shell (Unix). |
powershell | Execute comandos de shell (Windows). |
view | Ler o conteúdo do arquivo. |
edit | Modificar o conteúdo do arquivo. |
create | Crie novos arquivos. |
glob | Localizar arquivos por padrão. |
grep | Pesquisar conteúdo do arquivo. |
web_fetch | Recuperar páginas da Web. |
task | Executar tarefas de subagente. |
Se vários ganchos do mesmo tipo forem configurados, eles serão executados em ordem. Para preToolUse, se algum gancho retornar "deny", a ferramenta será bloqueada. Falhas de gancho (códigos de saída ou tempos limite diferentes de zero) são registradas e ignoradas– elas nunca bloqueiam a execução do agente.
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.
Tipos de transporte
| Tipo | Descrição | Campos obrigatórios |
|---|---|---|
local / stdio | Processo local comunicando-se por meio de stdin/stdout. |
`command`, `args` |
| http | Servidor remoto utilizando transporte HTTP transmissível. | url |
| sse | Servidor remoto usando o transporte de eventos Server-Sent. | url |
Campos de configuração do servidor local
| Campo | Obrigatório | Descrição |
|---|---|---|
command | Sim | Comando para iniciar o servidor. |
args | Sim | Argumentos de comando (array). |
tools | Sim | Ferramentas para habilitar: ["*"] para todos ou uma lista de nomes de ferramentas específicos. |
env | No | Variáveis de ambiente. Dá suporte a $VAR, ${VAR} e ${VAR:-default} expansão. |
cwd | No | Diretório de trabalho para o servidor. |
timeout | No | Tempo limite de chamada de ferramenta em milissegundos. |
type | No |
`"local"` ou `"stdio"`. Padrão: `"local"`. |
Campos de configuração de servidor remoto
| Campo | Obrigatório | Descrição |
|---|---|---|
type | Sim |
`"http"` ou `"sse"`. |
| url | Sim | URL do servidor. |
| tools | Sim | Ferramentas para habilitar. |
| headers | No | Cabeçalhos HTTP. Dá suporte à expansão variável. |
| oauthClientId | No | ID do cliente OAuth estático (ignora o registro dinâmico). |
| oauthPublicClient | No | Se o cliente OAuth é público. Padrão: true. |
| timeout | No | Tempo limite de chamada de ferramenta em milissegundos. |
Mapeamento de filtro
Controlar como a saída da ferramenta MCP é processada usando o filterMapping campo na configuração de um servidor.
| Modo | Descrição |
|---|---|
none | Sem filtragem. |
markdown | Formatar saída como Markdown. |
hidden_characters | Remova 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.
| Servidor | Descrição |
|---|---|
github-mcp-server | GitHub Integração da API: problemas, pull requests, commits, pesquisa de código e GitHub Actions. |
playwright | Automação do navegador: navegar, clicar, digitar, captura de tela e manipulação de formulários. |
fetch | Solicitações HTTP pela ferramenta fetch. |
time | Utilitá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.
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.
| Fonte | Nível de confiança | Revisão necessária |
|---|---|---|
| Interno | Alto | No |
Repositório (.github/mcp.json) | Medium | Recomendado |
Workspace (.mcp.json, .vscode/mcp.json) | Medium | Recomendado |
Contêiner de desenvolvimento (.devcontainer/devcontainer.json) | Medium | Recomendado |
Configuração do usuário (~/.copilot/mcp-config.json) | User-defined | Responsabilidade do usuário |
| Servidores remotos | Baixo | Sempre |
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.
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
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | cadeia | Sim | Identificador exclusivo para a habilidade. Somente letras, números e hifens. Máximo de 64 caracteres. |
description | cadeia | Sim | O que a habilidade faz e quando usá-la. Máximo de 1024 caracteres. |
allowed-tools | string ou string[] | No | Lista 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-invocable | boolean | No | Se os usuários podem invocar a habilidade com /SKILL-NAME. Padrão: true. |
disable-model-invocation | boolean | No | Impedir 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).
| Localidade | Scope | Descrição |
|---|---|---|
.github/skills/ | Projeto | Habilidades específicas do projeto. |
.agents/skills/ | Projeto | Local alternativo do projeto. |
.claude/skills/ | Projeto | Local compatível com Claude. |
Pai .github/skills/ | Herdado | Suporte para diretório raiz do Monorepo. |
~/.copilot/skills/ | Pessoal | Habilidades pessoais para todos os projetos. |
~/.claude/skills/ | Pessoal | Localização pessoal compatível com o sistema Claude. |
| Diretórios de plug-in | Plug-in | Habilidades de complementos instalados. |
COPILOT_SKILLS_DIRS | Personalizado | Diretórios adicionais (separados por vírgula). |
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 suporte description, allowed-toolse 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
| Agente | Modelo padrão | Descrição |
|---|---|---|
code-review | claude-sonnet-4.5 | Revisã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. |
explore | claude-haiku-4.5 | Exploraçã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-purpose | claude-sonnet-4.5 | Agente de funcionalidade completa para tarefas complexas de várias etapas. É executado em uma janela de contexto separada. |
research | claude-sonnet-4.6 | Agente de pesquisa profunda. Gera um relatório com base em informações em sua base de código, em repositórios relevantes e na Web. |
task | claude-haiku-4.5 | Execução de comandos (testes, builds, lints). Retorna um breve resumo em caso de sucesso, saída completa em caso de falha. |
Campos de frontmatter personalizados do agente
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
description | cadeia | Sim | Descrição mostrada na lista de agentes e na ferramenta task. |
infer | boolean | No | Permitir a delegação automática pelo agente principal. Padrão: true. |
mcp-servers | objeto | No | Servidores MCP para conectar. Usa o mesmo esquema que ~/.copilot/mcp-config.json. |
model | cadeia | No | Modelo de IA para este agente. Quando não definido, herda o modelo do agente externo. |
name | cadeia | No | Nome de exibição. O padrão é o nome do arquivo. |
tools | cadeia de caracteres[] | No | Ferramentas disponíveis para o agente. Padrão: ["*"] (todas as ferramentas). |
Locais do agente personalizado
| Scope | Localidade |
|---|---|
| Projeto |
`.github/agents/` ou `.claude/agents/` |
| Usuário |
~/.copilot/agents/ ou ~/.claude/agents/ |
| Plug-in | <plugin>/agents/ |
Os agentes de nível de projeto têm precedência sobre agentes no nível do usuário. Os agentes de plug-in têm a prioridade mais baixa.
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.
| Chave | Efeito |
|---|---|
y | Permitir essa solicitação específica uma vez. |
n | Negar 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. |
As aprovações de sessão são redefinidas quando você executa /clear ou inicia uma nova sessão.
| Flag | Camada | Descrição |
|---|---|---|
AUTOPILOT_MODE | experimental | Modo de operação autônoma. |
BACKGROUND_AGENTS | staff | Execute agentes em segundo plano. |
QUEUED_COMMANDS | staff | Comandos de fila enquanto o agente está em execução. |
LSP_TOOLS | on | Ferramentas de Protocolo do Servidor de Idiomas. |
PLAN_COMMAND | on | Modo de planejamento interativo. |
AGENTIC_MEMORY | on | Memória persistente entre sessões. |
CUSTOM_AGENTS | on | Definições de agentes personalizados. |
Monitoramento do OpenTelemetry
CLI do Copilot pode exportar rastros e métricas por meio do OpenTelemetry (OTel), proporcionando visibilidade em interações de agentes, 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
Variáveis de ambiente OTel
| Variable | Default | Descrição |
|---|---|---|
COPILOT_OTEL_ENABLED | false | Habilite explicitamente o OTel. Não é necessário se OTEL_EXPORTER_OTLP_ENDPOINT estiver definido. |
OTEL_EXPORTER_OTLP_ENDPOINT | — | URL do ponto de extremidade OTLP. Definir isso habilita automaticamente o OTel. |
COPILOT_OTEL_EXPORTER_TYPE | otlp-http | Tipo de exportador: otlp-http ou file. Seleciona automaticamente file quando COPILOT_OTEL_FILE_EXPORTER_PATH está definido. |
OTEL_SERVICE_NAME | github-copilot | Nome do serviço em atributos de recurso. |
OTEL_RESOURCE_ATTRIBUTES | — | Atributos 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_CONTENT | false | Capture o conteúdo completo do prompt e da resposta. Consulte a captura de conteúdo. |
OTEL_LOG_LEVEL | — | Nível do log de diagnóstico OTel: NONE, ERROR, WARN, INFO, DEBUG, VERBOSE, ALL. |
COPILOT_OTEL_FILE_EXPORTER_PATH | — | Escreva todos os sinais neste arquivo como linhas JSON. Definir isso habilita automaticamente o OTel. |
COPILOT_OTEL_SOURCE_NAME | github.copilot | Nome do escopo de instrumentação para rastreador e medidor. |
OTEL_EXPORTER_OTLP_HEADERS | — | Cabeç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. Tipo de intervalo: CLIENT.
| Attribute | Descrição |
|---|---|
gen_ai.operation.name | invoke_agent |
gen_ai.provider.name | Provedor (por exemplo, github, anthropic) |
gen_ai.agent.id | Identificador de sessão |
gen_ai.agent.name | Nome do agente (somente subagentes) |
gen_ai.agent.description | Descrição do agente (somente subagentes) |
gen_ai.agent.version | Versão de execução |
gen_ai.conversation.id | Identificador de sessão |
gen_ai.request.model | Modelo solicitado |
gen_ai.response.model | Modelo resolvido |
gen_ai.response.id | ID da última resposta |
gen_ai.response.finish_reasons |
`["stop"]` ou `["error"]` |
| gen_ai.usage.input_tokens | Total de tokens de entrada (todas as voltas) |
| gen_ai.usage.output_tokens | Total de tokens de saída (todas as voltas) |
| gen_ai.usage.cache_read.input_tokens | Leitura de tokens de entrada armazenados em cache |
| gen_ai.usage.cache_creation.input_tokens | Tokens de entrada em cache criados |
| github.copilot.turn_count | Número de viagens de ida e volta de LLM |
| github.copilot.cost | Custo monetário |
| github.copilot.aiu | Unidades de IA consumidas |
| server.address | Nome do host do servidor |
| server.port | Porta do servidor |
| error.type | Nome da classe de erro (em caso de erro) |
| gen_ai.input.messages | Mensagens de entrada completas como JSON (somente captura de conteúdo) |
| gen_ai.output.messages | Mensagens de saída completas como JSON (somente captura de conteúdo) |
| gen_ai.system_instructions | Conteúdo da solicitação do sistema como JSON (captura de conteúdo somente) |
| gen_ai.tool.definitions | Esquemas de ferramentas como JSON (somente captura de conteúdo) |
`chat` atributos de 'span'
Um intervalo por solicitação LLM. Tipo de intervalo: CLIENT.
| Attribute | Descrição |
|---|---|
gen_ai.operation.name | chat |
gen_ai.provider.name | Nome do provedor |
gen_ai.request.model | Modelo solicitado |
gen_ai.conversation.id | Identificador de sessão |
gen_ai.response.id | ID de resposta |
gen_ai.response.model | Modelo resolvido |
gen_ai.response.finish_reasons | Razões de parada |
gen_ai.usage.input_tokens | Tokens de entrada desta vez |
gen_ai.usage.output_tokens | Tokens de saída neste turno |
gen_ai.usage.cache_read.input_tokens | Leitura de tokens armazenados em cache |
gen_ai.usage.cache_creation.input_tokens | Tokens em cache criados |
github.copilot.cost | Custo de turno |
github.copilot.aiu | As unidades de IA foram consumidas neste turno |
github.copilot.server_duration | Duração no lado do servidor |
github.copilot.initiator | Iniciador de solicitação |
github.copilot.turn_id | Habilitar o identificador |
github.copilot.interaction_id | Identificador de interação |
server.address | Nome do host do servidor |
server.port | Porta do servidor |
error.type | Nome da classe de erro (em caso de erro) |
gen_ai.input.messages | Mensagens completas de prompt como JSON (captura de conteúdo apenas) |
gen_ai.output.messages | Mensagens de resposta completas como JSON (somente captura de conteúdo) |
gen_ai.system_instructions | Conteú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.
| Attribute | Descrição |
|---|---|
gen_ai.operation.name | execute_tool |
gen_ai.provider.name | Nome do provedor (quando disponível) |
gen_ai.tool.name | Nome da ferramenta (por exemplo, readFile) |
gen_ai.tool.type | function |
gen_ai.tool.call.id | Identificador de chamada de ferramenta |
gen_ai.tool.description | Descrição da ferramenta |
error.type | Nome da classe de erro (em caso de erro) |
gen_ai.tool.call.arguments | Argumentos de entrada da ferramenta como JSON (apenas captura de conteúdo) |
gen_ai.tool.call.result | Saída da ferramenta como JSON (somente captura de conteúdo) |
Métricas
Métricas de convenção do GenAI
| Métrica | Tipo | Unidade | Descrição |
|---|---|---|---|
gen_ai.client.operation.duration | Histograma | s | Duração da chamada à API LLM e da invocação do agente |
gen_ai.client.token.usage | Histograma | tokens | Contagens de token por tipo (input/output) |
gen_ai.client.operation.time_to_first_chunk | Histograma | s | Hora de receber a primeira parte de streaming |
gen_ai.client.operation.time_per_output_chunk | Histograma | s | Latência entre fragmentos após a primeira parte |
Métricas específicas do fornecedor
| Métrica | Tipo | Unidade | Descrição |
|---|---|---|---|
github.copilot.tool.call.count | Contador | chamadas | Invocações de ferramenta por gen_ai.tool.name e success |
github.copilot.tool.call.duration | Histograma | s | Latência de execução da ferramenta por gen_ai.tool.name |
github.copilot.agent.turn.count | Histograma | Gira | Ciclos de ida e volta de LLM por chamada de agente |
Eventos de intervalo
Eventos de ciclo de vida registrados no intervalo ativo entre chat e invoke_agent.
| Acontecimento | Descrição | Atributos de chave |
|---|---|---|
github.copilot.session.truncation | O histórico de conversas foi truncado |
`github.copilot.token_limit`, `github.copilot.pre_tokens`, `github.copilot.post_tokens`, , `github.copilot.tokens_removed``github.copilot.messages_removed` |
| github.copilot.session.compaction_start | Compactação de histórico iniciada | Nenhum |
| github.copilot.session.compaction_complete | Compactaçã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.skill.invoked | Uma habilidade foi invocada |
github.copilot.skill.name, github.copilot.skill.path, , github.copilot.skill.plugin_name``github.copilot.skill.plugin_version |
| github.copilot.session.shutdown | A 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.abort | O usuário cancelou a operação atual | github.copilot.abort_reason |
| exception | Erro 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.
| Attribute | Valor |
|---|---|
service.name |
`github-copilot` (configurável via `OTEL_SERVICE_NAME`) |
| service.version | Versã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.
| Attribute | Conteúdo |
|---|---|
gen_ai.input.messages | Mensagens de prompt completo (JSON) |
gen_ai.output.messages | Mensagens de resposta completas (JSON) |
gen_ai.system_instructions | Conteúdo do prompt do sistema (JSON) |
gen_ai.tool.definitions | Esquemas de ferramentas (JSON) |
gen_ai.tool.call.arguments | Argumentos de entrada da ferramenta |
gen_ai.tool.call.result | Saída da ferramenta |
Leitura adicional
-
[AUTOTITLE](/copilot/how-tos/copilot-cli) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference)