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

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
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
- 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
- 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)
- 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
- 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.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
