Claude Code x Codex: o que muda no jeito de cada um mexer no seu repositório?

Claude Code x Codex lendo arquivos de um mesmo repositório de código
Resposta rápida

Claude Code x Codex: a diferença real não está no benchmark, está no fluxo dentro do repositório. O Claude Code lê CLAUDE.md mais uma auto memory no início da sessão e troca de postura com Shift+Tab (normal, accept edits, plan mode). O Codex varre AGENTS.md da raiz até o cwd, com teto de 32 KiB, e separa a segurança em duas decisões: sandbox mode (read-only, workspace-write, danger-full-access) e approval policy (untrusted, on-request, never). Os dois rodam sob assinatura paga e têm modo não interativo, codex exec de um lado, claude -p do outro.

Fala aí, beleza? A diferença entre esses dois agentes quase nunca se decide num gráfico bonito, ela se decide dentro do seu repositório

Os dois fazem a mesma dança: leem o projeto, montam contexto, propõem mudança, pedem (ou não) aprovação e devolvem um diff pra você olhar

Só que o caminho até esse diff é bem diferente em cada um, e é justamente isso que você sente na sexta-feira à noite mexendo em código que já está em produção

Este post é pro dev que já decidiu testar os dois e quer saber o que muda no dia a dia: qual arquivo cada um lê no começo da sessão, como cada um troca de postura no meio do trabalho, o que roda sem perguntar nada e o que trava esperando o seu ok

Sem eleger campeão, beleza? Aqui é fluxo de trabalho 🙂

Claude Code x Codex lado a lado: tabela do fluxo de trabalho

Antes de descer no detalhe, se liga no resumo do que cada um faz em cada etapa do ciclo

Etapa do fluxo Claude Code Codex
Arquivo de instruções do projeto CLAUDE.md ou .claude/CLAUDE.md no diretório de trabalho, lido no início de cada sessão Varredura hierárquica da raiz do projeto (normalmente a raiz do Git) até o cwd, checando AGENTS.override.md, depois AGENTS.md, depois os nomes de project_doc_fallback_filenames
Instruções globais do usuário ~/.claude/CLAUDE.md ~/.codex/AGENTS.md (ou ~/.codex/AGENTS.override.md pra sobrescrita temporária), com CODEX_HOME mudando o local
Contexto de instrução carregado Dois mecanismos no começo de cada sessão: o CLAUDE.md escrito por você e a auto memory escrita pelo agente Para de somar arquivos ao atingir project_doc_max_bytes, 32 KiB por padrão, e pula arquivos vazios
Troca de postura dentro da sessão Shift+Tab cicla do modo normal para accept edits, e de accept edits para plan mode /permissions abre o seletor de presets de aprovação, incluindo perfis nomeados customizados quando existirem
Camadas de permissão Modos da sessão mais o auto mode, em que um modelo classificador revisa as ações no seu lugar e bloqueia o que julga inseguro Duas decisões independentes: sandbox mode (read-only, workspace-write, danger-full-access) e approval policy (untrusted, on-request, never ou objeto granular)
Sandbox e rede por padrão Ferramenta Bash em sandbox com leitura e escrita no diretório de trabalho, bloqueio fora dele e rede só por um socket unix ligado a um proxy que restringe domínios Rede desligada por padrão e escrita restrita ao workspace ativo
Subagentes Documentados como recurso próprio, na página de subagentes customizados Documentados como recurso próprio, na página de subagents
Modo não interativo claude -p (–print), com –allowedTools e –bare pra pular a auto descoberta de hooks, skills, plugins, servidores MCP, auto memory e CLAUDE.md codex exec, streamando progresso no stderr e imprimindo só a mensagem final no stdout, com –output-schema e –ephemeral
Instalação npm install -g @anthropic-ai/claude-code, conferindo com claude –version npm install -g @openai/codex ou brew install –cask codex, depois codex e Sign in with ChatGPT
Plano exigido Conta Pro, Max, Team, Enterprise ou Console; o plano gratuito do Claude.ai não dá acesso Login com conta ChatGPT nos planos Plus, Pro, Business, Edu ou Enterprise
Domine o Claude Code do básico ao avançado
Pré-inscrição Formação Claude Code

Domine o Claude Code do básico ao avançado

Você vai aprender a criar sistemas completos com Claude Code, sem precisar ser programador. Inscreva-se para ter acesso a um desconto de lançamento e bônus especiais!

Repara numa coisa: a tabela já entrega o eixo de cada um

O Claude Code concentra a decisão em MODOS que você troca no meio da conversa, com a memória do projeto se acumulando sozinha

O Codex concentra a decisão em duas perguntas declaradas antes de começar: até onde o comando alcança e quando ele para pra perguntar

As instruções iniciais: dois arquivos, duas filosofias

O Claude Code lê o CLAUDE.md no nível do projeto e no nível do usuário, no início de cada sessão

E tem um segundo mecanismo junto: a auto memory, que são notas escritas pelo próprio agente a partir das suas correções e preferências

Ou seja, parte do contexto você escreve, parte ele escreve por você

Já o Codex faz uma varredura hierárquica de AGENTS.md: sobe da raiz do projeto até a pasta em que você está e vai empilhando o que encontra, com AGENTS.override.md na frente do AGENTS.md

Se você conhece como um .gitignore por pasta ou um .eslintrc aninhado funciona, é a mesma pegada: regra mais específica mora perto do código

E aqui entra o detalhe que pega gente desprevenida: o Codex para de somar quando o tamanho combinado bate project_doc_max_bytes, que é 32 KiB por padrão

Então AGENTS.md gigante em monorepo grande não é sinal de contexto rico, é risco de corte silencioso

Tome cuidado! Instrução importante enterrada no fim de um arquivo enorme pode simplesmente não chegar

O que eu senti rodando os dois no mesmo repositório

Eu não rodei Claude Code e Codex em janelas separadas disputando a mesma branch

Eu rodei os dois JUNTOS, com um plugin que traz o Codex pra dentro do Claude Code, num projeto meu que já estava versionado e aberto no VS Code

A instalação foi de 3 comandos: adicionar o marketplace, instalar o plugin e rodar o setup

E não foi liso de primeira, não haha

A primeira tentativa falhou por causa de uma pasta residual que tinha sobrado ali

Tive que excluir essa pasta e repetir o processo, e aí, depois de recarregar os plugins, a instalação foi concluída e a tela de confirmação apareceu

Se isso acontecer contigo, não é bug do universo, é resíduo mesmo

Antes de seguir eu conferi se o CLI do Codex estava na máquina, digitando o comando dele no terminal

A tela abriu pedindo atualização, o que pra mim já era sinal suficiente de que o CLI estava lá =)

Os 3 comandos do plugin que eu usei na prática:

Antes de tudo, um aviso pra ninguém se perder: aqui eu falo dos comandos que o PLUGIN colocou dentro do Claude Code, não do /review nativo do Codex CLI, que eu comento mais pra baixo, na parte de auditoria de diff

São outras teclas, em outro lugar, no mesmo repositório

O plugin me deu 3 comandos principais no fluxo: review, review adversarial e resgate

Rodei o review sobre a última alteração do projeto e ele já me perguntou se eu queria esperar o resultado ali ou jogar pra rodar em segundo plano

O diff analisado era pequeno, 4 arquivos e 13 inserções

Mesmo assim ele achou uma regressão funcional de verdade: a alteração no cadastro removia o único caminho para criar contas de coach, enquanto a aplicação continuava expondo fluxos exclusivos pra esse perfil

Isso é o tipo de coisa que passa batido em code review humano cansado

Depois fui de review adversarial, passando um prompt meu: pedi que ele questionasse a abordagem de autenticação e procurasse problemas no sistema de like e comentário

O veredito voltou como precisa de atenção, com problemas de severidade alta: qualquer usuário podia curtir e descurtir reflexões arbitrárias, e a página de desafio vazava reflexões de outros usuários pra quem nem participava

Aí usei o comando de resgate pedindo a correção de dois pontos específicos, restringir a visibilidade das reflexões e as mutações de like

A correção voltou aplicada no código, com resumo: as reflexões passaram a ser consultadas só pra quem participa do desafio, as rotas de like passaram a validar participação antes da mutação, e o componente de card voltou a desfazer o like otimista quando a requisição falha

Não foi mágica, que fique claro: restaram alguns avisos, e o teste manual continuou sendo pedido no final

O fluxo completo, resumido, foi esse: encontrar o problema, questionar de forma agressiva e depois pedir a correção

Pra mim o review do plugin virou passo antes de abrir PR, principalmente em mudança grande, e o adversarial virou passo antes de subir pra produção

E tem um pré-requisito que é bem real: sem repositório versionado o review não roda, porque ele precisa olhar a última alteração

Se você quer entender melhor como um plugin muda o comportamento do agente por baixo do capô, o Superpowers do Claude Code é um bom termo de comparação

No vídeo acima você me vê fazendo tudo isso na tela: a instalação quebrando, o review rodando sobre o diff e o veredito adversarial apontando as falhas de severidade alta

Qual fluxo encaixa em qual situação

Agora bora amarrar cada característica num cenário concreto do seu dia

Monorepo com regra diferente por pasta:

Aqui a varredura hierárquica do Codex trabalha a seu favor

Você põe o AGENTS.md geral na raiz, e um AGENTS.md específico dentro de packages/web ou packages/worker, com as convenções daquele pedaço

De quebra, AGENTS.override.md serve pra sobrescrita, e no home dele você ainda tem o global em ~/.codex/AGENTS.md

Só não esquece do teto de 32 KiB: em monorepo é fácil estourar sem perceber

Projeto com convenção que muda com o tempo:

Esse é o terreno da auto memory do Claude Code

Você corrige o agente uma vez, ele anota, e aquilo volta carregado no começo da próxima sessão junto com o CLAUDE.md

É diferente de manter documentação: aqui parte do registro nasce da sua correção, não do seu esforço de escrever

Tarefa que precisa de plano antes da primeira edição:

Plan mode do Claude Code, sem discussão

Nesse modo o agente explora o código e produz um plano sem editar arquivo, e as edições nunca são auto aprovadas ali dentro, mesmo que exista uma regra de allow que daria match

É o oposto do accept edits, que auto aprova edições de arquivo e um conjunto fixo de comandos de filesystem (mkdir, touch, rm, mv, cp e sed) pra caminhos dentro do diretório de trabalho

E a troca entre os dois é Shift+Tab, o que faz você mudar de postura no meio da conversa sem sair da sessão

Auditoria de diff antes do PR:

O /review do Codex CLI nasceu pra isso: abre os presets de revisão e inicia um revisor dedicado que lê o diff selecionado e devolve achados priorizados sem mexer no working tree

O alvo pode ser mudança não commitada, um commit específico, um diff contra a branch base, ou instruções customizadas de revisão

E se você mandar aplicar as correções que a revisão encontrou, valem as suas configurações normais de sandbox e aprovação, ou seja, aplicar não é um atalho pra fugir das regras que você já definiu

Automação em pipeline:

Os dois rodam sem interface, com filosofias diferentes de saída

codex exec "corrigir o lint do pacote web" --output-schema schema.json

O codex exec streama o progresso no stderr e imprime só a mensagem final do agente no stdout, com –output-schema forçando a resposta final a seguir um JSON Schema e –ephemeral evitando persistir arquivos de sessão em disco

Do outro lado:

claude -p "Find and fix the bug in auth.py" --allowedTools "Read,Edit,Bash"

Em execuções com -p sem callback de permissão, a doc do Claude Code orienta usar hooks PreToolUse pra tomar as decisões de permissão no lugar dos prompts interativos

E tem o –bare, que pula a auto descoberta de hooks, skills, plugins, servidores MCP, auto memory e CLAUDE.md, útil quando você quer execução previsível e nada mais

Ambiente onde a rede precisa ficar fechada:

Os dois aplicam sandbox com mecanismo do sistema operacional, e não com promessa do modelo

O Codex usa políticas Seatbelt via sandbox-exec no macOS e Landlock/seccomp no Linux, com rede desligada por padrão e escrita restrita ao workspace ativo

O Claude Code é construído sobre bubblewrap no Linux e seatbelt no macOS: leitura e escrita no diretório de trabalho atual, bloqueio de modificação fora dele (inclusive ~/.bashrc e binários em /bin) e rede só por um socket unix ligado a um proxy fora do sandbox, que restringe domínios

Segundo a Anthropic, no uso interno o sandbox reduziu em 84% os pedidos de permissão

E isso importa mais do que parece: prompt demais cansa, e usuário cansado aprova qualquer coisa no automático

Por falar em risco, existe a –dangerously-skip-permissions no Claude Code, que desativa todos os prompts e deixa o agente agir livre, com risco de perda de dados, corrupção do sistema ou exfiltração

A recomendação da própria doc é usar isso só em container sem acesso à internet

Os rm -rf da vida agradecem que você leia essa parte antes 😀

Veredito: não é qual é melhor, é qual fluxo você quer sentir

O eixo do Claude Code é a POSTURA que muda dentro da sessão

Você começa conversando, aperta Shift+Tab e entra em plan mode pra ele explorar sem tocar em arquivo, aperta de novo e libera accept edits pra ele meter a mão

A permissão acompanha o seu humor do momento, e no auto mode um classificador separado revisa as ações no seu lugar

O eixo do Codex é a DECLARAÇÃO antes de começar

São duas camadas independentes: o sandbox mode diz até onde o comando alcança, a approval policy diz quando ele para e pergunta

O preset Auto, por exemplo, equivale a –sandbox workspace-write –ask-for-approval on-request: lê, edita e roda comando no diretório de trabalho automaticamente, e pede aprovação pra editar fora do workspace ou rodar comando que precisa de rede

Já com –ask-for-approval untrusted ele só roda automaticamente as leituras consideradas seguras

E ainda tem os perfis embutidos com dois pontos:read-only, :workspace e :danger-full-access

Quem gosta de configurar uma vez, versionar a decisão e não pensar mais nisso tende a se sentir em casa no Codex

Quem gosta de ajustar a coleira conforme a tarefa esquenta tende a preferir o ciclo de modos do Claude Code

Uma coisa é igual nos dois: não tem versão de graça pra brincar

O Claude Code exige conta Pro, Max, Team, Enterprise ou Console, e o plano gratuito do Claude.ai não dá acesso

O Codex CLI é usado dentro dos planos pagos do ChatGPT: Plus, Pro, Business, Edu ou Enterprise

Próximo passo: rodar os dois na mesma branch

Comparar lendo tabela é legal, mas o que decide mesmo é ver os dois olhando pro SEU código

  1. Instale o Claude Code e confirme que subiu certo
npm install -g @anthropic-ai/claude-code
claude --version

O erro comum deste passo: sair rodando com sudo, que a doc desaconselha

  1. Instale o Codex CLI e faça o login
npm install -g @openai/codex
codex

Na primeira execução escolha Sign in with ChatGPT

O erro comum deste passo: tentar rodar fora de um repositório Git, já que o Codex exige que os comandos rodem dentro de um repo pra evitar mudança destrutiva (e sim, codex exec –skip-git-repo-check existe, mas é fuga, não solução)

  1. Escreva o CLAUDE.md e o AGENTS.md do projeto

Mesmas convenções, mesmos comandos de build e teste, mesma regra de estilo

Se for monorepo, distribua os AGENTS.md pelas pastas em vez de inchar um arquivo só na raiz, lembrando do teto de 32 KiB

O erro comum deste passo: escrever instrução linda e esquecer que no Claude Code a auto memory também entra na conta no início da sessão

  1. Abra a MESMA tarefa nos dois, em modo conservador

No Claude Code, Shift+Tab até o plan mode e deixa ele planejar sem tocar em arquivo

No Codex, /permissions e escolhe o preset de leitura antes de liberar escrita

Aí compara: o que cada um entendeu do projeto, o que cada um propôs, o que cada um decidiu perguntar

Depois disso a escolha para de ser opinião de internet e vira dado do seu repositório

Se você quer um método mais estruturado pra essa comparação, esse jeito de testar a ferramenta no trabalho real ajuda a não decidir no chute

E não precisa ser exclusivo, viu? Como eu mostrei ali em cima, dá pra colocar um pra revisar o trabalho do outro, e a briga vira dupla

até o próximo post! 😀

Perguntas frequentes

Qual a diferença entre o CLAUDE.md e o AGENTS.md?

O Claude Code lê o CLAUDE.md (ou .claude/CLAUDE.md) do diretório de trabalho e o ~/.claude/CLAUDE.md do usuário, sempre no início da sessão, somado à auto memory que o próprio agente escreve. O Codex faz uma varredura hierárquica de AGENTS.md, subindo da raiz do projeto até o seu diretório atual, checando primeiro AGENTS.override.md e depois AGENTS.md em cada pasta, até bater o limite de 32 KiB do project_doc_max_bytes.

O Codex exige que o projeto esteja dentro de um repositório Git?

Sim, o Codex exige que os comandos rodem dentro de um repositório Git justamente pra evitar mudanças destrutivas sem controle de versão por perto. Quem quiser pular essa checagem usa codex exec –skip-git-repo-check.

Dá pra deixar o Claude Code ou o Codex rodando sem aprovar cada ação na mão?

No Claude Code, o modo accept edits auto aprova edições de arquivo e um conjunto fixo de comandos Bash de filesystem (mkdir, touch, rm, mv, cp e sed) dentro do diretório de trabalho, e ainda tem o auto mode, em que um classificador revisa as ações no seu lugar. No Codex isso é a approval_policy: com never o agente não para pra perguntar, e o preset Auto (workspace-write + on-request) já libera leitura, edição e comando dentro do workspace automaticamente.

Como rodar Claude Code ou Codex de forma não interativa, tipo em script ou CI?

O Claude Code usa a flag -p (–print), como em claude -p "Find and fix the bug in auth.py" –allowedTools "Read,Edit,Bash", e o –bare pula a auto descoberta de hooks, skills, plugins, servidores MCP, auto memory e CLAUDE.md. O Codex usa codex exec, que streama o progresso no stderr e imprime só a mensagem final no stdout, com –output-schema pra forçar um JSON Schema e –ephemeral pra não persistir arquivos de sessão.

Dá pra usar Claude Code ou Codex no plano gratuito?

Não em nenhum dos dois. O Claude Code exige conta Pro, Max, Team, Enterprise ou Console, e o plano gratuito do Claude.ai não dá acesso. O Codex CLI é usado com login da conta ChatGPT, mas só nos planos Plus, Pro, Business, Edu ou Enterprise.

O Codex tem algum comando pra revisar o diff antes de aplicar a mudança?

Tem sim, o /review do Codex CLI, que abre presets de revisão e inicia um revisor dedicado lendo mudanças não commitadas, um commit, um diff contra a branch base ou instruções customizadas, devolvendo achados priorizados sem alterar o working tree. Se depois você pedir pro Codex aplicar as correções que ele encontrou, isso passa pelas mesmas configurações de sandbox e approval policy da sua sessão normal.




Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares