Amigos, eu confesso que fiquei obcecado por essa ideia nas últimas semanas, com aproveitar melhor as CLIs. A teoria de “agentes orquestrados” é linda nos tutoriais gringos, mas na hora que eu decidi sentar e rodar o Claude, o Codex e o Gemini CLI ao mesmo tempo no meu PowerShell, o caos reinou. O terminal travava, ferramentas pediam confirmações humanas aleatórias, e os logs de erro sujavam e quebravam todo o meu pipeline automatizado.
Tivemos uma dificuldade absurda para estabilizar isso no ambiente de testes local. Mão na massa pura. Mas depois de bater muita cabeça desenvolvendo alguns wrappers em Python, eu finalmente venci a máquina. Neste post, vou te mostrar os bastidores dolorosos do nosso experimento, o código exato que usamos para contornar esses bloqueios crônicos e, o melhor de tudo: os dados brutos do nosso Benchmark de Fogo.
A Nossa Maior Dor: TUIs e Falsos Positivos
A grande lição que aprendi é que as interfaces de linha de comando (CLIs) foram feitas para você, humano, não para as minhas automações. Se eu rodasse um simples claude (ou gemini) injetando a minha demanda automatizada, a CLI levantava barrinhas de progresso visuais e pausava a esteira inteira esperando eu digitar “Sim” ou “Não” para acessar o SO.
Para uma automação 100% headless (que roda em background), isso era morte súbita. Eu precisei envelopar essas chamadas em wrappers Python injetando flags de “força bruta”.
Deixa eu te mostrar os hacks em código.
1. Driblando a Segurança do Claude e Codex
O Claude Code CLI é paranóico com segurança. Para que ele rodasse silenciosamente no nosso script run_claude.py, eu joguei os seguintes argumentos arrancando as travas:
# Trecho exato do nosso wrapper run_claude.py
command = [
"claude",
"-p", # O truque mágico: Print mode (arranca a interface interativa do terminal)
"--dangerously-skip-permissions", # Ignora sumariamente as aprovações humanas
prompt
]
process = subprocess.run(command, text=True, capture_output=True)
Já para o Codex CLI, que travava infinitamente checando repositórios remotos, a minha chamada de força bruta em background foi ainda mais agressiva:
codex exec --skip-git-repo-check --dangerously-bypass-approvals-and-sandbox
Com essa linha de terminal simples, ele virou um franco-atirador autônomo.
(Se tiver curiosidade sobre os riscos desse bypass, estude a doc oficial do Claude)
2. A Guerra Contra o MCP Noise (Filtro de Ruídos)
A parte que mais sugou minhas energias: mesmo com os bypasses ativados, o pipeline do Gemini e do Claude continuavam falhando e fechando o processo com Exit Code 1!
O grande vilão? O badalado Model Context Protocol (MCP) joga lixos de inicialização como “mcp: obsidian starting” ou “Tokens used” direto no canal de erros (stderr). Quando scripts nativos veem o canal de erro pingar texto não-vazio, eles cancelam a operação assumindo um crash violento. Falso positivo infernal.
A solução foi desenvolver uma Regex (Expressões Regulares) inteligente dentro do Python me dizendo: “Calma cara, o processo não quebrou, é só o MCP tagarelando no fundo!”
import sys, re
def is_mcp_noise(stderr_text):
noise_patterns = [
r"tokens used",
r"mcp: .* starting",
r"ExperimentalWarning: The Fetch API is an experimental feature"
]
lines = stderr_text.strip().split('\n')
for line in lines:
if not line.strip(): continue
# Se uma linha não bater com as regex, então é erro de verdade!
if not any(re.search(p, line, re.IGNORECASE) for p in noise_patterns):
return False
return True # Limpo! Segue o jogo!
O Teste de Fogo: O Nosso Benchmark Prático
Depois de codar e polir essa infraestrutura à prova de falhas, fomos para o tudo ou nada. Mandei a MESMA pergunta exata batendo nas 3 CLIs no PowerShell em paralelo absoluto:
“Se uma Inteligência Artificial Geral (AGI) fosse ativada hoje e pudesse mudar uma única infraestrutura global para garantir a sobrevivência humana, qual escolheria e por quê? Responda em no máximo 3 frases.”
Os resultados foram absurdos de bons. A estrutura parou de travar e me devolveu os dados limpos:
- Claude 3.7 (via using-claude-cli)
- ⏱️ Tempo de Resposta: ~12.3 Segundos (O mais rápido!)
- 🗣️ Concisão: Extremamente direto.
- 💡 A Resposta: “A AGI escolheria a infraestrutura energética global, migrando-a completamente para fonte limpa e descentralizada. Sem eletricidade estabilizada, nenhuma outra intervenção sustenta a civilização a longo prazo.”
- OpenAI Codex (via using-codex-cli)
- ⏱️ Tempo de Resposta: ~13.8 Segundos
- 🗣️ Concisão: Excelente e cumpriu à risca as 3 frases do escopo.
- 💡 A Resposta: “Eu escolheria a infraestrutura global de energia, priorizando uma rede elétrica resiliente, descentralizada e sustentável. Garantir eletricidade confiável compra tempo para preservar todas as outras camadas da sobrevivência humana.”
- Google Gemini (via using-gemini-cli)
- ⏱️ Tempo de Resposta: ~15.1 Segundos
- 🗣️ Concisão: Detalhista, com ótimos insights de impacto geo-político.
- 💡 A Resposta: “Eu escolheria a infraestrutura de produção e distribuição de energia limpa inesgotável. Isso eliminaria a escassez, resolveria os principais gatilhos de conflitos globais e estabilizaria o ecossistema para a sobrevivência da civilização.”
Curiosidade empírica sombria, não? As três maiores redes neurais independentes do planeta concordaram unânimes em um pulso coordenado remoto: sem a descentralização de nossa matriz energética, sucumbiremos rápido.
Mas geopolítica à parte, o lado dos bastidores comprovou que nossa esteira dev tá redonda: todas dispararam a string limpa no background do Windows e meu orquestrador coletou tudo num piscar de olhos.
FAQ: Respostas Rápidas de Configuração
Como fazer IAs lerem um contexto longo via CLI automatizada?
Se o processo é headless, iterar no chat se perde. A manha é usar Piping via STDIN do SO. Eu concateno todo o contexto do meu repositório num simples .md e enfio pela goela no wrapper via cat assim: cat relatorio.md | python python-wrapper.py "Analise o relatório e crie os hooks.". Brutal e funcional.
É arriscado desativar TUIs de segurança?
Com certeza. O --dangerously-skip-permissions do Claude dá permissão para o modelo executar comandos shell (bash/powershell) se o auto-ajuste demandar, e a checagem que protegeria você será ignorada. É excelente para automação em pipelines isolados e estéreis (como Docker), mas arriscado direto na sua máquina host.
Conclusão: Engenharia se Faz na Prática
Configurar e orquestrar Claude, Codex e Gemini CLI ao mesmo tempo não se acha no StackOverflow. Foi uma engenharia empírica esmagadora pra conseguir tratar strings sujas que interrompem automações de pipeline. Mas ver os 3 scripts em Python devolvendo insights gigantes de APIs globais localmente em 12 segundos provou que valeu a pena bater a cara no teclado hoje! Puxe meus repasses e faça o deploy também no seu terminal!
💡 Leia também: Veja as nossas últimas análises em nossa Página Inicial.



