Skip to main content

Configurar a CLI do GitHub Copilot

Configure diretórios confiáveis, acesso a ferramentas e permissões de caminho e URL para CLI do Copilot

Observação

CLI do GitHub Copilot está em visualização pública com proteção de dados e está sujeito a alterações.

Introdução

CLI do Copilot possui várias opções de configuração que controlam o que pode acessar e realizar em seu nome.

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

Pré-requisitos

Definindo diretórios confiáveis

Os diretórios confiáveis controlam onde CLI do Copilot pode 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

Ao iniciar uma sessão da CLI do GitHub Copilot, você receberá solicitação para confirmar que confia nos arquivos no diretório e nos subdiretórios em que 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 a segunda opção se tiver certeza de que esse local sempre será um local seguro para o Copilot para operar.

Editando diretórios confiáveis

Você pode editar a lista de diretórios permanentemente confiáveis.

  1. Abra o arquivo config.json da 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 de configuração definindo a variável de XDG_CONFIG_HOME ambiente (principalmente no macOS/Linux).

  1. Edite o conteúdo da trusted_folders matriz.

Configurando ferramentas permitidas

Você pode controlar quais ferramentas CLI do Copilot podem usar, respondendo a solicitações de aprovação quando Copilot tenta usar uma ferramenta ou especificando permissões por meio de parâmetros 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:

  •         [Autorizar uma ferramenta pela primeira vez](#allowing-a-tool-for-the-first-time)
    
  •         [Permitir que as ferramentas sejam usadas sem aprovação manual](#allowing-tools-to-be-used-without-manual-approval)
    
  •         [Especificar qual ferramenta você deseja permitir ou negar](#specifying-which-tool-you-want-to-allow-or-deny)
    
  •         [Permitir algumas ferramentas ao negar outras](#allowing-some-tools-while-denying-others)
    
  •         [Limitar as ferramentas disponíveis](#limiting-available-tools)
    

Autorizando o uso de uma ferramenta pela primeira vez

Na primeira vez que Copilot precisar usar uma ferramenta que possa exigir aprovação, por exemplo, por exemplo, touch, chmod, node ou sed – ele perguntará se você deseja permitir que ela seja executada. Se você for solicitado pode depender da ferramenta e de como ela está sendo usada (como os argumentos fornecidos ou se a ferramenta foi aprovada anteriormente).

  1. Prompt Copilot para executar uma tarefa que requer uma ferramenta. Por exemplo:

    copilot -p "Create a new file called README.md with a project description"
    
  2. Escolha uma das três opções:

    • 1. Yes

      Escolha esta opção para permitir que Copilot execute este comando específico, apenas esta 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 esta opção para permitir que Copilot use essa 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á que o Copilot use a ferramenta da maneira que considerar apropriada.

      Por exemplo, se o Copilot solicitar que você permita que ele execute o comando rm ./this-file.txt e você escolher a opção 2, Copilot poderá 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 esta 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 sinalizadores de linha de comando para designar ferramentas que Copilot podem usar sem solicitar sua aprovação.

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 que Copilot use 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 que Copilot use 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.

  •         [Comandos do Shell](#allowing-or-denying-shell-commands)
    
  •         [Ferramentas de 'escrita'](#allowing-or-denying-write-tools)
    
  •         [Ferramentas do servidor MCP](#allowing-or-denying-mcp-server-tools)
    

Permitir ou negar comandos de shell

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

  • Por exemplo, para impedir Copilot de usar 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 que o Copilot use 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 editar 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 de MCP /mcp inserindo o modo interativo da CLI do Copilot e selecionando o servidor na lista exibida.

Permitindo algumas ferramentas ao negar outras

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

  • Para impedir que Copilot use 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 que o Copilot tool_name use a ferramenta do servidor de MCP denominado 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.

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, CLI do Copilot 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 desativar a verificação de caminho e permitir o acesso a qualquer caminho, use a referência --allow-all-paths ao iniciar CLI do Copilot.

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 o --allow-all-urls sinalizador.

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.

Esse sinalizador 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).

Dica

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

Próximas etapas

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot)