Codex · Git · Multiagente

Codex Worktrees: cómo ejecutar agentes en paralelo con Git

Aprende cómo funcionan los worktrees de Codex, cuándo utilizar Local o Worktree, qué significa detached HEAD, cómo transferir una tarea entre Worktree y Local, crear una rama, copiar archivos ignorados con .worktreeinclude, configurar setup scripts, administrar worktrees permanentes y ejecutar varios agentes sin mezclar sus cambios.

Git Detached HEAD Hand off Multiagente
Respuesta rápida

¿Qué son los worktrees de Codex?

Los worktrees de Codex son checkouts adicionales de un mismo repositorio Git que permiten que distintos agentes trabajen simultáneamente sin modificar el mismo directorio. Codex puede crear automáticamente un worktree para cada chat, trabajar inicialmente en detached HEAD y después permitirte crear una rama, abrir ese entorno en tu IDE o transferir el trabajo al checkout Local.

Ventajas

Por qué usar worktrees con agentes de programación

PAR

Paralelismo

Ejecuta varias tareas sobre el mismo repositorio.

ISO

Aislamiento

Cada tarea modifica su propio checkout.

GIT

Git real

Los worktrees utilizan la funcionalidad nativa de Git.

BG

Background

Deja un agente trabajando mientras tú continúas en Local.

REV

Revisión aislada

Revisa cada diff por separado.

PR

Branch y PR

Convierte el resultado en una rama y Pull Request.

Publicidad
Arquitectura

Un repositorio, varios checkouts independientes

LOCAL

Tu checkout

Donde normalmente desarrollas.

WORKTREE A

Feature

Agente trabajando en login.

WORKTREE B

Tests

Otro agente aumentando cobertura.

WORKTREE C

Refactor

Tercer agente trabajando independientemente.

Publicidad
Requisito

Los worktrees requieren un repositorio Git

Git obligatorio

Los worktrees solo funcionan cuando el proyecto pertenece a un repositorio Git. Codex utiliza Git worktree como base para crear los checkouts adicionales.

Comprueba:

git status

Y también:

git rev-parse --show-toplevel
Git

Qué es un Git worktree

Normalmente, un repositorio Git tiene un único directorio de trabajo. Los worktrees permiten crear checkouts adicionales vinculados al mismo repositorio.

Repositorio Git

├── Local
│   └── main
│
├── Worktree A
│   └── feature-login
│
├── Worktree B
│   └── tests
│
└── Worktree C
    └── refactor
Comparten el mismo historial Git.

Pero cada worktree mantiene sus propios archivos de trabajo, índice y estado de checkout.

Local vs Worktree

Dos formas de trabajar con Codex

Local

Foreground

Codex modifica el checkout donde tú también estás trabajando.

  • servidor ya configurado
  • IDE habitual
  • iteración inmediata
  • menos aislamiento
Worktree

Background

Codex trabaja en otro checkout sin modificar directamente tu entorno Local.

  • trabajo paralelo
  • aislamiento
  • varios agentes
  • diff independiente
Cuándo usarlo

Casos donde un worktree tiene sentido

01

Ejecutar una feature mientras tú continúas trabajando en otra.

02

Enviar varias tareas a distintos agentes.

03

Probar una refactorización sin ensuciar tu checkout.

04

Investigar una solución alternativa.

05

Mantener varias ramas abiertas simultáneamente.

06

Ejecutar agentes de revisión o testing en paralelo.

Crear

Cómo crear un worktree administrado por Codex

1

Abre un chat nuevo

Dentro de Codex en escritorio.

2

Selecciona Worktree

Cambia el entorno desde Local.

3

Elige rama base

main, master, feature o tu rama actual.

4

Envía el prompt

Codex crea el checkout automáticamente.

También puedes elegir un entorno local.

Así Codex puede ejecutar automáticamente el setup necesario para preparar el nuevo worktree.

Rama inicial

Puedes comenzar desde distintas ramas

MAIN

Feature nueva desde el estado estable.

FEAT

Continuar trabajo de una feature.

FIX

Investigar un bug en una rama.

LOCAL

Partir desde cambios locales existentes.

Los cambios locales también pueden formar parte del punto de partida.

Si seleccionas una rama que contiene cambios locales sin commit, Codex puede aplicar esos cambios al worktree creado para el chat.

Git interno

Por qué Codex comienza en detached HEAD

detached HEAD

De forma predeterminada, un worktree administrado por Codex no comienza conectado a una rama nueva. Utiliza el commit HEAD de la rama seleccionada como punto de partida y trabaja inicialmente en estado detached HEAD.

git status

# Ejemplo conceptual:

HEAD detached at 8f39a1c
¿Por qué es útil?

Codex puede crear muchos worktrees temporales sin llenar tu repositorio de ramas que quizá nunca necesites.

Ubicación

Dónde guarda Codex los worktrees administrados

$CODEX_HOME/worktrees

Si utilizas la configuración predeterminada de Codex, CODEX_HOME suele corresponder al directorio de configuración de Codex.

La ubicación se puede cambiar.

Desde Settings → Worktrees puedes configurar otra raíz para los worktrees administrados.

Publicidad
Opción 1

Continuar trabajando directamente en el Worktree

Cuando Codex termina una primera implementación, puedes continuar trabajando dentro del mismo worktree.

IDE

Abrir el worktree en tu editor.

TERM

Usar terminal integrada.

TEST

Ejecutar tests y build.

GIT

Crear una rama si quieres conservarlo.

Crear rama aquí

Convierte un worktree temporal en trabajo versionado

Create branch here

Si decides conservar el trabajo directamente en ese worktree, puedes utilizar Crear rama aquí para conectar el checkout con una rama Git.

1

Agente termina

Revisa el resultado.

2

Ejecuta tests

Comprueba que funciona.

3

Crear rama aquí

Asigna un nombre.

4

Commit y push

Guarda el resultado.

5

Pull Request

Envía para integración.

Opción 2

Transferir el chat de Worktree a Local

Hand off

Si prefieres continuar el trabajo dentro de tu checkout habitual, usa Transferir / Hand off. Codex gestiona las operaciones Git necesarias para mover el trabajo de forma segura.

Worktree
    │
    │ Hand off
    ▼
Local
    │
    │ Hand off
    ▼
Worktree
Funciona en ambas direcciones.

También puedes empezar una tarea en Local y transferirla posteriormente a un worktree para que Codex siga trabajando en segundo plano.

Persistencia

Cada chat mantiene asociado su mismo worktree

Si transfieres una conversación desde Worktree hacia Local y después la devuelves, Codex puede regresar al mismo worktree asociado originalmente.

El entorno acompaña al chat.

Esto permite pasar un trabajo entre foreground y background sin crear necesariamente un nuevo entorno cada vez.

Limitación Git

La misma rama no puede estar activa en dos worktrees

Git evita que una misma rama esté checkout simultáneamente en dos árboles de trabajo.

fatal: 'feature/a' is already used by worktree at '<WORKTREE_PATH>'
No fuerces la rama en ambos lugares.

Si quieres probar esa rama dentro de tu checkout Local, lo más simple suele ser utilizar Hand off.

¿Por qué?

Git protege cada referencia de rama

Una rama Git es una referencia mutable. Operaciones como:

COM

commit

RES

reset

REB

rebase

MER

merge

pueden mover esa referencia. Permitir dos checkouts modificando simultáneamente la misma rama podría generar ambigüedad y condiciones de carrera.

Archivos ignorados

.worktreeinclude: copiar configuración local al nuevo worktree

.worktreeinclude

Los worktrees comienzan desde un checkout Git. Por tanto, los archivos ignorados mediante .gitignore no aparecen automáticamente.

Puedes crear:

# .worktreeinclude

.env.local
config/local.json
Solo se copian archivos ignorados que coincidan con las reglas.

Codex no copia automáticamente todos los archivos no rastreados del checkout Local.

Comportamiento

Reglas importantes de .worktreeinclude

01

Se coloca en la raíz del repositorio.

02

Acepta rutas y patrones similares a .gitignore.

03

Está pensado para archivos ignorados, no para archivos trackeados.

04

No sobrescribe archivos que ya existen en el checkout.

05

Codex omite symlinks de origen.

06

Se aplica a worktrees locales administrados por la app.

AGENTS.md

AGENTS.override.md ignorado por Git tiene tratamiento especial

No necesitas añadirlo manualmente a .worktreeinclude.

Codex puede copiar automáticamente un AGENTS.override.md ignorado hacia sus worktrees locales administrados.

Seguridad

Ten cuidado al copiar .env y otros secretos

No copies más secretos de los necesarios.

Aunque un archivo local sea necesario para ejecutar el proyecto, cada worktree crea otra copia física de ese archivo.

DEV

Prefiere credenciales de desarrollo.

MIN

Usa el mínimo conjunto necesario.

PROD

Evita credenciales de producción.

GIT

Mantén secretos fuera del repositorio.

Publicidad
Setup automático

Prepara cada worktree con Local Environments

Setup scripts

Un worktree nuevo puede contener el código, pero no necesariamente todas las dependencias o artefactos necesarios para ejecutar el proyecto.

Para un proyecto Node.js, por ejemplo:

npm install
npm run build
Los setup scripts se ejecutan al crear un worktree nuevo.

Puedes definir además scripts específicos para macOS, Windows o Linux.

Configuración compartida

El entorno local se almacena dentro de .codex

mi-proyecto/
├── .codex/
├── AGENTS.md
├── package.json
├── src/
└── tests/

Esta configuración puede versionarse en Git para compartir el mismo setup con otros desarrolladores.

Actions

Añade acciones rápidas para probar cada worktree

Los Local Environments también permiten definir acciones habituales.

Desarrollo

Run

npm start
Tests

Test

npm test
Build

Build

npm run build
Permanentes

Codex también admite worktrees de larga duración

Administrado

Un chat

Ligero, temporal y asociado normalmente a una tarea.

Permanente

Entorno persistente

Se convierte en un proyecto independiente donde puedes iniciar varios chats.

Los worktrees permanentes no se eliminan automáticamente.

Son adecuados para entornos de desarrollo que quieres conservar durante varias sesiones.

Uso permanente

Cuándo crear un worktree permanente

REL

Rama release mantenida varios días.

FEAT

Feature grande con múltiples chats.

VER

Mantenimiento de otra versión.

EXP

Experimento de larga duración.

Limpieza

Codex administra automáticamente los worktrees temporales

15 worktrees

De forma predeterminada, Codex mantiene los 15 worktrees administrados más recientes.

El límite puede modificarse o puede desactivarse la eliminación automática desde Configuración.

El límite existe porque cada worktree puede ocupar bastante espacio.

No solo contiene archivos del repositorio: también puede contener node_modules, dependencias, cachés, builds y otros artefactos.

Protección

Cuándo Codex evita eliminar un worktree

PIN

Chat asociado fijado.

RUN

Chat todavía en curso.

PERM

Worktree permanente.

Eliminación

Cuándo puede eliminarse automáticamente

ARCH

Archivas el chat asociado.

LIMIT

Codex necesita liberar worktrees antiguos para respetar el límite.

Codex guarda una instantánea antes de eliminar un worktree administrado.

Si posteriormente reabres el chat, puede ofrecerte restaurar el trabajo asociado.

Git manual

Comandos útiles para entender los worktrees

No son necesarios para usar los worktrees administrados de Codex.

Pero ayudan a comprender qué está haciendo Git por debajo.

Listar worktrees

git worktree list

Crear manualmente

git worktree add ../mi-feature feature/mi-feature

Eliminar

git worktree remove ../mi-feature

Limpiar referencias

git worktree prune
.worktreeinclude es específico de los worktrees locales administrados por Codex.

No debes asumir que Git copiará esos archivos cuando crees un worktree manualmente desde terminal.

Publicidad
Multiagente

Ejemplo con cuatro agentes en paralelo

LOCAL

Tú:
desarrollando dashboard


WORKTREE A

Codex:
corregir autenticación


WORKTREE B

Codex:
crear tests de integración


WORKTREE C

Codex:
auditar seguridad


WORKTREE D

Codex:
actualizar documentación
No todo debería ejecutarse sobre los mismos archivos.

La separación funciona mejor cuando las tareas tienen límites razonablemente independientes.

Prompts

Ejemplo de tareas para distintos worktrees

Worktree A · Bug

Investiga por qué
los usuarios pierden
la sesión después
de actualizar el perfil.

Reproduce el bug,
encuentra la causa raíz,
crea un test de regresión
e implementa
la corrección mínima.

Worktree B · Tests

Analiza el módulo
de autenticación.

No cambies comportamiento.

Añade tests
para los flujos
críticos que actualmente
no tengan cobertura.

Worktree C · Seguridad

Audita autenticación
y autorización.

Busca únicamente:

- bypass de permisos
- escalada de privilegios
- exposición de sesiones
- CSRF
- validación insuficiente
- filtración de credenciales

No hagas refactors
de estilo.
WordPress

Workflow multiagente para un plugin WordPress

PLUGIN WORDPRESS


LOCAL

Desarrollo principal


WORKTREE A

Corregir AJAX


WORKTREE B

Auditar:

- nonces
- capabilities
- sanitización
- escaping
- SQL


WORKTREE C

Añadir tests PHPUnit


WORKTREE D

Revisar compatibilidad:

- PHP 8.2+
- WordPress
- WooCommerce
No combines automáticamente los cuatro resultados.

Revisa cada diff, ejecuta las pruebas y decide qué cambios integrar.

Conflictos

Los worktrees aíslan archivos, pero no eliminan conflictos Git

Importante

Dos agentes pueden modificar independientemente la misma función en worktrees distintos. No interferirán mientras trabajan, pero sus ramas podrían entrar en conflicto al integrarse.

GOOD

Login vs documentación.

GOOD

API vs frontend aislado.

RISK

Dos refactors sobre la misma clase.

RISK

Dos migraciones sobre la misma tabla.

Regla práctica

Paraleliza por resultados, no por archivos arbitrarios

Una tarea debería producir un resultado revisable.

Por ejemplo:

Corregir login.

Añadir tests del checkout.

Auditar seguridad del REST API.

Migrar módulo de emails.

Revisión

Qué revisar antes de integrar un worktree

1

Objetivo

¿Cumplió exactamente la tarea?

2

Diff

¿Hay cambios no relacionados?

3

Tests

¿Pasaron las verificaciones?

4

Seguridad

¿Introdujo nuevos riesgos?

5

Compatibilidad

¿Mantiene contratos existentes?

6

Integración

Branch, commit y PR.

Prompt final

Haz que cada agente deje su worktree listo para revisión

Antes de terminar:

1. ejecuta los tests relevantes
2. ejecuta lint/typecheck/build si existen
3. revisa todo el diff
4. elimina debugging temporal
5. comprueba cambios accidentales
6. confirma que no modificaste archivos fuera del alcance

Después entrégame:

- resumen
- archivos modificados
- tests ejecutados
- resultados
- riesgos pendientes
- recomendaciones para integrar este worktree.
Publicidad
Errores frecuentes

Problemas habituales con Codex Worktrees

Problema Qué revisar
Proyecto sin Git Inicializa o abre el repositorio correcto
Falta .env .worktreeinclude
Faltan dependencias Setup script del entorno local
Rama ya utilizada Otro worktree tiene esa rama checkout
El servidor no inicia Puerto o configuración compartida
Mucho uso de disco Worktrees, dependencias y cachés antiguos
Conflictos al integrar Tareas paralelas tocaron el mismo código
Chat archivado y worktree desaparecido Restaurar snapshot si está disponible
Buenas prácticas

Cómo trabajar mejor con varios worktrees

01

Un objetivo independiente por chat.

02

Empieza desde una rama conocida.

03

Automatiza instalación y build.

04

Añade solo archivos ignorados necesarios.

05

Evita credenciales de producción.

06

Revisa el diff antes de crear la rama.

07

No paralelices tareas altamente dependientes.

08

Limpia entornos que ya no necesitas.

Decisión

Local, Worktree o Cloud: cuál elegir

Cambio pequeño Quiero probarlo inmediatamente
Local
Tarea paralela No quiero tocar mi checkout
Worktree
Varios agentes Trabajos independientes
Worktrees
Tarea larga Quiero delegarla remotamente
Cloud
Feature de varios días Necesito un entorno estable
Permanente
Workflow recomendado

Cómo usar Codex Worktrees de principio a fin

1

Define la tarea

Un resultado concreto.

2

Selecciona Worktree

Aísla el trabajo.

3

Elige rama base

Parte de un estado conocido.

4

Ejecuta setup

Dependencias y build.

5

Codex implementa

Trabajo aislado.

6

Verifica

Tests, lint y build.

7

Revisa diff

Comprueba alcance y calidad.

8

Decide destino

Branch o Hand off a Local.

9

Integra

Commit, push y PR.

Fuentes

Documentación oficial recomendada

OpenAI

Git Worktrees

Creación, detached HEAD, Hand off, worktrees permanentes, .worktreeinclude y limpieza.

OpenAI

Local Environments

Setup scripts, Actions y configuración compartida en .codex.

OpenAI

Codex Desktop

Proyectos, repositorios, terminales y herramientas de desarrollo.

Publicidad
Publicidad
Preguntas frecuentes

FAQ sobre Codex Worktrees

Es un checkout adicional de un repositorio Git que Codex puede utilizar para trabajar en una tarea sin modificar directamente tu checkout Local.

Sí. Los worktrees utilizan Git worktree internamente, por lo que el proyecto debe pertenecer a un repositorio Git.

Un worktree administrado comienza normalmente en el commit HEAD de la rama seleccionada, pero sin crear automáticamente una rama nueva. Esto permite mantener worktrees temporales sin llenar el repositorio de ramas innecesarias.

Los worktrees administrados se crean por defecto bajo $CODEX_HOME/worktrees. Puedes cambiar la ubicación desde Settings → Worktrees.

Sí. La función Hand off permite mover un chat entre Worktree y Local. Codex gestiona las operaciones Git necesarias para mover el trabajo entre ambos checkouts.

Sí. Hand off funciona en ambas direcciones. Puedes mover un chat desde Local hacia un worktree para que Codex continúe trabajando en segundo plano.

Es un archivo situado en la raíz del repositorio que indica qué archivos ignorados por Git debe copiar Codex a los nuevos worktrees locales administrados.

No necesariamente. Los archivos ignorados por Git deben coincidir con las reglas de .worktreeinclude para que Codex los copie a un worktree local administrado.

Sí. Puedes utilizar Crear rama aquí para convertir el trabajo en una rama, hacer commit, push y crear posteriormente un Pull Request.

No. Git impide que una misma rama esté checkout simultáneamente en más de un worktree. Para mover el trabajo a Local, utiliza Hand off.

Por defecto, Codex conserva los 15 worktrees administrados más recientes. Puedes cambiar ese límite o desactivar la eliminación automática desde Configuración.

Antes de eliminar un worktree administrado, Codex guarda una instantánea del trabajo. Si vuelves a abrir el chat asociado, puede ofrecerte restaurar el worktree.

Los worktrees administrados están pensados principalmente para una tarea o chat y pueden limpiarse automáticamente. Un worktree permanente se conserva como proyecto de larga duración y puede albergar varios chats.

Publicidad
Siguiente guía

Codex Skills: crea workflows reutilizables para tus agentes

Ya sabes cómo ejecutar varias tareas en entornos aislados. Ahora veremos cómo crear Skills reutilizables para que Codex conozca procedimientos, checklists, scripts y recursos especializados sin repetir las mismas instrucciones en cada prompt.

Aprender Codex Skills →
Carrito de compra
Scroll al inicio