O Claude Code é forte na leitura de bases de código extensas e em manter um plano coerente entre muitos arquivos. O Codex é forte em mudanças bem delimitadas e orientadas a testes. Muitos engenheiros acabam querendo os dois no mesmo repositório: um rascunhando uma refatoração enquanto o outro reforça uma suíte de testes instável. No momento em que você tenta, o mesmo diretório de trabalho se torna o problema. Duas ferramentas diferentes, duas CLIs diferentes, uma pasta na qual ambas escrevem.
Este guia percorre a configuração passo a passo, nomeia o modo de falha em cada etapa e mostra onde dois terminais deixam de escalar. A metade do isolamento é um problema resolvido com git worktrees. A metade da coordenação, saber qual ferramenta está em qual tarefa e manter toda mudança revisável, é onde uma camada neutra em relação ao runtime como o Sharkly assume o controle.
O Sharkly não substitui o Claude Code nem o Codex. Ele adiciona a camada compartilhada de Task, Computer, contexto e revisão ao redor das ferramentas de execução que você já usa, de modo que uma sessão do Claude Code e uma sessão do Codex se tornam duas atribuições em um único fluxo de trabalho, em vez de dois terminais que você precisa vigiar.
Por que você rodaria Claude Code e Codex no mesmo repositório
Três motivos aparecem repetidamente, e eles não são o mesmo problema.
Pontos fortes diferentes em tarefas diferentes. Você envia o trabalho de contexto amplo (rastrear este bug pelo módulo, planejar esta migração) para um agente e o trabalho estreito e verificável (fazer este teste passar, ajustar esta função) para o outro. Casar a ferramenta com a tarefa é um assunto à parte; veja qual modelo para qual tarefa de programação.
Uma comparação direta em trabalho real. O único benchmark honesto é a sua base de código, não um ranking. Rodar ambos no mesmo ticket e comparar os diffs diz mais do que qualquer pontuação publicada. Abordamos o método em como comparar agentes de programação na sua própria base de código.
Você já paga pelos dois. Muitas equipes já têm uma assinatura do Claude e uma assinatura do Codex ou um acesso via API. A neutralidade em relação ao provedor é o ponto: seu fluxo de trabalho deve sobreviver a qualquer ferramenta que lance o próximo melhor modelo, sem precisar ser refeito.
Seja qual for o motivo, a falha é idêntica. Dois agentes em uma mesma pasta são dois escritores editando um mesmo documento sem nenhum bloqueio. Um troca a branch debaixo do outro, ou reformata um arquivo no meio de uma edição, e você fica com diffs aplicados pela metade que não fazem sentido algum.
Passo 1: dê a cada agente seu próprio worktree
O git worktree resolve a colisão na raiz. Um repositório pode ter vários diretórios de trabalho extraídos ao mesmo tempo, cada um em sua própria branch, compartilhando um único banco de dados .git. Em vez de uma pasta pela qual as duas ferramentas brigam, você tem uma por tarefa.
# One checkout per task, each on its own branch
git worktree add ../app-refactor -b agent/refactor
git worktree add ../app-tests -b agent/tests
git worktree list
Aponte uma ferramenta diferente para cada diretório:
cd ../app-refactor && claude # Claude Code on the refactor
cd ../app-tests && codex # Codex on the test suite
Modo de falha se você pular isso: as duas ferramentas fazem cd para o mesmo repositório, competem pelos mesmos arquivos e uma sobrescreve silenciosamente o trabalho não commitado da outra. Os worktrees tornam isso fisicamente impossível. A limpeza depois tem suas próprias arestas cortantes; gerenciar worktrees sem a dor da limpeza cobre o git worktree remove e o problema das branches obsoletas.
Passo 2: aponte cada ferramenta para as instruções corretas
O Claude Code e o Codex leem arquivos de projeto diferentes. O Claude Code procura por CLAUDE.md; o Codex lê o AGENTS.md. Se o seu repositório tem apenas um deles, um agente trabalha às cegas em relação às suas convenções.
Mantenha os dois, e mantenha-os consistentes. O padrão confiável é escrever as regras compartilhadas uma vez e fazer cada ponto de entrada incluí-las:
<!-- CLAUDE.md and AGENTS.md both start with -->
See ./docs/agent-conventions.md for build, test, and style rules.
# Verify each tool actually loads its file before you turn it loose
claude --version # Claude Code reads CLAUDE.md from the worktree root
codex --version # Codex reads AGENTS.md from the worktree root
Modo de falha se você pular isso: o Codex segue uma configuração de lint enquanto o Claude Code segue outra, e todo merge vira uma briga de estilo que ninguém documentou. Uma observação pessoal aqui importa: um token de instalação não carrega suas convenções, e um arquivo local no .gitignore não viaja para o worktree. Coloque as regras compartilhadas em arquivos versionados, ou cada novo worktree começa vazio.
Passo 3: lance, e então veja a lacuna de coordenação se abrir
Com dois worktrees e dois arquivos de configuração, a mecânica funciona. Você tem o Claude Code em uma branch e o Codex em outra, nenhum tocando os arquivos do outro. Por uma tarde com dois agentes, isso se sustenta.
A lacuna se abre quando você levanta os olhos do teclado. Cada sessão mantém seu próprio histórico em sua própria aba, invisível para a outra. Quando a execução do Codex precisa saber o que a execução do Claude Code já mudou, não há memória compartilhada a consultar, então você se torna a camada de integração. Os agentes terminam em momentos diferentes e esperam em silêncio por entrada, então "rodar os dois em paralelo" se degrada discretamente para "verificar cada um em sequência".
Escale isso além de dois. O próximo passo natural é um script wrapper que cria worktrees, lança a ferramenta certa em cada um e canaliza a saída para painéis nomeados do tmux. Ajuda para um punhado de execuções. Depois cresce: nomenclatura de branches, limpeza, uma forma de saber qual ferramenta está em qual tarefa, novas tentativas para a que travou. Em pouco tempo você mantém um framework de orquestração frágil preso com bash, onde metade do estado vive no histórico do shell e a outra metade na sua cabeça. Rodar muitos ao mesmo tempo tem a mesma barreira, seja quando os agentes são todos Claude Code, como em rodar múltiplos agentes do Claude Code, seja quando são uma mistura.
Onde dois terminais deixam de escalar
O teste honesto para saber se você superou a configuração caseira:
- Um colega de equipe consegue ver o que seus agentes estão fazendo agora, sem que você leia o terminal para ele?
- Quando o Codex termina às 14h e precisa de entrada, alguma coisa te avisa?
- Quando os dois agentes terminam juntos, existe uma fila para revisar o trabalho deles, ou apenas você e duas branches?
Se as respostas são não, a peça que falta não é outro script de shell. É uma camada que atribui trabalho a qualquer uma das ferramentas, mostra o status ao vivo e mantém toda mudança revisável antes do merge. É isso que um quadro de tarefas adiciona em relação a terminais puros.
Esta é a fronteira que vale declarar claramente. O Claude Code e o Codex executam. Uma camada de comando gerencia atribuição, Computers conectados, contexto de tarefa, progresso, bloqueios, resultados e revisão humana nos dois. No Sharkly, você atribui uma Task a um Runtime do Claude Code e outra a um Runtime do Codex; cada uma roda em seu próprio worktree isolado em um Computer conectado, e execução, bloqueios e resultados retornam à linha do tempo da Task em vez de desaparecerem em terminais privados.
A divisão de trabalho permanece limpa. Os agentes pesquisam, executam, testam e reportam. As pessoas definem a direção, concedem autoridade e aceitam o resultado. A automação para onde o seu julgamento é necessário, e devolve um diff com as evidências de verificação anexadas. Você mantém as ferramentas que já paga, o uso dos modelos continua passando pelas assinaturas e chaves de API configuradas em cada uma, e você tem um só lugar para ver quem está em qual tarefa.
Use a configuração manual quando estiver rodando um ou dois agentes por uma tarde e conseguir manter o estado na cabeça. Recorra a uma camada compartilhada quando uma segunda pessoa precisar de visibilidade, quando a contagem ultrapassar o que uma janela de terminal mostra, ou quando você estiver comparando ferramentas com frequência suficiente para que "qual execução produziu esta branch" deixe de ser óbvio.
Uma checklist que você pode seguir hoje
Siga isto de cima a baixo na próxima vez que colocar as duas ferramentas em um mesmo repositório:
- [ ] Crie um
git worktreepor tarefa, cada um em sua própria branch. Nunca aponte duas ferramentas para o mesmo diretório. - [ ] Faça commit tanto do
CLAUDE.mdquanto doAGENTS.md, cada um apontando para um único arquivo de convenções compartilhado no código versionado. - [ ] Confirme que cada ferramenta carrega sua configuração a partir da raiz do worktree antes de atribuir trabalho.
- [ ] Atribua uma Task bem delimitada por agente. Trabalho de contexto amplo para um, trabalho estreito orientado a testes para o outro.
- [ ] Decida seu portão de revisão desde o início: nenhuma branch faz merge até uma pessoa ler o diff e os resultados dos testes.
- [ ] Quando você passar de duas ou três execuções simultâneas, pare de escalar o bash e mova atribuição, status e revisão para uma única camada.
Se você quer continuar usando tanto o Claude Code quanto o Codex em vez de se comprometer com um único ecossistema, esse é o problema em torno do qual o Sharkly foi projetado. Baixe o Sharkly, conecte um Computer e atribua sua primeira Task ao agente que melhor se encaixa no trabalho.
Perguntas frequentes
O Claude Code e o Codex podem editar os mesmos arquivos com segurança? Não no mesmo diretório. Dê a cada um seu próprio git worktree para que trabalhem em branches separadas e depois faça o merge por meio de revisão. A concorrência no mesmo diretório é onde o trabalho não commitado se perde.
Preciso de duas assinaturas? Você precisa do que cada ferramenta exigir. O uso dos modelos continua pelas assinaturas ou chaves de API configuradas no Claude Code e no Codex; uma camada de coordenação não altera nem revende esse acesso.
Um quadro de tarefas é exagero para dois agentes? Para dois agentes que você controla em uma única sessão de trabalho, worktrees simples e dois terminais bastam. O quadro justifica seu lugar quando um colega de equipe precisa de visibilidade ou quando a contagem de execuções aumenta. Veja as melhores ferramentas para gerenciar agentes de programação com IA em paralelo.



