Além de executar Copilot CLI interativamente, você também pode passar um prompt diretamente para a CLI em um único comando, sem inserir uma sessão interativa. Isso permite que você use Copilot de forma programática em scripts, pipelines de CI/CD e workflows de automação. Para obter mais informações, consulte Executando GitHub Copilot CLI programaticamente.
Este artigo descreve as opções de linha de comando e as variáveis de ambiente que são particularmente relevantes ao executar Copilot CLI programaticamente.
Para ver uma lista completa das opções disponíveis, consulte referência de comando da CLI GitHub Copilot ou insira o seguinte comando em seu terminal:
copilot help
copilot help
Opções de linha de comando
Há várias opções de linha de comando que são particularmente úteis ao executar Copilot CLI programaticamente.
| Opção | Descrição |
|---|---|
-p PROMPT | Execute um comando no modo não interativo. A CLI executa o prompt e sai quando terminar a execução. |
-s | Suprimir estatísticas e decoração, exibindo apenas a resposta do agente. Ideal para direcionar a saída em scripts. |
--add-dir=DIRECTORY | Adicione um diretório à lista de caminhos permitidos. Isso pode ser usado várias vezes para adicionar vários diretórios. Útil quando o agente precisa ler/gravar fora do diretório de trabalho atual. |
--agent=AGENT | Especifique um custom agent a ser usado. |
--allow-all(ou --yolo) | Permitir todas as permissões da CLI. Equivalente a --allow-all-tools --allow-all-paths --allow-all-urls. |
--allow-all-paths | Desabilite totalmente a verificação do caminho do arquivo. Alternativa mais simples para --add-dir quando as restrições de caminho não são necessárias. |
--allow-all-tools | Permitir que cada ferramenta seja executada sem permissão explícita para cada ferramenta. |
--allow-all-urls | Permitir o acesso a todas as URLs sem permissão explícita para cada URL. |
--allow-tool=TOOL ... | Conceda permissão seletivamente para uma ferramenta específica. Para várias ferramentas, use uma lista entre aspas e separada por vírgulas. |
--allow-url=URL ... | Permitir que o agente busque uma URL ou domínio específico. Útil quando um fluxo de trabalho precisa de acesso à Web para pontos de extremidade conhecidos. Para várias URLs, use uma lista entre aspas e separada por vírgulas. |
--attachment=PATH ... | Anexe um arquivo (imagem ou documento nativo) ao prompt inicial. Válido somente no modo não interativo. Pode ser usado várias vezes para anexar vários arquivos. |
--available-tools=TOOL ... | Restrinja o modelo apenas às ferramentas listadas; todas as outras ferramentas não estão disponíveis. Útil para fazer um escopo rígido do que o agente pode fazer em um fluxo de trabalho automatizado. Para várias ferramentas, use uma lista entre aspas e separada por vírgulas. |
--deny-tool=TOOL ... | Negar uma ferramenta específica. Útil para restringir o que o agente pode fazer em um fluxo de trabalho bloqueado. Para várias ferramentas, use uma lista entre aspas e separada por vírgulas. |
--deny-url=URL ... | Negar acesso a uma URL ou domínio específico. Tem precedência sobre --allow-url. Para várias URLs, use uma lista entre aspas e separada por vírgulas. |
--excluded-tools=TOOL ... | Remova ferramentas específicas daquelas disponíveis para o modelo. Para várias ferramentas, use uma lista entre aspas e separada por vírgulas. |
--fleet | Execute o prompt no modo de frota, portanto Copilot , usa subagentes paralelos para trabalhar em partes separadas da tarefa. Combine com -p para automação não interativa, -i para uma sessão interativa ou um prompt pipe. Não há suporte no modo de servidor ACP. Consulte Acelerando a conclusão da tarefa com o /fleet comando. |
--model=MODEL | Escolha o modelo de IA (por exemplo, gpt-5.4 ou claude-haiku-4.5). Útil para fixar um modelo em fluxos de trabalho reproduzíveis. Veja como escolher um modelo abaixo. |
--no-ask-user | Evitar que o agente pause para solicitar informações adicionais do usuário. |
--output-format=FORMAT | Defina o formato de saída: text (o padrão) ou json. Com json, a CLI emite JSONL (um objeto JSON por linha), o que é conveniente para analisar a saída do agente em scripts. |
--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. Essencial para evitar que segredos sejam expostos em logs. Os valores nas variáveis de ambiente GITHUB_TOKEN e COPILOT_GITHUB_ são redigidos por padrão. |
--share=PATH | Exportar a transcrição da sessão para um arquivo Markdown após a conclusão não interativa (o padrão é ./). Útil para auditar ou arquivar o que o agente fez. Observe que as transcrições de sessão podem conter informações confidenciais. |
--share-gist | Publique a transcrição da sessão como um GitHub gist secreto após a conclusão. Conveniente para compartilhamento de resultados da CI. Observe que as transcrições de sessão podem conter informações confidenciais. |
Execução de fluxos de trabalho dinâmicos
Use copilot workflow run WORKFLOW-NAME para executar um fluxo de trabalho dinâmico a partir de um script. Para saber mais sobre fluxos de trabalho dinâmicos, consulte Fluxos de trabalho dinâmicos.
Use --args para JSON embutido ou um @caminho de arquivo JSON prefixado. Os argumentos não são lidos da entrada padrão.
copilot workflow run WORKFLOW-NAME \ --args @workflow-input.json \ --silent --output-format json
copilot workflow run WORKFLOW-NAME \
--args @workflow-input.json \
--silent --output-format json
Configure a autenticação e conceda as permissões necessárias para a ferramenta antes de executar o comando. Opções compartilhadas, como --model, --allow-tool, --allow-urle --add-dir aplicar. O comando não exibe prompts de aprovação de permissão. Opções de prompt e modo de sessão, como -p, -i, --agent, --fleet, --autopilot, --resumee --continue não têm suporte com workflow run.
As extensões de projeto são carregadas somente de pastas confiáveis ou com consentimento explícito. Na automação, GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true permite o carregamento de extensões de projeto para essa invocação. Habilite-o apenas para o código do repositório em que você confia. Ele não concede permissões de ferramenta.
Para todas as opções específicas do fluxo de trabalho, consulte referência de comando da CLI GitHub Copilot.
Saída do fluxo de trabalho
Com --output-format jsona saída padrão usa JSONL. Quando a execução é concluída ou interrompida, o registro final tem os campos a seguir. Adicione --silent para suprimir o progresso e outros registros de eventos.
| Campo | Descrição |
|---|---|
type | Sempre workflow.result. |
data.name | O nome do fluxo de trabalho. |
data.run.runId | O identificador da execução. |
data.run.status | O status final da execução: completed, halted, paused, cancelled ou error. |
data.run.result | O valor retornado, se houver. Omitido quando --result-file for fornecido. |
data.run.pause, data.run.reason, , data.run.error``data.run.failure | Detalhes adicionais sobre por que uma execução foi pausada ou interrompida, quando disponível. |
data.resultFile | O caminho do arquivo de resultado solicitado, incluído somente após o arquivo de resultado ter sido gravado com êxito. |
Com --result-file PATH, o arquivo contém apenas o valor retornado, como JSON. Uma execução pausada, com falha ou interrompida, não substitui um arquivo de resultado existente. Uma execução concluída que não retorna nenhum valor não grava um arquivo de resultado.
Erros e diagnósticos para execuções que não são concluídas são gravados em erro padrão, inclusive no modo silencioso. Um erro antes do início do fluxo de trabalho ou uma interrupção pode encerrar o comando sem um registro JSON final.
Códigos de saída do fluxo de trabalho
| Código de saída | Meaning |
|---|---|
0 | O fluxo de trabalho foi concluído com êxito e qualquer arquivo de resultado solicitado foi gravado com êxito. Um fluxo de trabalho que não retorna nenhum valor também pode ser concluído com êxito sem criar um arquivo de resultado. |
1 | A execução não foi concluída, incluindo uma pausa, um limite que interrompeu a execução, o cancelamento ou a falha. Também é usado para erros gerais de comando, como sintaxe de linha de comando inválida ou uma falha ao salvar o resultado. |
2 | O fluxo de trabalho não foi encontrado ou seus argumentos não puderam ser lidos, interpretados como JSON ou validados com base nas entradas aceitas pelo fluxo de trabalho. |
130 | O comando foi interrompido por SIGINT ou SIGTERM, por exemplo, pressionando Ctrl+C. |
Verifique o código de saída antes de consumir um arquivo de resultado. Um arquivo de resultado anterior ainda pode existir após uma execução malsucedida. Um registro final com data.run.status definido como completed não garante que o arquivo de resultados tenha sido salvo com êxito.
Ferramentas para a opção --allow-tool
Você pode especificar vários tipos de ferramentas com a opção --allow-tool .
| Tipo de ferramenta | O que controla |
|---|---|
| shell | Executando comandos de shell. |
| gravação | Criando ou modificando arquivos. |
| leitura | Lendo arquivos ou diretórios. |
| url | Buscando conteúdo de uma URL. |
| memória | Armazenando novos fatos na memória persistente do agente. Isso não afeta o uso de memórias existentes. Consulte Sobre a Memória do GitHub Copilot. |
| MCP-SERVER | Invocando ferramentas de um servidor MCP específico. Use o nome configurado do servidor como o identificador, por exemplo, github. Consulte Adicionando servidores MCP para GitHub Copilot CLI. |
Filtros de ferramenta
Os tipos de ferramentas de servidor shell, write, url e MCP permitem que você especifique um filtro, entre parênteses, para controlar quais ferramentas específicas são permitidas.
| Tipo de ferramenta | Exemplo | Explicação do exemplo |
|---|---|---|
| Shell | shell(git:*) | Permitir todos os subcomandos git (git push, git statusetc.). |
shell(npm test) | Permitir o comando exato npm test. | |
| escrever | write(.github/ | Permitir que a CLI escreva nesse caminho específico. |
write(README.md) | Permitir que a CLI escreva em qualquer arquivo cujo caminho termina com /README.md. | |
| url | url(github.com) | Permitir que a CLI acesse URLs HTTPS no github.com. |
url(http:/ | Permitir que a CLI acesse o servidor de desenvolvimento local com o protocolo e a porta explícitos. | |
url(https:/ | Permitir que a CLI acesse qualquer GitHub subdomínio (por exemplo, api.github.com). | |
url(https:/ | Permitir acesso à documentação Copilot, neste site. | |
| MCP-SERVER | github(create_issue) | Permitir somente a ferramenta create_issue do servidor github MCP. |
Observação
Os curingas são permitidos apenas para shell para corresponder a todos os subcomandos de uma ferramenta específica e para url no início do nome do host para corresponder a qualquer subdomínio ou no final de um caminho para corresponder a qualquer sufixo de caminho — conforme mostrado na tabela anterior.
Variáveis de ambiente
Você pode usar variáveis de ambiente para configurar vários aspectos do comportamento da CLI ao executar programaticamente. Isso é particularmente útil para definir a configuração em fluxos de trabalho de CI/CD ou em outros ambientes automatizados em que talvez você não queira especificar determinadas opções diretamente na linha de comando.
| Variable | Descrição |
|---|---|
COPILOT_ALLOW_ALL | Definir true para permissões completas |
COPILOT_MODEL | Definir o modelo (por exemplo, gpt-5.4, claude-haiku-4.5) |
COPILOT_HOME | Defina o diretório para o arquivo de configuração da CLI (~/.copilot por padrão) |
COPILOT_AUTO_ | Defina como false para desabilitar atualizações automáticas. Útil em CI e em outros ambientes automatizados em que você deseja fixar a versão da CLI. |
COPILOT_GITHUB_ | Token de autenticação (precedência mais alta) |
GH_TOKEN | Token de autenticação (segunda precedência) |
GITHUB_TOKEN | Token de autenticação (terceira precedência) |
GITHUB_COPILOT_ | Defina como true para permitir que as extensões de projeto carreguem para uma execução de prompt ou fluxo de trabalho direto. Use isto apenas com código de repositório em que você confia. Isso não concede permissões de ferramenta. |
Para obter detalhes completos das variáveis de ambiente para Copilot CLI, use o comando copilot help environment em seu terminal.
Escolhendo um modelo
Quando você envia um prompt no Copilot CLI modo não interativo, o modelo que a CLI usa para gerar uma resposta é mostrado na saída da resposta (se a opção -s, ou --silent, não for usada).
Você pode usar a opção --model para especificar qual modelo de IA a CLI deve usar. Isso permite que você escolha um modelo mais adequado para seu prompt, equilibrando fatores como velocidade, custo e funcionalidade.
Por exemplo, para tarefas simples, como explicar algum código ou gerar um resumo, você pode escolher um modelo rápido e de menor custo, como um modelo Claude Haiku:
copilot -p "What does this project do?" -s --model claude-haiku-4.5
copilot -p "What does this project do?" -s --model claude-haiku-4.5
Para tarefas mais complexas que exigem um raciocínio mais profundo, como depuração ou refatoração de código, você pode escolher um modelo mais poderoso, como um modelo GPT Codex.
copilot -p "Fix the race condition in the worker pool" \ --model gpt-5.3-codex \ --allow-tool='write, shell'
copilot -p "Fix the race condition in the worker pool" \
--model gpt-5.3-codex \
--allow-tool='write, shell'
Observação
Para ver as cadeias de caracteres de modelo para todos os modelos disponíveis, execute o /model comando em uma sessão interativa Copilot CLI . Para obter a lista completa de modelos e clientes que dão suporte a eles, consulte Modelos de IA com suporte no GitHub Copilot.
Como alternativa, você pode definir a COPILOT_MODEL variável de ambiente para especificar um modelo durante a sessão do shell.
Para persistir uma seleção de modelo entre sessões de shell, você pode definir a model chave no arquivo de configuração da CLI. Esse arquivo está localizado em ~/.copilot/settings.json (ou $COPILOT_HOME/settings.json se você definiu a variável de COPILOT_HOME ambiente). Alguns modelos também permitem que você defina um nível de esforço de raciocínio, que controla quanto tempo o modelo passa pensando antes de responder.
{
"model": "gpt-5.3-codex",
"effortLevel": "low"
}
{
"model": "gpt-5.3-codex",
"effortLevel": "low"
}
Dica
A maneira mais fácil de definir um modelo persistente no arquivo de configuração é com o /model comando barra em uma sessão interativa. A escolha que você faz com esse comando é gravada no arquivo de configuração.
Precedência do modelo
Ao determinar qual modelo usar para um determinado prompt, a CLI verifica se há especificações de modelo na seguinte ordem de precedência (da mais alta para a mais baixa):
- Onde um agente personalizado é usado: o modelo especificado na definição do agente personalizado (se houver).
- A opção de linha de comando
--model. - A variável de ambiente
COPILOT_MODEL. - A chave
modelno arquivo de configuração (~/.copilot/settings.jsonou$COPILOT_HOME/settings.json). - O modelo padrão da CLI.
Usando agentes personalizados
Você pode delegar o trabalho a um agente especializado usando a opção --agent . Para obter mais informações, consulte Criando e usando agentes personalizados para GitHub Copilot CLI.
Neste exemplo, o code-review agente é usado. Isso requer que um agente personalizado tenha sido criado com esse nome.
copilot -p "Review the latest commit" \
--allow-tool='shell' \
--agent code-review