Skip to main content
Skip to content

Configurando GitHub Copilot CLI

Configure diretórios confiáveis, acesso à ferramenta, permissões de caminho e URL e telemetria do lado do cliente para Copilot CLI.

Introdução

Copilot CLI tem várias opções de configuração que controlam o que ele pode acessar e fazer em seu nome.

Este artigo mostra como definir diretórios confiáveis, configurar o acesso para ferramentas, conceder permissões a caminhos de arquivo e URLs e desabilitar a telemetria do lado do cliente.

Pré-requisitos

Definindo diretórios confiáveis

Os diretórios confiáveis controlam onde Copilot CLI podem ler, modificar e executar arquivos. Confiar em um diretório tem implicações de segurança, confira as considerações de segurança.

Optando por confiar em um diretório

Quando você inicia uma sessão do GitHub Copilot CLI, será solicitado que você confirme que confia nos arquivos dentro e abaixo do diretório a partir do qual você iniciou a CLI.

Você pode optar por confiar no diretório atual para:

  • Somente a sessão atual em execução
  • Esta e sessões futuras

Se você optar por confiar no diretório para sessões futuras, o prompt de diretório confiável não será exibido novamente. Você só deverá escolher essa segunda opção se tiver certeza de que esse local sempre será um local seguro para Copilot operar.

Editando diretórios confiáveis

Você pode editar a lista de diretórios permanentemente confiáveis. Os diretórios confiáveis são armazenados no arquivo gerenciado config.json automaticamente.

  1. Abra o arquivo config.json do CLI. Por padrão, ele é armazenado em uma .copilot pasta no diretório base:

    • macOS/Linux: ~/.copilot/config.json
    • Windows:$HOME\.copilot\config.json

Você pode alterar o local da configuração definindo a variável de COPILOT_HOME ambiente. Isso alteraria ~/.copilot/ e $HOME\.copilot\ nos caminhos acima.

  1. Edite o conteúdo da trustedFolders matriz.

Configurando ferramentas permitidas

Você pode controlar quais ferramentas Copilot CLI podem usar, respondendo a prompts de aprovação quando Copilot tenta usar uma ferramenta ou especificando permissões por meio de opções de linha de comando.

Lembre-se de que permitir o acesso à ferramenta tem implicações de segurança, consulte as considerações de segurança.

Nesta seção, você pode aprender a:

Autorizando o uso de uma ferramenta pela primeira vez

No modo de aprovação manual, Copilot solicita que você aprove solicitações de ferramenta que ainda não foram aprovadas—por exemplo, touch, chmod, node ou sed. O fato de você ser solicitado depende das permissões em vigor e de como a ferramenta está sendo usada, como seus argumentos ou aprovações anteriores.

  1. Inicie uma sessão interativa executando copilote insira /permissions manual.

  2. Acione Copilot para executar uma tarefa que requer uma ferramenta. Por exemplo:

    Create a new file called README.md with a project description
    
  3. Se a ferramenta ainda não for permitida, escolha entre as opções de aprovação:

    • 1. Yes

      Escolha esta opção para permitir Copilot a execução deste comando específico, somente desta vez. Na próxima vez que precisar usar essa ferramenta, ele perguntará novamente.

    • 2. Yes, and approve TOOL for the rest of the running session

      Escolha essa opção para permitir Copilot o uso dessa ferramenta durante a sessão em execução no momento. Ele solicitará sua aprovação novamente em novas sessões ou se você retomar a sessão atual no futuro. Se você escolher essa opção, permitirá Copilot usar essa ferramenta de qualquer maneira que ela achar apropriada.

      Por exemplo, se Copilot pedir que você permita que ele execute o comando rm ./this-file.txt e você escolher a opção 2, então Copilot pode executar qualquer comando rm (por exemplo, rm -rf ./*) durante a execução atual desta sessão, sem solicitar sua aprovação.

    • 3. No, and tell Copilot what to do differently (Esc)

      Escolha essa opção para cancelar o comando proposto e instrua Copilot a tentar uma abordagem diferente.

Permitir que as ferramentas sejam usadas sem aprovação manual

Você pode usar opções de linha de comando para designar ferramentas que Copilot pode usar sem solicitar sua aprovação.

Como alternativa, para reduzir os prompts de aprovação sem conceder permissões amplas, insira /permissions assisted em uma sessão interativa. Com assisted permissions, um modelo de linguagem grande avalia solicitações de permissão elegíveis e aprova automaticamente aquelas que ele julga seguras. As permissões existentes e as regras empresariais ainda se aplicam, e as solicitações que ainda precisam de sua aprovação são encaminhadas a você. Para obter mais informações, consulte Permitindo a execução de comandos seguros sem aprovação manual.

Permitir todas as ferramentas

Use --allow-all-tools para permitir que Copilot use qualquer ferramenta sem solicitar sua aprovação.

  • Por exemplo:

    copilot -p "Revert the last commit" --allow-all-tools
    

Negando uma ferramenta

Use --deny-tool para impedir o Copilot uso de uma ferramenta específica.

  • Por exemplo:

    copilot --deny-tool='shell(git push)'
    

Essa opção tem precedência sobre as opções --allow-all-tools e --allow-tool.

Permitir uma ferramenta

Use --allow-tool para permitir o Copilot uso de uma ferramenta específica sem solicitar sua aprovação.

  • Por exemplo:

    copilot --allow-tool='shell'
    

Especificando qual ferramenta você deseja permitir ou negar

Para usar as opções --deny-tool e --allow-tool você deve especificar que tipo de ferramenta deseja permitir ou negar.

Permitir ou negar comandos de shell

Use shell(COMMAND) para permitir ou negar um comando de shell específico.

  • Por exemplo, para impedir que Copilot use qualquer comando rm, use:

    copilot --deny-tool='shell(rm)'
    

Para comandos git e gh, especifique um subcomando de primeiro nível específico para permitir ou negar.

  • Por exemplo, para impedir que Copilot use git push, use:

    copilot --deny-tool='shell(git push)'
    

A especificação da ferramenta é opcional. Por exemplo, copilot --allow-tool='shell' permite Copilot usar qualquer comando de shell sem aprovação individual.

Permitir ou negar ferramentas 'write'

Use 'write' para permitir ou negar a ferramentas — além dos comandos de shell — a permissão para modificar arquivos.

  • Por exemplo, para permitir Copilot a edição de arquivos sem sua aprovação individual, use:

    copilot --allow-tool='write'
    

Permitindo ou negando ferramentas de servidor MCP

Use 'MCP_SERVER_NAME' para permitir ou negar uma ferramenta específica do servidor MCP especificado.

  • Por exemplo, para impedir que Copilot use a ferramenta chamada tool_name do servidor MCP chamado My-MCP-Server, use:

    copilot --deny-tool='My-MCP-Server(tool_name)'
    

MCP_SERVER_NAME é o nome de um servidor MCP que você configurou.

As ferramentas do servidor são especificadas entre parênteses, usando o nome da ferramenta que está registrado com o servidor de MCP.

Usar o nome do servidor sem especificar uma ferramenta permite ou nega todas as ferramentas desse servidor.

Você pode encontrar o nome de um servidor MCP inserindo /mcp no modo Copilot CLI interativo e selecionando o servidor na lista exibida.

Permitindo algumas ferramentas ao negar outras

Para determinar exatamente quais ferramentas podem ser usadas Copilot sem solicitar sua aprovação, você pode usar uma combinação de opções de aprovação. Por exemplo:

  • Para impedir Copilot de usar os comandos rm e git push, mas permitir automaticamente todas as outras ferramentas, use:

    copilot --allow-all-tools --deny-tool='shell(rm)' --deny-tool='shell(git push)'
    
  • Para impedir Copilot o uso da ferramenta tool_name do servidor MCP nomeado My-MCP-Server, mas permitir que todas as outras ferramentas desse servidor sejam usadas sem aprovação individual, use:

    copilot --allow-tool='My-MCP-Server' --deny-tool='My-MCP-Server(tool_name)'
    

Limitando as ferramentas disponíveis

Para restringir Copilot a um conjunto específico de ferramentas, use --available-tools.

As ferramentas não incluídas nesta lista não estarão disponíveis para Copilot.

Definindo permissões de caminho

As permissões de caminho controlam quais diretórios e arquivos Copilot podem acessar.

Por padrão, Copilot CLI pode acessar o diretório de trabalho atual, seus subdiretórios e o diretório temporário do sistema.

As permissões de caminho aplicam-se a comandos do shell, operações de arquivo (criar, editar, visualizar) e ferramentas de pesquisa (como grep e padrões glob). Para comandos de shell, os caminhos são extraídos heuristicamente por meio da geração de tokens de texto de comando e da identificação de tokens que se parecem com caminhos.

Aviso

A detecção de caminho para comandos de shell tem limitações:

  • Caminhos inseridos em construções de shell complexas podem não ser detectados.
  • Somente um conjunto específico de variáveis de ambiente é expandido (HOME, TMPDIRe PWDsemelhante). Variáveis personalizadas como $MY_PROJECT_DIR não são expandidas e podem não ser validadas corretamente.
  • Symlinks são resolvidos para arquivos existentes, mas não para arquivos que estão sendo criados.

Permitindo o acesso a todos os caminhos

Para desabilitar a verificação de caminho e permitir o acesso a qualquer caminho, use a opção --allow-all-paths ao iniciar Copilot CLI.

Não permitir o acesso ao diretório temporário

Para não permitir o acesso ao diretório temporário, use --disallow-temp-dir.

Definindo permissões de URL

As permissões de URL controlam quais URLs externas Copilot podem acessar. Por padrão, todas as URLs exigem aprovação antes que o acesso seja concedido.

As permissões de URL se aplicam à ferramenta web_fetch e a uma lista de comandos de shell que acessam a rede (como curl, wget, e fetch). Para comandos de shell, as URLs são extraídas usando padrões regex.

Aviso

A detecção de URL para comandos de shell tem limitações:

  • URLs no conteúdo do arquivo, arquivos de configuração ou variáveis de ambiente lidas por comandos não são detectadas.
  • URLs ofuscadas (como cadeias de caracteres divididas ou sequências de escape) podem não ser detectadas.
  • HTTP e HTTPS são tratados como protocolos diferentes e exigem aprovação separada.

As permissões de URL podem ser mantidas para a sessão ou permanentemente.

Desabilitando a verificação de URL

Para desabilitar a verificação de URL, use a opção --allow-all-urls .

Pré-aprovação de domínios específicos

Para aprovar previamente domínios específicos, use --allow-url=DOMAIN.

  • Por exemplo, --allow-url=github.com.

Negando domínios específicos

Para negar domínios específicos, use --deny-url=DOMAIN.

  • Por exemplo, --deny-url=github.com.

Permitindo o acesso a todas as ferramentas, caminhos e URLs

Para permitir todas as ferramentas, caminhos e URLs, use --allow-all, ou seu equivalente, --yolo.

Essa opção combina:

  • --allow-all-tools (ignorar aprovação da ferramenta).
  • --allow-all-paths (desabilitar a verificação de caminho).
  • --allow-all-urls (desabilita a verificação de URL).

Durante uma sessão interativa, você também pode habilitar todas as permissões com o /permissions allow-all comando de barra, ou seus aliases /allow-all e /yolo.

Observação

Se você tiver uma licença Copilot Business ou Copilot Enterprise, esses comandos poderão ser bloqueados por um administrador da empresa.

Restringir o acesso a arquivos

As diversas opções --allow-all... salvam você de ter que decidir se deseja permitir que Copilot acesse ferramentas individuais, arquivos individuais e URLs individuais. No entanto, usá-los amplia o escopo para Copilot executar ações que talvez você não queira que elas façam, por exemplo, alterar arquivos fora do repositório em que você está trabalhando.

Para atenuar esse risco, você pode instruir a CLI a executar seus comandos em sandbox (sandbox local) ou executar toda a sessão Copilot CLI em um sandbox na nuvem. Para obter mais informações, consulte Sobre o sandboxing local para GitHub Copilot e Sobre sandboxes na nuvem para GitHub Copilot.

Desabilitando a telemetria do lado do cliente

Para desabilitar a telemetria do lado do cliente de primeira parte para a invocação atual, comece Copilot CLI com a opção --disable-client-telemetry :

copilot --disable-client-telemetry

Essa opção desabilita a telemetria de primeira parte enviada pela CLI, incluindo telemetria irrestrita e restrita. Não é salvo na sua configuração.

A opção não desabilita GitHub a coleção do lado do servidor de dados de sessão ou telemetria. Também não afeta:

  • Exportações openTelemetry configuradas por você ou sua empresa.
  • Telemetria enviada para um aplicativo que usa o Copilot SDK, quando esse aplicativo habilita explicitamente o encaminhamento de telemetria à medida que se conecta à CLI.

Leitura adicional