Você instala o Codex CLI. Inicia animado. Diz pra ele: “conserte os testes quebrados deste repositório”. E começa o martírio:

Codex: I want to run pytest
Allow? (y/n)

Você digita y. Logo em seguida:

Codex: I want to modify test_user.py
Allow? (y/n)

De novo y. E de novo. E de novo. Cada arquivo que ele quer ler, cada comando que ele quer executar, cada linha que quer modificar. Permissão, permissão, permissão. É como trabalhar com um estagiário que te pergunta se pode ir ao banheiro.

Enquanto isso, Claude Code ou Cursor Agent fazem tudo sem incomodar. O que está acontecendo?

Acontece que o Codex vem configurado por padrão como um assistente paranoico. E faz sentido — é a decisão segura para um produto novo. Mas se você sabe o que está fazendo, esse modo conservador é insuportável para trabalho de verdade.

A boa notícia: isso se resolve em dois segundos.

O sistema de permissões: approval mode

O Codex usa um conceito chamado approval mode que controla quando ele precisa da sua permissão. Por padrão, ele pede pra tudo:

  • Executar comandos
  • Escrever arquivos
  • Modificar código
  • Criar novos arquivos
  • Rodar testes

Em linguagem simples: por padrão, o Codex não faz absolutamente nada sem que você pressione y. É como um sudo para cada ação individual.

O resultado é que o que deveria ser um agente autônomo vira um diálogo interminável onde você é o elo mais lento da cadeia.

A solução: um flag e tudo resolvido

1
codex --approval-mode never

É só isso. Com --approval-mode never, o Codex para de perguntar. Ele executa comandos diretamente, modifica arquivos sem pedir permissão, cria o que precisar criar. Ele se comporta como deveria: um agente que trabalha.

Quer que isso seja permanente? Você tem duas opções:

1
2
3
4
5
# Opção 1: comando de configuração
codex config set approval_mode never

# Opção 2: editar o arquivo diretamente
# ~/.codex/config.toml
1
approval_mode = "never"

A partir de agora, toda vez que você iniciar o Codex, ele trabalhará sem interrupções.

O segundo problema: o sandbox

Mas tem um segundo motivo pelo qual o Codex trava. Mesmo que você desative as confirmações, o sandbox padrão pode ser tão restritivo que o agente não consegue nem escrever no repositório.

O modo ideal para desenvolvimento é o workspace-write:

  • Lê o repositório inteiro
  • Modifica arquivos existentes
  • Cria novos arquivos
  • Executa comandos dentro do projeto

O comando completo para um Codex funcional de verdade:

1
codex --approval-mode never --sandbox workspace-write

Dois flags. Só isso. É a diferença entre um assistente que te pergunta se pode mover o mouse e um agente que faz o trabalho dele.

Criando um alias para evitar repetição

Se você trabalha no terminal (e se está usando o Codex CLI, imagino que sim), crie um alias:

1
2
3
4
5
# Fish
alias codex-agent "codex --approval-mode never --sandbox workspace-write"

# Bash/Zsh
alias codex-agent="codex --approval-mode never --sandbox workspace-write"

A partir de agora:

1
codex-agent

E você terá um Codex que se comporta como um verdadeiro agente.

Modo one-shot: só lança e deixa ele trabalhar

Onde isso fica interessante é quando você passa a tarefa diretamente como argumento:

1
2
codex-agent "Run the test suite, identify failing tests, \
fix the code and repeat until everything passes."

Sem sessão interativa. Sem conversa. O Codex analisa o projeto, roda os testes, identifica erros, ajusta o código, roda os testes de novo e repete até dar tudo certo. Enquanto isso, você vai tomar um café.

Esse padrão — o agentic loop — é exatamente o que todos os coding agents modernos fazem internamente. Um loop que itera até o trabalho estar concluído. A diferença é que o Codex, por padrão, te coloca no meio do loop como um passo obrigatório. Com esses dois flags, você sai do caminho e deixa o loop fazer seu trabalho.

A comparação desconfortável com Claude Code

Aqui vem a parte que a OpenAI não gosta de ouvir: Claude Code já está configurado assim desde o começo.

AspectoCodex CLI (padrão)Codex CLI (ajustado)Claude Code
PermissõesPede para TUDONão pede nadaPede só para operações destrutivas
SandboxRestritivoworkspace-writePermissivo com confirmação seletiva
Modo CLISimSimNativo, CLI-first
Modo one-shotcodex "prompt"codex-agent "prompt"claude --print "prompt"
Configuração necessária0 flags2 flags0 flags

Claude Code tem uma abordagem mais equilibrada: permite que você trabalhe sem interrupções para 90% das operações, mas pede confirmação para coisas potencialmente destrutivas (excluir arquivos, executar comandos que alteram o sistema). É o equilíbrio que o Codex deveria ter por padrão.

Qual é o impacto prático? Com o Claude Code, você começa a trabalhar desde o primeiro minuto. Com o Codex, primeiro você tem que passar pelo ritual de configuração. Não leva muito tempo — são literalmente dois flags — mas é uma barreira de entrada desnecessária que frustra as pessoas nos primeiros cinco minutos.

O prompt que faz a diferença

Uma vez que o Codex tenha permissões, a qualidade do resultado depende 100% do prompt. Um prompt vago gera trabalho vago.

# Errado
Fix the tests.

# Certo
Fix the failing tests in this repository.
Work autonomously:
- inspect the repo structure
- run tests
- modify code to fix failures
- rerun tests
- repeat until all tests pass
Do not ask for confirmation.

A diferença é enorme. O primeiro prompt pode fazer o Codex corrigir um teste e parar. O segundo diz explicitamente para ele iterar até que tudo funcione. É a diferença entre dizer para um encanador “conserte isso” e dar uma lista detalhada do que está quebrado.

E isso vale para o Claude Code, o Cursor, qualquer agente. O approval mode elimina as interrupções. O prompt determina se o trabalho que ele faz sem interrupções é bom ou ruim.

Quando NÃO desativar as permissões

Seria irresponsável dizer “use --approval-mode never sempre” sem o aviso:

Não faça isso em repositórios de produção sem revisão posterior. Um agente autônomo que faz commit diretamente na main sem revisão é uma bomba-relógio. O modo autônomo é perfeito para:

  • Branches de desenvolvimento onde você revisa o resultado
  • Sessões interativas onde você observa o que está sendo feito
  • Tarefas delimitadas: “conserte os testes”, “formate este módulo”, “atualize as dependências”

Para situações que impactam produção, o approval mode seletivo do Claude Code é mais sensato: trabalha livremente, mas pede permissão antes de apertar o botão de autodestruição.

O resumo em 30 segundos

Se o Codex CLI está te deixando maluco com pedidos de confirmação:

1
2
3
4
5
# Inicialização rápida
codex --approval-mode never --sandbox workspace-write

# Permanente
codex config set approval_mode never
1
2
# ~/.codex/config.toml
approval_mode = "never"

Dois parâmetros transformam um assistente inseguro em um agente autônomo. A configuração padrão do Codex é a mais segura, não a mais produtiva. Agora você já sabe onde desligar o interruptor.