Codex CLI no tiene worktrees (y así te los montas tú)

| Última modificación: 4 de mayo de 2026 | Tiempo de Lectura: 5 minutos
Premios Blog KeepCoding 2025

Co-Fundador de KeepCoding

Si has leído mi post sobre worktrees en Claude Code, sabes que la gracia del asunto es un flag: --worktree. Lo ejecutas y tienes un agente trabajando en su propia copia aislada del repo. Lanzas tres y tienes tres agentes en paralelo sin que se pisen. Magia.

Ahora abres Codex CLI, buscas el flag equivalente, y… no existe.

No hay --worktree. No hay --tmux. No hay isolation: worktree para agentes custom. La issue #12862 lleva abierta en GitHub pidiendo exactamente esto, con gente que ya tiene implementaciones en forks, pero sin mergear. El paralelismo nativo de Codex CLI, a día de hoy, no existe.

¿Significa eso que no puedes trabajar en paralelo con Codex? No. Significa que te lo tienes que montar tú. Y con «montar» me refiero a tres comandos de git y un par de precauciones para no pegártela.

El plan: worktrees manuales + un Codex por directorio

La idea es la misma que con Claude Code, pero sin la automatización. Tú creas los worktrees, tú lanzas los agentes, tú limpias después. Artesanal, pero funciona.

# Desde tu repo principal
cd ~/code/mi-proyecto

# Crear un worktree por tarea
git worktree add ../mi-proyecto-feat-auth -b feature/auth
git worktree add ../mi-proyecto-fix-tests -b fix/tests-rotos
git worktree add ../mi-proyecto-refactor -b chore/refactor-db

Ahora tienes cuatro directorios: el principal y tres worktrees. Cada uno con su rama, su staging area, y su HEAD independiente. Comparten la base de datos de git (el .git/), pero por lo demás son copias aisladas.

El siguiente paso es lanzar un Codex en cada uno:

# Terminal 1
cd ../mi-proyecto-feat-auth
codex --approval-mode never --sandbox workspace-write \
  "Implement JWT authentication middleware. Write tests."

# Terminal 2
cd ../mi-proyecto-fix-tests
codex --approval-mode never --sandbox workspace-write \
  "Run the test suite, fix all failing tests, repeat until green."

# Terminal 3
cd ../mi-proyecto-refactor
codex --approval-mode never --sandbox workspace-write \
  "Refactor the database module to use connection pooling."

Tres agentes, tres tareas, cero interferencia entre ellos. Cada Codex ve solo su worktree y trabaja en su propia rama.

El bug que te va a morder: sesiones compartidas

Aquí viene la parte que no está en ningún tutorial oficial. Hay un bug conocido (#11435) en Codex CLI: todas las instancias comparten el directorio de sesión ~/.codex/. Si lanzas tres Codex en paralelo, pueden cargar el contexto de otra instancia, corrompiendo la ejecución.

Dicho en cristiano: el agente que está arreglando tests de repente cree que está implementando autenticación, porque ha leído la sesión del otro.

La solución es forzar un directorio de sesión diferente para cada instancia:

# Terminal 1
CODEX_HOME=~/.codex-session-1 codex --approval-mode never --sandbox workspace-write "..."

# Terminal 2
CODEX_HOME=~/.codex-session-2 codex --approval-mode never --sandbox workspace-write "..."

# Terminal 3
CODEX_HOME=~/.codex-session-3 codex --approval-mode never --sandbox workspace-write "..."

Si CODEX_HOME no funciona en tu versión (la variable ha cambiado de nombre entre releases), la alternativa nuclear es crear un config.toml separado en cada worktree:

# En cada worktree
mkdir .codex
cp ~/.codex/config.toml .codex/config.toml

No es elegante. Es una ñapa. Pero funciona, y es lo que hay hasta que mergeen la issue #12862.

Automatizándolo un poco: un script wrapper

Si vas a hacer esto a menudo, un script ahorra errores:

#!/usr/bin/env bash
# codex-worktree.sh — Lanza Codex en un worktree aislado
set -euo pipefail

BRANCH="$1"
PROMPT="$2"
REPO_NAME=$(basename "$(pwd)")
WORKTREE_DIR="../${REPO_NAME}-${BRANCH//\//-}"
SESSION_DIR="$HOME/.codex-session-$$"

# Crear worktree
git worktree add "$WORKTREE_DIR" -b "$BRANCH" 2>/dev/null || \
  git worktree add "$WORKTREE_DIR" "$BRANCH"

echo "→ Worktree: $WORKTREE_DIR"
echo "→ Session:  $SESSION_DIR"
echo "→ Branch:   $BRANCH"

# Lanzar Codex con sesión aislada
cd "$WORKTREE_DIR"
CODEX_HOME="$SESSION_DIR" codex \
  --approval-mode never \
  --sandbox workspace-write \
  "$PROMPT"

# Limpieza de sesión (el worktree lo dejas para revisar)
rm -rf "$SESSION_DIR"
echo "✓ Sesión limpiada. Worktree en $WORKTREE_DIR listo para review."

Uso:

./codex-worktree.sh feature/auth "Implement JWT auth middleware with tests"
./codex-worktree.sh fix/tests "Fix all failing tests"

Cada invocación crea su worktree, su sesión aislada, lanza Codex, y limpia la sesión al terminar. El worktree queda vivo para que revises el resultado antes de mergear.

Con tmux: el paralelismo visual

Si quieres ver los tres agentes trabajando a la vez, tmux es tu amigo:

# Crear sesión tmux con tres paneles
tmux new-session -d -s codex-parallel

# Panel 1: auth
tmux send-keys -t codex-parallel \
  "cd ../mi-proyecto-feat-auth && codex --approval-mode never --sandbox workspace-write 'Implement auth'" Enter

# Panel 2: tests
tmux split-window -h -t codex-parallel
tmux send-keys -t codex-parallel \
  "cd ../mi-proyecto-fix-tests && codex --approval-mode never --sandbox workspace-write 'Fix tests'" Enter

# Panel 3: refactor
tmux split-window -v -t codex-parallel
tmux send-keys -t codex-parallel \
  "cd ../mi-proyecto-refactor && codex --approval-mode never --sandbox workspace-write 'Refactor DB'" Enter

# Conectar
tmux attach -t codex-parallel

Tres paneles, tres agentes, un vistazo. No es claude --worktree --tmux, pero el resultado visual es el mismo.

Herramientas de terceros que ya lo resuelven

Si montar todo esto a mano te parece tela marinera, hay gente que ha automatizado el proceso:

parallel-code: ejecuta Claude Code, Codex y Gemini CLI en worktrees separados automáticamente. Le das una tarea y un agente, y se encarga de crear el worktree, lanzar el proceso, y gestionar la sesión.

ccmanager: gestor de sesiones para múltiples agentes con aislamiento por worktree. Más completo, soporta varios CLIs de agentes.

Ambas son soluciones de la comunidad, no oficiales. Pero cubren el hueco que OpenAI no ha llenado todavía.

Lo que Codex App sí tiene (y el CLI no)

Para que quede claro: la Codex App de escritorio (la que se lanzó en marzo 2026) sí tiene worktrees nativos. Cuando creas un thread puedes elegir modo «Worktree», y las automations corren en worktrees dedicados en background.

Pero la App requiere tener la aplicación de escritorio corriendo. Si trabajas en un servidor, en un contenedor de CI, o simplemente prefieres el terminal, la App no te sirve. Y el CLI, que es lo que usas en esos contextos, no tiene la feature.

Es como si Git tuviera worktrees en la GUI pero no en la línea de comandos. Absurdo, pero así estamos.

La comparativa honesta

Capacidad Claude Code Codex CLI Codex CLI + worktrees manuales
Crear worktree --worktree (1 flag) No existe git worktree add (manual)
Sesiones paralelas --tmux (1 flag) Bug #11435 tmux manual + sesiones separadas
Agentes aislados isolation: worktree No existe Script wrapper
Limpieza automática N/A Manual (git worktree remove)
Merge de vuelta Automático N/A git merge estándar

Claude Code ha convertido los worktrees en algo invisible — un detalle de implementación que ni piensas. Con Codex CLI, los worktrees son fontanería que tú tienes que instalar.

¿Funciona? Sí. ¿Es lo mismo? No. La diferencia entre automatización nativa y montártelo a mano es la diferencia entre un coche con cambio automático y uno de manivela. Ambos te llevan al destino, pero en uno disfrutas del viaje y en el otro te sale callo en la mano.

Mientras esperamos la issue #12862

La buena noticia es que hay gente trabajando en esto. La issue tiene implementaciones en forks, tiene votos, tiene tracción. Es cuestión de tiempo.

Mientras tanto, los worktrees manuales funcionan. No son bonitos, no son automáticos, pero te dan paralelismo real con Codex CLI hoy. Tres comandos de git, un poco de tmux, y cuidado con el bug de sesiones compartidas. Eso es todo lo que necesitas.

Y si te preguntas por qué Claude Code tiene esto resuelto desde hace meses y Codex todavía no — bueno, a veces la ventaja de ser segundo es que puedes copiar lo que funciona. Pero hay que copiarlo, y de momento no lo han hecho.


TL;DR: Codex CLI no tiene --worktree ni --tmux. Para trabajar en paralelo, crea worktrees con git worktree add, lanza un Codex en cada uno con sesiones separadas (cuidado con el bug #11435 de sesiones compartidas), y usa tmux para ver todo a la vez. O instala parallel-code / ccmanager que lo automatizan. La Codex App de escritorio sí tiene worktrees nativos, pero el CLI todavía no.


Read this article in English.

Noticias recientes del mundo tech


¡CONVOCATORIA ABIERTA!

Desarrollo de apps móviles ios & Android

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado

Descárgate también el informe de tendencias en el mercado laboral 2026.

Fórmate con planes adaptados a tus objetivos y logra resultados en tiempo récord.
KeepCoding Bootcamps
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.