Codex: Modo Não Interativo & Multiplataforma do Codex
Última atualização: 2026-08-31
O modo não interativo torna o Codex adequado para scripts e automação, enquanto Windows e Worktrees requerem configuração especial.
📋 Pré-requisitos: Compreensão das operações básicas do Codex CLI
1. O Que Você Vai Aprender
- Modo não interativo em detalhes
- Configuração de ambiente Windows
- Integração com Git Worktrees
- Considerações multiplataforma
2. Modo Não Interativo
(1) Métodos de Inicialização
# Passar tarefa diretamente, sai após execução
codex "Fix all lint errors"
# Modo silencioso, menos saída
codex --quiet "Generate API documentation" > api-docs.md
# Saída JSON, adequada para parsing programático
codex --json "List all TODOs" > todos.json
# Totalmente automatizado
codex --full-auto --approval-policy approve "Run all tests and fix failures"
(2) Entrada via Pipe
# Ler de stdin
echo "Explain this code" | codex --quiet
# Ler de arquivo
cat error.log | codex --quiet "Analyze the error root cause"
# Combinar com git
git diff main | codex --quiet "Review the changes"
(3) Códigos de Saída
| Código de Saída | Descrição |
|---|---|
| 0 | Tarefa completada com sucesso |
| 1 | Tarefa falhou |
| 2 | Erro de parâmetro |
| 130 | Usuário interrompeu (Ctrl+C) |
▶ Exemplo 1: Script de Automação de Alice
#!/bin/bash
# auto-fix.sh - Script diário de auto-fix
# Puxar código mais recente
git pull origin main
# Corrigir lint
codex --full-auto --quiet "Fix all lint errors"
# Gerar testes ausentes
codex --full-auto --quiet "Generate unit tests for source files without tests"
# Executar testes
npm test
if [ $? -eq 0 ]; then
git add -A
git commit -m "chore: daily auto-fix"
git push origin main
echo "✅ Auto-fix completed and pushed"
else
echo "❌ Tests failed, skipping push"
fi
3. Ambiente Windows
(1) Métodos de Instalação
# Opção 1: npm (requer Node.js)
npm install -g @openai/codex
# Opção 2: WSL (recomendado)
wsl
# Instalar como Linux dentro do WSL
(2) Configuração do PowerShell
# Definir API Key
$env:OPENAI_API_KEY = "sk-your-key"
# Configuração permanente
[System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-your-key", "User")
# Definir Base URL (DeepSeek)
$env:OPENAI_BASE_URL = "https://api.deepseek.com"
(3) Problemas Comuns
| Problema | Solução |
|---|---|
| Separadores de caminho diferentes | Use path.join() ou barras normais |
| Problemas de encoding | Defina $OutputEncoding = [System.Text.Encoding]::UTF8 |
| Permissão restrita | Execute PowerShell como Administrador |
| Comando não encontrado | Verifique variável de ambiente PATH |
(4) WSL Recomendado
# Instalar e usar Codex dentro do WSL
sudo npm install -g @openai/codex
export OPENAI_API_KEY="sk-xxx"
codex
4. Integração com Git Worktrees
(1) O Que São Worktrees
Git Worktrees permitem que você faça checkout de múltiplas branches do mesmo repositório em diretórios diferentes simultaneamente, ideal para desenvolvimento paralelo.
# Criar worktree
git worktree add ../feature-auth feature/auth
git worktree add ../feature-payment feature/payment
(2) Codex + Worktrees
Cada Worktree pode rodar uma instância independente do Codex:
# Terminal 1: Trabalhar na funcionalidade de autenticação
cd ../feature-auth
codex "Implement JWT authentication"
# Terminal 2: Trabalhar na funcionalidade de pagamento
cd ../feature-payment
codex "Add Stripe payment"
▶ Exemplo 2: Desenvolvimento Paralelo de Bob
# Bob usa Worktrees para desenvolvimento paralelo
git worktree add ../fix-bug-123 fix/bug-123
git worktree add ../new-feature new/feature-x
# Terminal 1
cd ../fix-bug-123
codex --full-auto "Fix Issue #123"
# Terminal 2
cd ../new-feature
codex "Implement feature X"
# Duas tarefas executam em paralelo sem interferência
(3) Limpeza de Worktrees
# Listar todos os worktrees
git worktree list
# Remover worktree
git worktree remove ../feature-auth
# Podar worktrees obsoletos
git worktree prune
5. Considerações Multiplataforma
| Consideração | macOS/Linux | Windows |
|---|---|---|
| Separador de Caminho | / |
\ (recomenda-se /) |
| Finais de Linha | LF | CRLF |
| Variáveis de Ambiente | export KEY=value |
$env:KEY = "value" |
| Shell | bash/zsh | PowerShell/WSL |
| Permissões | chmod |
Diálogo de propriedades |
❓ Perguntas Frequentes
P: O modo não interativo pode usar Computer Use? R: Não. Computer Use requer interface gráfica e confirmação interativa, que o modo não interativo não suporta.
P: Windows nativo ou WSL — qual é melhor? R: WSL é melhor. O Codex CLI tem a melhor compatibilidade no Linux; o WSL fornece uma experiência Linux nativa.
P: Instâncias do Codex em Worktrees vão conflitar? R: Não. Cada Worktree é um diretório independente, instâncias do Codex não interferem. Mas não modifique o mesmo arquivo na mesma branch em duas instâncias.
P: Como o modo não interativo lida com solicitações de confirmação? R: Requer
--approval-policy approveou--full-auto. Caso contrário, travará. Operações apenas leitura devem usardeny; modificações precisam deapprove.
P: E problemas de encoding no Windows? R: Defina encoding do PowerShell para UTF-8:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8.
📖 Resumo
- Modo não interativo: adequado para integração com scripts e automação
- Windows: WSL recomendado, PowerShell precisa de configuração de encoding
- Git Worktrees: desenvolvimento paralelo multi-branch, cada Worktree roda Codex independente
- Multiplataforma: note diferenças de caminho, finais de linha e variáveis de ambiente
📝 Exercícios
- Básico (⭐): Use modo não interativo para um code review, saída para arquivo.
- Intermediário (⭐⭐): Escreva um script de automação usando modo não interativo para lint fix + teste + commit.
- Avançado (⭐⭐⭐): Configure um ambiente de desenvolvimento paralelo com Git Worktrees, duas instâncias do Codex trabalhando em branches diferentes simultaneamente.