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 | Sí | 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.



