← Todos los artículos

Instalar y actualizar Codex CLI: Mac, Linux, Windows

De la guía: Codex CLI Comprehensive Guide

Instalar la CLI de OpenAI Codex es un comando por plataforma – curl -fsSL https://chatgpt.com/codex/install.sh | sh en macOS y Linux, powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex" en Windows – con npm y Homebrew como alternativas compatibles, y actualizar es codex update, que reconoce las instalaciones por script, npm y Homebrew y ejecuta la actualización de ese canal.1411 La parte que la mayoría de las páginas omite viene después del primer comando: cuál de las cinco rutas de instalación elegir, cómo fijar una versión cuando una publicación rompe algo, por qué el paquete de winget va de días a semanas por detrás de npm y qué deja una desinstalación en ~/.codex. Esta página es esa referencia, una tabla por tarea, actualizada a la v0.163.0 (15 de octubre de 2026).9

Actualizado el 15 de octubre de 2026 para la v0.163.0. Cuatro cosas han cambiado desde la versión de septiembre de esta página. El índice de winget se movió: tras un verano en el que sus solicitudes de manifiesto pasaron semanas en espera, las doce de la 0.156.0 a la 0.161.0 se fusionaron en menos de un día desde su apertura, pero las solicitudes de la 0.162.0 y la 0.162.1 esperan desde el 8 y el 9 de octubre, así que el 15 de octubre winget iba tres publicaciones por detrás de npm, frente a las catorce (de la 0.147.0 a la 0.153.4) del 6 de septiembre.310 Las publicaciones para Windows incluyen un install.ps1 firmado (su comprobación SHA-256 es anterior; la v0.162.0 la corrigió en Windows PowerShell).18 Windows también ganó una tercera implementación de sandbox, Microsoft Execution Containers, con los dos modos de septiembre como respaldo.8 Y el servidor en segundo plano que Codex inicia ahora por defecto en las sesiones interactivas que cumplen los requisitos ejecuta su propio actualizador, que en instalaciones por script más antiguas puede mover el propio paquete de la CLI.20 Cada referencia de instalación, actualización y fijación de versión de abajo se volvió a leer el 15 de octubre; la lectura de codex doctor es de la 0.153.4.910

TL;DR

  • El instalador independiente es la ruta que OpenAI pone en primer lugar, tanto en el README como en la documentación de la CLI, con npm y Homebrew presentados como alternativas («you can also install» en la documentación de la CLI, «can also be installed via» en el README): el script install.sh en macOS y Linux, el script install.ps1 en Windows. Descarga el binario compilado, así que no necesita Node.111
  • npm y Homebrew son alternativas compatibles. npm install -g @openai/codex fija versión con una especificación de paquete normal (@<version>); brew install --cask codex estaba, al escribir esto, en la misma 0.163.0 que npm; el cask se actualizó trece minutos después de la publicación.1210
  • winget funciona, con días o semanas de retraso. OpenAI publica el paquete OpenAI.Codex. Tras un verano en el que sus pull requests de manifiesto pasaron semanas sin fusionar, los doce de la 0.156.0 (22 de septiembre de 2026) a la 0.161.0 (7 de octubre) se fusionaron cada uno en menos de un día desde su apertura; después, las solicitudes de la 0.162.0 y la 0.162.1 se estancaron, abiertas desde el 8 y el 9 de octubre. El 15 de octubre, la versión instalable más reciente era la 0.161.0, frente a la 0.163.0 en npm, tres publicaciones estables por detrás, y la solicitud de la 0.163.0 también estaba abierta.310
  • codex update cubre las instalaciones por script, npm y Homebrew (desde la v0.128.0): reutiliza la detección del canal de instalación que la TUI ya tiene y ejecuta la actualización correspondiente. Una instalación por winget no es un canal que reconozca; esa se actualiza con winget upgrade OpenAI.Codex. Los equivalentes manuales para el resto son volver a ejecutar el instalador, npm install -g @openai/codex@latest o brew upgrade --cask codex.411
  • El servidor en segundo plano ejecuta un actualizador, y en instalaciones por script más antiguas puede mover tu CLI. Desde la v0.157.0 (25 de septiembre de 2026, UTC), Codex inicia por defecto un servidor en segundo plano gestionado en las sesiones interactivas que cumplen los requisitos. Cuando el instalador seleccionó el canal latest, ese servidor busca actualizaciones cinco minutos después de arrancar y luego cada hora, ejecutando el instalador; un daemon nuevo vive bajo ~/.codex/packages/app-server-daemon, pero un daemon iniciado por primera vez desde una instalación por script más antigua sigue usando ~/.codex/packages/standalone/current, el propio paquete de la CLI. El interruptor es "updater": { "autoUpdateEnabled": false } en ~/.codex/app-server-daemon/settings.json, aplicado con codex app-server daemon restart.2012
  • Fija versión con --release <version> en install.sh, $env:CODEX_RELEASE antes de la línea de install.ps1, o @<version> en npm. El cask de Homebrew sigue una única versión actual y no puede fijar.212
  • Desinstalar el paquete no elimina tu estado, pero en una instalación por script, rm -rf ~/.codex también elimina la propia CLI, porque el instalador guarda sus versiones bajo ~/.codex/packages/standalone.12

¿Cómo instalo Codex CLI?

Cuatro rutas, en el orden en que las presenta la propia documentación de OpenAI,111 más winget en Windows, que OpenAI no documenta:3

# Standalone installer, no Node required (macOS, Linux, WSL) -- the route OpenAI lists first
curl -fsSL https://chatgpt.com/codex/install.sh | sh

# Windows PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"

# npm (needs Node.js 16+; pins with a plain @version spec)
npm install -g @openai/codex

# Homebrew (macOS, Linux)
brew install --cask codex

# winget (Windows; lags npm, see the platform section)
winget install OpenAI.Codex

Después confirma que llegó e inicia sesión:

codex --version      # codex-cli 0.163.0
codex login          # ChatGPT account (recommended) or an API key

En una primera instalación por script, el bloque del perfil solo surte efecto en shells nuevas. Si codex no se encuentra en la terminal desde la que instalaste, ejecuta ahí export PATH="$HOME/.local/bin:$PATH" o abre una nueva; el instalador imprime esas mismas dos líneas al terminar («Current terminal» y «Future terminals»).12

¿Prefieres un binario sin más? Cada publicación en GitHub incluye tarballs por plataforma (codex-aarch64-apple-darwin.tar.gz, codex-x86_64-apple-darwin.tar.gz, codex-x86_64-unknown-linux-musl.tar.gz, codex-aarch64-unknown-linux-musl.tar.gz), y desde la v0.106.0 el mismo install.sh se adjunta a cada publicación como recurso. Cada archivo contiene una sola entrada con la plataforma en el nombre; renómbrala a codex tras extraerla.15 La página de publicaciones ha crecido alrededor de esos tarballs: hermanos .zst y .dmg de macOS de cada binario; paquetes codex-package-<target>.tar.gz con el binario, el auxiliar codex-code-mode-host y ripgrep, que son lo que descargan el instalador y el cask de Homebrew; los binarios codex-app-server y codex-responses-api-proxy; y wheels de Python openai_codex_cli_bin, que son el runtime fijado del SDK de Python de OpenAI y no una vía pip hacia la CLI.512

El instalador descarga desde la infraestructura de publicación alojada por OpenAI: chatgpt.com/codex/install.sh redirige a releases.openai.com, un cambio que llegó en la v0.146.0, con GitHub Releases como host de respaldo.6 En una red que bloquea o limita el host de artefactos de OpenAI pero permite GitHub, obtén el script desde el recurso de la publicación y dile que descargue también el binario desde GitHub:112

curl -fsSL https://github.com/openai/codex/releases/latest/download/install.sh | CODEX_INSTALLER_USE_RELEASES_OPENAI_COM=false sh

La variable va en el lado de sh de la tubería. La forma VAR=value curl ... | sh aplica la variable solo a curl, así que el script nunca la ve y se queda en silencio con el valor por defecto. En PowerShell, define $env:CODEX_INSTALLER_USE_RELEASES_OPENAI_COM = 'false' antes de ejecutar la línea de instalación.

¿Qué ruta deberías elegir?

Estás en Usa Por qué
macOS o Linux el script de instalación La ruta que la documentación de OpenAI menciona primero; descarga el binario, sin Node en la máquina11
Windows el script de PowerShell PowerShell nativo con el sandbox de Windows; WSL es opcional811
Cualquier máquina donde fijes versiones en scripts npm install -g @openai/codex@<version> Fija como especificación de paquete, así que la versión vive en tu Dockerfile o script de aprovisionamiento en lugar de en un flag10
macOS o Linux donde Homebrew ya gestiona todo lo demás brew install --cask codex La misma versión que npm el 15 de octubre (el cask se actualizó trece minutos después de la publicación), sin dependencia de Node, brew upgrade la mantiene al día2
Windows, gestionado por paquetes winget install OpenAI.Codex Si aceptas ir por detrás de npm: tres publicaciones el 15 de octubre3

¿Qué plataformas admite Codex?

Plataforma Estado
macOS, Apple silicon e Intel Compatible; binarios para ambos1
Linux, x86_64 y arm64 Compatible; binarios para ambos1
Windows 11 Base recomendada; MXC llegó con 24H2 (build 26100.9278) y 25H2 (build 26200.9278) y se está desplegando de forma gradual, así que pruébalo con la comprobación de un solo comando8
Windows 10, versión 1809 o posterior Mejor esfuerzo (requiere compatibilidad de consola ConPTY)8
Windows 10 más antiguo No recomendado: faltan componentes de consola8
WSL2 Opcional; la página de WSL de OpenAI ejecuta el mismo script de instalación desde la shell de WSL14

En Windows, Codex se ejecuta de forma nativa en PowerShell con un sandbox de Windows, y desde octubre de 2026 hay tres implementaciones. La más reciente es Microsoft Execution Containers (MXC), el aislamiento de procesos que Microsoft introdujo en Windows 11 24H2 y 25H2: la app de escritorio lo prefiere para las cuentas de consumidor cuando el dispositivo lo admite, y la CLI lo usa cuando se define prefer_mxc = true bajo [features], con los modos heredados como respaldo, o cuando [windows] sandbox = "mxc" lo selecciona de forma explícita, en cuyo caso falla en lugar de recurrir al respaldo si falta la capacidad o una directiva lo bloquea; desde la v0.162.0, una prueba de un solo comando (codex -c windows.sandbox=mxc sandbox ..., salida esperada MXC_OK) lo prueba sin cambiar la selección guardada. Los dos modos anteriores son ahora los respaldos heredados. elevated es el preferido: usa usuarios de sandbox dedicados con privilegios reducidos, límites de permisos en el sistema de archivos, reglas de firewall y cambios de directiva local, y requiere una configuración aprobada por un administrador. unelevated ejecuta los comandos con un token de Windows restringido derivado de tu usuario y límites del sistema de archivos basados en ACL, con un aislamiento de red más débil.8 El respaldo se elige en config.toml:

[windows]
sandbox = "elevated"   # or "unelevated"; "mxc" selects the containers explicitly

La recomendación de OpenAI es usar el sandbox nativo por defecto y elegir WSL cuando necesites herramientas nativas de Linux, cuando tu flujo de trabajo ya viva en WSL2, o cuando ninguna de las implementaciones de sandbox nativas de Windows cumpla tus requisitos.8 Una distinción que conviene tener presente: la configuración de Windows da por hecho que winget está en la máquina para sus propios pasos de configuración; eso es distinto de instalar Codex a través de winget. OpenAI sí publica ese paquete, el flujo de publicación tiene un job winget que abre un pull request de manifiesto en microsoft/winget-pkgs para las publicaciones estables, y el estancamiento veraniego del índice terminó, aunque no para siempre. Las fechas aquí están en UTC. Las solicitudes de la 0.148.0 a la 0.152.0, abiertas entre el 18 de agosto y el 1 de septiembre, se fusionaron el 11 de septiembre (la 0.151.0 el 30 de septiembre y la 0.149.1 el 1 de octubre); la solicitud de la 0.147.0 se cerró sin fusionar, igual que el envío de la 0.154.0 hecho por un miembro de la comunidad, y el flujo de OpenAI no abrió ninguna para la 0.152.1 ni de la 0.153.x a la 0.155.x; de la 0.156.0 (22 de septiembre) a la 0.161.0 (7 de octubre), doce manifiestos seguidos se fusionaron en menos de un día desde su apertura; después, las solicitudes de la 0.162.0 y la 0.162.1 se estancaron, abiertas desde el 8 y el 9 de octubre. El 15 de octubre el índice tenía 138 versiones, la más reciente la 0.161.0, tres publicaciones estables por detrás de npm, y la solicitud de la 0.163.0 también estaba abierta. Nada está roto en la CLI; el paquete va de días a semanas por detrás.38

Node.js solo es un requisito para la ruta de npm. Los scripts de instalación descargan el binario compilado, y el cask de Homebrew no declara dependencias.12

¿Cómo actualizo Codex CLI?

La CLI que ejecutas no se actualiza sola, salvo que un actualizador del servidor en segundo plano gestione el mismo paquete (instalaciones por script más antiguas cuyo servidor se inició desde packages/standalone, más abajo). La TUI detecta una publicación más reciente y ofrece el comando de tu canal de instalación; ejecutarlo depende de ti, y el integrado cubre las instalaciones por script, npm y Homebrew.4 La comprobación al arrancar es en sí una clave de configuración: check_for_update_on_startup = false en config.toml, que la referencia describe como «Check for Codex updates on startup (set to false only when updates are centrally managed)»; las flotas que gestionan las actualizaciones de forma centralizada definen features.in_app_updates = false en requirements.toml.16

codex --version                      # what you run now
npm view @openai/codex version       # newest published

codex update                         # built-in, v0.128.0+; detects your install channel

codex update llegó con la v0.128.0 el 30 de abril de 2026; el pull request que lo añadió reutilizó la detección del canal de instalación y el ejecutor de actualizaciones que la TUI ya tenía para sus avisos de actualización. El mapa de canales cubre npm (más las variantes de bun, pnpm y Vite+), Homebrew y el instalador independiente en Unix y Windows; una instalación por winget no está en él, así que un Codex instalado con winget solo se actualiza mediante winget upgrade OpenAI.Codex. Leído de nuevo el 15 de octubre, el mapa tiene una entrada nueva, una acción de daemon que sustituye el servidor local en segundo plano una vez restaurada la terminal, y sus comandos independientes ahora ejecutan el instalador con CODEX_NON_INTERACTIVE=1; winget sigue ausente.4 Los equivalentes manuales, si los prefieres o estás preparando la imagen de una máquina:

curl -fsSL https://chatgpt.com/codex/install.sh | sh   # standalone: re-run the installer
npm install -g @openai/codex@latest                    # npm
brew upgrade --cask codex                              # Homebrew
winget upgrade OpenAI.Codex                            # winget (to whatever winget has)
irm https://chatgpt.com/codex/install.ps1 | iex           # standalone on Windows: re-run the installer

Las publicaciones salen en una línea estable rápida – de la 0.160.0 a la 0.163.0, seis publicaciones estables, aparecieron entre el 1 y el 15 de octubre de 2026 – así que la distancia entre «lo que uso» y «la última» suele ser una semana, no un trimestre.9

El servidor en segundo plano se actualiza solo

El servidor en segundo plano es lo único que descarga binarios nuevos según un calendario. Desde la v0.157.0 (25 de septiembre de 2026, UTC), Codex inicia por defecto un servidor en segundo plano gestionado en las sesiones interactivas que cumplen los requisitos, y cuando el instalador seleccionó el canal estable latest, ese servidor lanza un bucle actualizador independiente: busca actualizaciones cinco minutos después de arrancar y luego cada hora, ejecutando el instalador cada vez, y un servidor en marcha se reinicia con el binario nuevo. Un daemon instalado con la 0.163.0 vive en su propio paquete, ~/.codex/packages/app-server-daemon (el modo CODEX_INSTALL_DAEMON_ONLY=1 del instalador, que deja en paz el comando de la CLI del usuario y la configuración de su shell), pero un daemon iniciado por primera vez desde una instalación por script más antigua sigue usando ~/.codex/packages/standalone/current, y sus actualizaciones programadas mueven ese paquete, que es la CLI que escribes (en instalaciones anteriores al marcador de canal del instalador, solo después de la siguiente instalación latest, que es lo que hace codex update; hasta entonces el daemon sirve sin actualizarse). Una versión fijada sigue fijada: el instalador escribe un marcador auto-update-version solo en una instalación latest y lo elimina en una publicación explícita, y su propio comentario enuncia la regla: «Scheduled updates still require the selected release to follow the latest channel.» El interruptor por usuario es "updater": { "autoUpdateEnabled": false } en ~/.codex/app-server-daemon/settings.json, con un updateIntervalMinutes al lado; codex app-server daemon restart aplica el estado de activación, y un intervalo modificado surte efecto en la siguiente espera; codex app-server daemon stop detiene el servidor (una solicitud de terminación ordenada y después una forzada pasado el margen de gracia; el bucle actualizador es un proceso aparte con su propio archivo pid, así que compruébalo después), /daemon en la TUI lo reinicia (v0.163.0), y esas actualizaciones obedecen la directiva de red de la aplicación (v0.163.0). Un codex app-server daemon update explícito selecciona la última publicación estable incluso con las actualizaciones automáticas desactivadas y, cuando el instalador y la publicación lo admitan, traslada un daemon heredado a su propia raíz de paquete; también devuelve un paquete fijado a la elegibilidad de actualización de producción (el ajuste de actualización automática se conserva) y reinicia un servidor en marcha, lo que puede interrumpir trabajo activo o en cola; un servidor detenido sigue detenido. El propio README del daemon lo califica de experimental.2012

¿Cómo instalo una versión concreta?

npm y el script de instalación fijan ambos por versión; Homebrew no:212

npm install -g @openai/[email protected]                                          # npm: exact version
curl -fsSL https://chatgpt.com/codex/install.sh | sh -s -- --release 0.162.1  # script: --release flag
curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_RELEASE=0.162.1 sh    # script: env var, on the sh side
winget install OpenAI.Codex --version 0.161.0                                 # winget: only what it has
codex --version                                                               # verify the rollback took

Fíjate en la posición en la forma con variable de entorno: CODEX_RELEASE=0.162.1 tiene que ir antes de sh, después de la tubería. Escrita delante de curl, la variable solo se aplica a curl y el script instala latest mientras crees haber fijado versión.12 En Windows, el script de PowerShell declara $Release = $env:CODEX_RELEASE como su único parámetro y recurre a latest cuando está vacío, así que fijar versión es esa variable, definida en la misma sesión:17

$env:CODEX_RELEASE = '0.162.1'; irm https://chatgpt.com/codex/install.ps1 | iex

Bórrala después (Remove-Item Env:CODEX_RELEASE): la variable sigue definida el resto de esa sesión, y una ejecución posterior del instalador en ella, incluida la que lanza codex update, hereda la versión fijada.17

npm también tiene un dist-tag alpha para la línea de prelanzamiento (0.163.0-alpha.11 el 15 de octubre, publicada el 14 de octubre en UTC, casi dos días antes de la 0.163.0 estable); npm install -g @openai/codex@alpha lo sigue, y desde la v0.161.0 publicar una alpha más antigua o un hotfix ya no hace retroceder esa etiqueta.1021

Fijar versión es lo correcto cuando una publicación te deja bloqueado: reporta el problema, fija la última versión buena, sigue adelante. Verifica con codex --version después de cada fijación, porque una segunda instalación en otro punto de tu PATH seguirá sirviendo en silencio su propio binario. El script de instalación comprueba exactamente eso: cuando encuentra un codex gestionado por Homebrew, npm o bun ya en tu PATH, avisa «Multiple managed Codex installs can be ambiguous because PATH order decides which one runs» y se ofrece a ejecutar por ti la desinstalación correspondiente; reconoce el caso de Homebrew por los prefijos de macOS /opt/homebrew y /usr/local, solo en macOS, así que un codex de Linuxbrew no se detecta.12 codex doctor informa del mismo estado a posteriori bajo Environment.7

¿Cómo desinstalo Codex CLI?

Detén primero el servidor en segundo plano, mientras codex sigue en tu PATH, y después elimínalo por la ruta que lo instaló:

codex app-server daemon stop     # first; skip if no server runs
npm uninstall -g @openai/codex
brew uninstall --cask codex
winget uninstall OpenAI.Codex

Una instalación por script no tiene gestor de paquetes al que preguntar. El instalador coloca un enlace simbólico codex en ~/.local/bin (modificable con CODEX_INSTALL_DIR) que apunta al binario dentro de ~/.codex/packages/standalone/current (current/bin/codex en las publicaciones actuales); current es a su vez un enlace simbólico hacia ~/.codex/packages/standalone/releases/, donde vive cada versión descargada. En macOS, el instalador añade un segundo enlace simbólico junto al primero, codex-code-mode-host.12 Desde la v0.157.0 también puede haber un servidor en segundo plano: su paquete bajo ~/.codex/packages/app-server-daemon (o, en un servidor iniciado por primera vez desde una instalación más antigua, el propio paquete standalone) y su estado bajo ~/.codex/app-server-daemon/ (settings.json, daemon.pid y daemon-updater.pid, o app-server.pid y app-server-updater.pid en un servidor que se ejecuta desde el paquete standalone, y daemon.lock).20 Detenlo primero y después elimínalo todo:

codex app-server daemon stop                                 # the background server; its updater is a separate process
pgrep -fl "app-server" || true                               # what is still running
grep -H . ~/.codex/app-server-daemon/*.pid 2>/dev/null       # the recorded pids, by file

El servidor se ejecuta como codex app-server --listen unix://, con --remote-control antes de --listen cuando el control remoto está activado (el argumento de escucha es solo el esquema; en la línea de comandos no aparece ninguna ruta de socket), y su actualizador como codex app-server daemon pid-update-loop; los archivos pid bajo ~/.codex/app-server-daemon/ son la prueba de qué proceso pertenece al servidor en segundo plano: daemon.pid y daemon-updater.pid en un daemon dedicado, app-server.pid y app-server-updater.pid en un servidor que se ejecuta desde el paquete standalone. stop termina el servidor, no el actualizador, que sigue despertándose en su intervalo hasta un reinicio del sistema, así que si un pid registrado ahí sigue vivo, termínalo ahora con kill <pid>; cualquier otro proceso codex app-server pertenece a otra cosa que estés ejecutando. Después elimina el resto:1220

rm -f ~/.local/bin/codex ~/.local/bin/codex-code-mode-host   # the second link exists on macOS installs only
rm -rf ~/.codex/packages/standalone ~/.codex/packages/app-server-daemon   # the CLI's package and the server's
rm -rf ~/.codex/app-server-daemon                            # the server's settings, pid files and lock

Si ~/.local/bin no estaba en tu PATH al instalar, o si el instalador encontró una instalación competidora de Homebrew, npm o bun y reescribió la entrada, el script también añadió un bloque marcado a tu perfil de shell: de # >>> Codex installer >>> a # <<< Codex installer <<< en ~/.zprofile (zsh en macOS), ~/.bash_profile (bash en macOS), ~/.zshrc (zsh en Linux), ~/.bashrc (bash en Linux) o ~/.profile (cualquier otra shell). Borra esas tres líneas para terminar.12

En Windows, install.ps1 mantiene la misma disposición bajo %USERPROFILE%\.codex\packages\standalone (o %CODEX_HOME%\packages\standalone si definiste esa variable): las versiones descargadas en releases\, una unión current que apunta a la que está en uso. Expone codex.exe a través de %LOCALAPPDATA%\Programs\OpenAI\Codex\bin (modificable con CODEX_INSTALL_DIR), que es a su vez una unión hacia current\bin, y en lugar de un bloque de perfil escribe esa ruta bin en tu PATH de usuario para futuras sesiones de PowerShell. El servidor en segundo plano guarda ahí las mismas dos carpetas, packages\app-server-daemon y app-server-daemon.1720 Detenlo, elimina el directorio standalone y las dos carpetas del servidor, luego la unión bin que ahora queda colgando, y después quita la entrada de la variable Path de usuario en Variables de entorno:17

codex app-server daemon stop                                                  # the background server; its updater is a separate process
Get-Process codex* -ErrorAction SilentlyContinue                              # what is still running
Get-ChildItem "$env:USERPROFILE\.codex\app-server-daemon\*.pid" -ErrorAction SilentlyContinue | ForEach-Object { "$($_.Name): $(Get-Content $_)" }   # the recorded pids, by file

Aquí deciden los mismos archivos pid: si un proceso cuyo pid está registrado en %USERPROFILE%\.codex\app-server-daemon\daemon.pid o daemon-updater.pid (o app-server.pid y app-server-updater.pid en un servidor sobre el paquete standalone) sigue vivo, termínalo ahora con Stop-Process -Id <pid>; cualquier otro proceso de Codex es otra cosa que estés ejecutando. Después elimina el resto:20

Remove-Item -Recurse -Force "$env:USERPROFILE\.codex\packages\standalone"   # releases plus the current junction
Remove-Item -Recurse -Force "$env:USERPROFILE\.codex\packages\app-server-daemon", "$env:USERPROFILE\.codex\app-server-daemon" -ErrorAction SilentlyContinue   # the server's package and state
cmd /c rmdir "$env:LOCALAPPDATA\Programs\OpenAI\Codex\bin"                  # the bin junction; rmdir removes the link, not a target

codex sandbox uninstall (v0.162.0) es la limpieza aparte del sandbox heredado de Windows: elimina con privilegios de administrador las cuentas de sandbox y las reglas de red de toda la máquina, no toca el directorio home de Codex ni los directorios del sandbox, y se rechaza en otras plataformas.19

En cualquier ruta, detén primero el servidor en segundo plano si hay uno en marcha (codex app-server daemon stop) y busca ~/.codex/packages/app-server-daemon: el README del daemon dice que bootstrap copia el paquete que lo invoca en esa carpeta cuando no existe ningún paquete de daemon y que un ejecutable suelto no puede aportarlo, y aquí no se probó si el inicio automático de una instalación por Homebrew o npm la crea; si la carpeta existe, elimínala junto con ~/.codex/app-server-daemon después de la desinstalación por gestor de paquetes.20 Las desinstalaciones por gestor de paquetes de arriba no tocan ~/.codex/. El --zap de Homebrew tampoco, en la práctica: la única directiva zap del cask es rmdir: "~/.codex", y Homebrew solo aplica rmdir: a directorios que ya están vacíos.2 Ese directorio contiene config.toml, tus credenciales guardadas y cada sesión, y por eso una reinstalación retoma el inicio de sesión y el historial donde los dejaste. Elimínalo solo si de verdad quieres empezar de cero, y sabiendo lo que eso significa en una instalación por script:

rm -rf ~/.codex   # discards config.toml, credentials, all sessions -- AND the CLI itself on a script install

Una reinstalación limpia que conserve tu estado es una línea en npm: npm uninstall -g @openai/codex && npm install -g @openai/codex@latest. En la ruta del script, volver a ejecutar el instalador añade la nueva versión bajo ~/.codex/packages/standalone/releases, apunta current hacia ella, deja las versiones anteriores en su sitio hasta que las elimines, y deja tu configuración en paz.12

Todo el ciclo de vida en una tabla

Tarea install.sh (macOS, Linux) install.ps1 (Windows) npm Homebrew winget
Instalar curl -fsSL https://chatgpt.com/codex/install.sh \| sh powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 \| iex" npm install -g @openai/codex brew install --cask codex winget install OpenAI.Codex
Actualizar codex update, o volver a ejecutar el script codex update, o volver a ejecutar el script codex update, o npm install -g @openai/codex@latest codex update, o brew upgrade --cask codex winget upgrade OpenAI.Codex (codex update no reconoce esta ruta)
Fijar versión sh -s -- --release 0.162.1 $env:CODEX_RELEASE = '0.162.1' antes de la línea de instalación npm install -g @openai/[email protected] no compatible winget install OpenAI.Codex --version 0.161.0
Desinstalar codex app-server daemon stop, luego eliminar los enlaces simbólicos de ~/.local/bin, ~/.codex/packages/standalone, ~/.codex/packages/app-server-daemon y ~/.codex/app-server-daemon codex app-server daemon stop, luego eliminar %USERPROFILE%\.codex\packages\standalone, las carpetas packages\app-server-daemon y app-server-daemon del servidor, la unión %LOCALAPPDATA%\Programs\OpenAI\Codex\bin y la entrada del PATH de usuario codex app-server daemon stop si hay un servidor en marcha, luego npm uninstall -g @openai/codex y después las carpetas del daemon si existen la misma detención, luego brew uninstall --cask codex (--zap no vacía un ~/.codex con contenido) y después las carpetas del daemon si existen la misma detención, luego winget uninstall OpenAI.Codex y después las carpetas del daemon si existen
Comprobar codex --version, codex doctor igual igual igual igual

¿Qué comprueba codex doctor?

codex doctor es el comando que hay que ejecutar antes de reportar un error o de depurar una instalación que «ayer funcionaba». En la 0.153.4 reúne siete secciones en un solo informe – Notes, Environment (coherencia del runtime y la instalación), Configuration (estado de carga de config.toml, autenticación, MCP, directiva de sandbox), Desktop App (añadida en la v0.149.0), Updates, Connectivity y Background Server – con --summary para una vista compacta, --json para una forma legible por máquina y con datos sensibles ocultos, --all para desplegar las listas truncadas y --no-color para registros; codex doctor --help también lista --ascii en la 0.153.4; la v0.162.0 añadió al informe el modo de TUI configurado.7131522 La mayoría de los reportes de «Codex está roto» se reducen a algo que nombra en la primera pantalla: un modo de autenticación obsoleto, un config.toml que no se pudo analizar, o una segunda instalación que oculta la de tu PATH. El desglose completo, sección por sección, está en la guía.

Lo que cambia después de instalar

Lo primero con lo que tropieza una instalación nueva no es el binario. Desde la v0.149.0, la CLI se niega a arrancar con approval_policy = "untrusted", así que un config.toml copiado de una máquina más antigua necesita un cambio.13 ¿Vienes de Claude Code? El artículo de migración pone las dos configuraciones lado a lado, y el artículo sobre hooks explica qué ejecuta Codex alrededor del modelo. La guía de Codex CLI es la referencia completa: modos de sandbox y de aprobación, AGENTS.md, MCP, skills y tareas en la nube. Y si usas ambas herramientas, la página de instalación de Claude Code es la gemela de esta.

Preguntas frecuentes

¿Cómo actualizo Codex CLI a la última versión?

Ejecuta codex update (desde la v0.128.0); detecta si instalaste mediante el script, npm o Homebrew y ejecuta la actualización de ese canal. Los equivalentes manuales son volver a ejecutar el script de instalación, npm install -g @openai/codex@latest o brew upgrade --cask codex. Una instalación por winget no es un canal que codex update reconozca; para esa usa winget upgrade OpenAI.Codex.

¿Codex CLI se actualiza automáticamente?

La CLI no, con una excepción. La TUI comprueba si hay una publicación más reciente y ofrece el comando de actualización que corresponde a tu canal de instalación, y codex update (desde la v0.128.0) lo ejecuta. La excepción es el servidor en segundo plano que Codex inicia por defecto desde la v0.157.0: en el canal latest busca actualizaciones cinco minutos después de arrancar y luego cada hora, y un servidor iniciado por primera vez desde una instalación por script más antigua actualiza ~/.codex/packages/standalone, el propio paquete de la CLI, una vez que una instalación latest ha registrado el canal. Define "updater": { "autoUpdateEnabled": false } en ~/.codex/app-server-daemon/settings.json y ejecuta codex app-server daemon restart para evitarlo.

¿Cómo desinstalo Codex CLI?

Detén primero el servidor en segundo plano si hay uno en marcha (codex app-server daemon stop) y después usa la ruta que lo instaló: npm uninstall -g @openai/codex, brew uninstall --cask codex o winget uninstall OpenAI.Codex, y busca ~/.codex/packages/app-server-daemon y ~/.codex/app-server-daemon, que una desinstalación por gestor de paquetes deja atrás. En una instalación por script, haz la misma detención y después elimina el enlace simbólico ~/.local/bin/codex (y ~/.local/bin/codex-code-mode-host en macOS), el directorio ~/.codex/packages/standalone y los directorios ~/.codex/packages/app-server-daemon y ~/.codex/app-server-daemon del servidor. En Windows, la instalación por script es %USERPROFILE%\.codex\packages\standalone (más las carpetas packages\app-server-daemon y app-server-daemon del servidor), la unión %LOCALAPPDATA%\Programs\OpenAI\Codex\bin y una entrada en tu PATH de usuario; elimínalas todas. Tu configuración, credenciales y sesiones permanecen en ~/.codex/ hasta que elimines tú mismo el resto de ese directorio.

¿Cómo instalo Codex CLI en Windows?

Ejecuta powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex". La CLI se ejecuta de forma nativa en PowerShell con un sandbox de Windows (Microsoft Execution Containers cuando defines prefer_mxc = true y el dispositivo lo admite; si no, el modo heredado que tengas configurado, elevated si no hay ninguno; seleccionar [windows] sandbox = "mxc" de forma explícita usa MXC o falla, sin respaldo); WSL2 es una opción si necesitas herramientas de Linux o si ninguna de las implementaciones de sandbox encaja, no un requisito. Windows 11 es la base recomendada. winget install OpenAI.Codex también funciona, pero va por detrás de la línea estable.

¿Necesito Node.js para instalar Codex?

Solo para la ruta de npm, y el paquete exige Node 16 o posterior. El script de instalación, el script de PowerShell y el cask de Homebrew entregan todos el binario codex compilado, así que una máquina sin Node puede ejecutar Codex.

¿Cómo compruebo qué versión de Codex tengo?

codex --version la imprime (por ejemplo, codex-cli 0.163.0). npm view @openai/codex version muestra la última versión publicada, y codex doctor informa de la ruta de instalación y de si otra copia en tu PATH la está ocultando.



  1. OpenAI, README de openai/codex – la sección de instalación empieza con curl -fsSL https://chatgpt.com/codex/install.sh | sh para macOS y Linux y la línea de PowerShell install.ps1 para Windows, y después dice que la CLI «can also be installed via» npm (npm install -g @openai/codex) y Homebrew (brew install --cask codex); documenta curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_INSTALLER_USE_RELEASES_OPENAI_COM=false sh y la forma de PowerShell $env:CODEX_INSTALLER_USE_RELEASES_OPENAI_COM='false', introducidas con «To force GitHub Releases, set CODEX_INSTALLER_USE_RELEASES_OPENAI_COM to false (0 and no are also accepted)»; el nombre de paquete @openai/codex; binarios por plataforma para macOS (Apple silicon, x86_64) y Linux (x86_64, arm64) en GitHub Releases. Verificado el 2026-09-06 y de nuevo el 2026-10-15, cuando la sección de instalación no había cambiado salvo la frase citada en la nota 6. ↩↩↩↩↩↩↩↩↩

  2. Homebrew, cask codex – token de cask codex, una única versión actual (0.163.0 el 2026-10-15, actualizada por el commit codex 0.163.0 a Homebrew/homebrew-cask a las 21:44:02 UTC, trece minutos después de la publicación de GitHub de las 21:30:38 UTC), un artefacto binario bin/codex con autocompletados de shell generados a partir de él, un depends_on vacío, plataformas compatibles que incluyen x86_64_linux y arm64_linux junto a las versiones de macOS, y una URL de descarga de codex-package-aarch64-apple-darwin.tar.gz en la publicación de GitHub. Verificado mediante la API de formulae y la lista de commits de homebrew-cask el 2026-10-15 (0.153.4 el 2026-09-06). La directiva zap del cask es zap rmdir: "~/.codex", y el Cask Cookbook define rmdir: como rutas de directorios que se eliminan si están vacíos. ↩↩↩↩↩↩

  3. Microsoft, manifiestos de winget-pkgs para OpenAI.Codex – 138 versiones publicadas, la más reciente 0.161.0, el 2026-10-15 (119 y 0.146.1 el 2026-09-06); ningún manifiesto para 0.147.0, 0.152.1 ni de 0.153.x a 0.155.x. El paquete lo publica OpenAI: .github/workflows/rust-release.yml en openai/codex tiene un job winget que envía el manifiesto con komac (su comentario: «Adapted from the WinGet Releaser version previously used by this job»; releído el 2026-10-15). Los pull requests, según la búsqueda en el repositorio del 2026-10-15, con fechas en UTC y de oai-fork-bot salvo que se indique otra cosa: 0.147.0 (#413497) cerrado sin fusionar; de 0.148.0 (#420225) a 0.152.0 (#427090), abiertos del 18 de agosto al 1 de septiembre, fusionados el 11 de septiembre salvo 0.151.0 (#426091) el 30 de septiembre y 0.149.1 (#423060) el 1 de octubre; 0.154.0 (#435129, abierto por un miembro de la comunidad, z3oya) cerrado sin fusionar; de 0.156.0 (#439266) a 0.161.0 (#448267), doce solicitudes abiertas del 22 de septiembre al 7 de octubre, cada una fusionada el mismo día de su apertura o al siguiente; 0.162.0 (#449062), 0.162.1 (#449772) y 0.163.0 (#453561) abiertos el 2026-10-15. El README y la documentación de la CLI de OpenAI no mencionan winget. ↩↩↩↩↩

  4. OpenAI, notas de la versión Codex CLI v0.128.0, 30 de abril de 2026 – «Added codex update, configurable TUI keymaps, plan-mode nudges, action-required terminal titles, and active-turn /statusline and /title edits.» El pull request del comando, openai/codex #19933 (fusionado el 28 de abril de 2026), explica: «Reused the existing install-channel detection and update command runner that the TUI already uses for update prompts.» El mapa de canales es codex-rs/tui/src/update_action.rs: npm y sus hermanos bun, pnpm y Vite+, Homebrew y el instalador independiente (Unix y Windows); sin variante de winget (leído el 2026-09-06). Releído el 2026-10-15: el enum ganó Daemon(DaemonUpdateSource) («Replace the local daemon after restoring the terminal»), y los comandos independientes son curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_NON_INTERACTIVE=1 sh y $env:CODEX_NON_INTERACTIVE=1; irm https://chatgpt.com/codex/install.ps1 | iex; sigue sin variante de winget. ↩↩↩↩

  5. OpenAI, notas de la versión Codex CLI v0.106.0, 26 de febrero de 2026 – «Added a direct install script for macOS and Linux and publish it as a GitHub release asset, using the existing platform payload (including codex and rg)»; install.sh se adjunta a cada publicación desde entonces. La publicación rust-v0.163.0 (recursos listados mediante la API de GitHub Releases, 2026-10-15) incluye install.sh e install.ps1, los codex-<target>.tar.gz por plataforma, archivos .zst y .dmg de macOS, paquetes codex-package-<target>.tar.gz con codex-package_SHA256SUMS, binarios codex-app-server-* y codex-responses-api-proxy-*, tarballs codex-npm-*.tgz y seis archivos openai_codex_cli_bin-0.163.0-*.whl; PyPI describe openai-codex-cli-bin como «Pinned Codex CLI runtime for the Python SDK». El tarball de macOS arm64 descargado el 2026-10-15 contiene la única entrada codex-aarch64-apple-darwin. ↩↩

  6. OpenAI, notas de la versión Codex CLI v0.146.0, 29 de julio de 2026 – «Publish release artifacts, channel metadata, and installer aliases through OpenAI-hosted release infrastructure, with GitHub fallback.» https://chatgpt.com/codex/install.sh responde con un 302 hacia https://releases.openai.com/codex/install.sh (comprobado el 2026-09-06 y el 2026-10-15); el README lo indicaba el 2026-10-15: «The standalone installers download from https://releases.openai.com/codex by default and fall back to GitHub Releases if a metadata or asset download is unavailable.» ↩

  7. OpenAI, feat(cli): add codex doctor diagnostics, openai/codex PR #22336, fusionado el 13 de mayo de 2026 – las secciones del informe (Notes, Environment, Configuration, Updates, Connectivity, Background Server) y sus flags --summary, --json, --all y --no-color. ↩↩

  8. OpenAI, Codex on Windows: Windows sandbox – según la lectura del 2026-10-15: Microsoft Execution Containers, «which Microsoft is rolling out to Windows 11 devices. Microsoft introduced MXC process isolation in Windows 11 24H2 (build 26100.9278) and 25H2 (build 26200.9278)»; «The desktop app automatically prefers MXC for consumer accounts when the device supports it», y prefer_mxc = true bajo [features] para la CLI; allow_mxc = false bajo [windows] en requirements.toml lo bloquea; una prueba de un solo comando documentada para «Codex CLI 0.162.0 and later» con la salida esperada MXC_OK; los respaldos heredados [windows] sandbox = "elevated" («the preferred legacy fallback») y "unelevated" («a legacy fallback» con «weaker network isolation than elevated»); «Use MXC when the device and policy support it. Otherwise, prefer elevated, with unelevated as a secondary fallback»; «Use the native Windows sandbox by default. Choose WSL when you need Linux-native tooling, your workflow already lives in WSL2, or the available native Windows implementations don’t meet your needs»; Windows 11 recomendado, «Recent, fully updated Windows 10» etiquetado como «Best effort», con «Windows 10 version 1809 or newer is required» para la compatibilidad de consola, Windows 10 más antiguo no recomendado; se espera winget para la configuración. Verificado por primera vez el 2026-09-06, cuando la página solo describía los dos modos heredados. ↩↩↩↩↩↩↩↩

  9. OpenAI, publicaciones de openai/codex – rust-v0.163.0 publicada el 15 de octubre de 2026 a las 21:30 UTC como la más reciente, después de rust-v0.160.0 (1 de octubre), rust-v0.160.1 (5 de octubre), rust-v0.161.0 (7 de octubre), rust-v0.162.0 (8 de octubre) y rust-v0.162.1 (9 de octubre); rust-v0.153.4 era la más reciente el 4 de septiembre de 2026 (según la lectura del 6 de septiembre; el listado del 15 de octubre se remonta al 1 de octubre). Fechas de la API de GitHub Releases. ↩↩↩

  10. npm, @openai/codex – latest = 0.163.0 (publicada el 2026-10-15 a las 21:37 UTC), alpha = 0.163.0-alpha.11 (publicada el 2026-10-14 a las 03:38 UTC) y engines: { node: ">=16" } en la 0.163.0, según el documento del registro del 2026-10-15; latest era 0.153.4 el 2026-09-06, y el mapa time del documento lista catorce versiones estables después de la 0.146.1 hasta la 0.153.4 (0.147.0, 0.148.0, 0.149.0, 0.149.1, 0.150.0, 0.150.1, 0.151.0, 0.152.0, 0.152.1, 0.153.0 a 0.153.4). ↩↩↩↩↩↩

  11. OpenAI, documentación de Codex CLI – la instalación empieza con el instalador independiente (curl -fsSL https://chatgpt.com/codex/install.sh | sh en macOS y Linux, una pestaña de instalador para Windows), presenta Homebrew y npm como alternativas, y menciona volver a ejecutar el instalador como la actualización para instalaciones independientes. Verificado el 2026-09-06 y de nuevo el 2026-10-15, cuando las pestañas de instalación eran macOS/Linux, Windows, npm y Homebrew. ↩↩↩↩↩↩

  12. OpenAI, el script de instalación install.sh tal como se sirvió el 2026-09-06 y se releyó el 2026-10-15 – Usage: install.sh [--release VERSION]; variables de entorno CODEX_RELEASE («Version to install; overridden by –release»), CODEX_INSTALL_DIR (por defecto ~/.local/bin), CODEX_HOME (por defecto ~/.codex) y CODEX_INSTALLER_USE_RELEASES_OPENAI_COM («Set to 0, false, or no to use GitHub Releases»); versiones guardadas bajo ~/.codex/packages/standalone/releases detrás de un enlace simbólico current, con un enlace simbólico codex (y codex-code-mode-host en macOS) en el directorio bin; un bloque de PATH # >>> Codex installer >>> / # <<< Codex installer <<< añadido a ~/.zprofile, ~/.bash_profile, ~/.zshrc, ~/.bashrc o ~/.profile cuando el directorio bin no está ya en PATH o se detectó una instalación gestionada competidora (add_to_path solo sale antes ante una coincidencia en PATH si no se encontró ningún conflicto); y la comprobación de instalaciones competidoras que avisa «Multiple managed Codex installs can be ambiguous because PATH order decides which one runs» y ofrece brew uninstall --cask codex, npm uninstall -g @openai/codex o bun remove -g @openai/codex. La copia del 2026-10-15 añade CODEX_NON_INTERACTIVE («Set to 1, true, or yes to skip prompts») al texto de uso; un modo solo daemon (CODEX_INSTALL_DAEMON_ONLY=1, raíz ~/.codex/packages/app-server-daemon, registro del actualizador app-server-daemon/daemon-updater.pid, archivo marcador auto-update-version, escrito en una instalación latest y eliminado en una publicación explícita al final del script) con el comentario «An explicit daemon update may leave a local or pinned release. Scheduled updates still require the selected release to follow the latest channel.» en la comprobación que sale cuando la publicación seleccionada no es la registrada; y una preferencia por el recurso codex-package-<target>.tar.gz verificado contra codex-package_SHA256SUMS, con el tarball npm de la plataforma como disposición heredada. Los bin/codex, bin/codex-code-mode-host y codex-path/rg del paquete se marcan como ejecutables, y el enlace codex-code-mode-host solo se crea en macOS; el actualizador se ejecuta como el subcomando app-server daemon pid-update-loop (la comprobación de propiedad del script en la línea 1266 lo invoca con --check-package-ownership). ↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  13. OpenAI, notas de la versión Codex CLI v0.149.0, 20 de agosto de 2026 – incluye #39630, «Retire the untrusted approval policy», y «codex doctor now diagnoses endpoint protection, network/proxy failures, desktop app state, and update connectivity.» ↩↩

  14. OpenAI, Codex on Windows: WSL, verificado de nuevo el 2026-10-15 – «Use Codex CLI with WSL»: wsl --install, abrir una shell de WSL, después curl -fsSL https://chatgpt.com/codex/install.sh | sh y codex; la página también aconseja mantener los repositorios bajo el directorio personal de Linux en lugar de rutas /mnt/c/ montadas desde Windows, para una E/S más rápida. ↩

  15. Reproducción del autor en Codex CLI 0.153.4 (instalación por npm), 2026-09-06: codex doctor --summary --no-color imprime las secciones Notes, Environment, Configuration, Desktop App, Updates, Connectivity y Background Server en ese orden; codex doctor --help lista --ascii. ↩

  16. OpenAI, referencia de configuración de Codex – check_for_update_on_startup (booleano): «Check for Codex updates on startup (set to false only when updates are centrally managed)»; features.in_app_updates (booleano): «Set to false in requirements.toml to disable in-app updates. Updates remain enabled by default when this requirement is omitted.» Verificado el 2026-09-06 y el 2026-10-15. ↩

  17. OpenAI, el script de instalación install.ps1 tal como se sirvió el 2026-09-06 y se releyó el 2026-10-15 – bloque de parámetros param([string]$Release = $env:CODEX_RELEASE) con latest como respaldo; $codexHome = CODEX_HOME o %USERPROFILE%\.codex; packages\standalone con releases\, una unión current e install.lock; el directorio bin visible %LOCALAPPDATA%\Programs\OpenAI\Codex\bin (o CODEX_INSTALL_DIR) creado como unión hacia current\bin; el Path de ámbito de usuario escrito con [Environment]::SetEnvironmentVariable("Path", ..., "User") («PATH updated for future PowerShell sessions.»). La copia del 2026-10-15 calcula el SHA-256 del archivo con .NET (SHA256CryptoServiceProvider) y lo compara con el codex-package_SHA256SUMS de la publicación, y lanza «Downloaded Codex archive checksum did not match expected digest» si no coinciden. ↩↩↩↩

  18. OpenAI, notas de la versión Codex CLI v0.162.0, 8 de octubre de 2026 – «Publish a signed PowerShell installer with Windows releases. (#51158)» y «Fix archive checksum verification when installing through Windows PowerShell with PowerShell 7 module paths present. (#51257)». PR #51158, fusionado el 5 de octubre de 2026: «sign scripts/install/install.ps1 with Azure Trusted Signing in the x64 release job» y «publish the signed artifact as install.ps1 instead of copying the unsigned source». PR #51257, fusionado el 6 de octubre: «compute SHA-256 directly with .NET APIs after resolving the archive path». ↩

  19. OpenAI, Add a CLI command to uninstall the legacy Windows sandbox, openai/codex PR #50437, fusionado el 2 de octubre de 2026 e incluido en las notas de la versión v0.162.0; la descripción del pull request: «Add codex sandbox uninstall to remove machine-wide legacy Windows sandbox accounts and network rules with administrator privileges. Run cleanup without loading configuration, preserving Codex home, sandbox directories, and filesystem permissions. Reject the command on other platforms.» ↩

  20. OpenAI, codex-rs/app-server-daemon/README.md en la etiqueta rust-v0.163.0 – «codex-app-server-daemon is experimental and its lifecycle contract may change»; los ocho comandos (codex app-server daemon start, restart, update, enable-remote-control, disable-remote-control, stop, version, bootstrap --remote-control); «Eligible managed daemons check for updates after five minutes, then hourly by default. Edit CODEX_HOME/app-server-daemon/settings.json to change this» con el ejemplo "updater": { "autoUpdateEnabled": false, "updateIntervalMinutes": 120 }; «It launches a detached updater loop when automatic updates are enabled, the installer selected the stable latest channel, and the managed binary supports the updater command»; «New daemons use CODEX_HOME/packages/app-server-daemon/current/bin/codex» y «Daemon-only installer updates leave the user’s CLI command and shell setup alone»; «Previously launched legacy daemons retain CODEX_HOME/packages/standalone/current, including its flat binary layout when present. Starts and scheduled updates keep using that location»; la tabla de situaciones («the selected release stays pinned» cuando el instalador seleccionó una publicación explícita; «the running server restarts with the new binary before the updater replaces itself»); los archivos de estado bajo CODEX_HOME/app-server-daemon/ tal como los lista el README (settings.json, app-server.pid, app-server-updater.pid, daemon.lock; los daemon.pid y daemon-updater.pid del daemon dedicado proceden del código fuente, más abajo); «stop sends a graceful termination request first, then force-terminates the process after the configured grace window if it is still alive»; «installs made before the installer recorded channel selections need one new latest installation to opt into automatic updates; until then the daemon continues to serve app-server without updating the selected release»; «daemon update selects the latest stable release, even with automatic updates disabled. It also returns pinned or local managed packages to production update eligibility», «A running daemon restarts, so active or queued work may be interrupted» y «Legacy installations migrate to the dedicated root once the published installer and release support migration»; «bootstrap can use any complete CLI package. If no daemon package is installed, it copies the invoking package into CODEX_HOME/packages/app-server-daemon» y «A bare executable cannot supply a new installation». Los nombres de los archivos pid proceden del código fuente en la misma etiqueta, codex-rs/app-server-daemon/src/lib.rs: LEGACY_PID_FILE_NAME = "app-server.pid", LEGACY_UPDATE_PID_FILE_NAME = "app-server-updater.pid", DAEMON_PID_FILE_NAME = "daemon.pid", DAEMON_UPDATE_PID_FILE_NAME = "daemon-updater.pid" (líneas 54 a 57), el par heredado elegido solo cuando el binario gestionado está bajo packages/standalone (líneas 334 a 337 y 376 a 379), stop detiene el backend en marcha (línea 615) y al actualizador lo detiene ensure_managed_updater en un inicio, un reinicio o un cambio de control remoto (líneas 893 a 930) y en otras dos rutas del ciclo de vida (líneas 474 a 477 y 829 a 832), nunca stop, junto con la frase del README «the updater loop is not reboot-persistent» (línea 145); las líneas de comandos de src/backend/pid.rs (líneas 385 a 401: app-server --listen unix:// para el servidor, app-server --remote-control --listen unix:// con el control remoto activado, app-server daemon pid-update-loop para el actualizador). También OpenAI, notas de la versión Codex CLI v0.157.0, publicadas el 25 de septiembre de 2026 a las 02:31 UTC – «Enabled automatic background-server startup for eligible interactive sessions, with recovery choices when server settings are incompatible. (#47179, #47318)»; v0.162.0 – «#50499 Include installer stderr in daemon update failures», cuyo pull request empieza con «Daemon updates discard installer stderr»; v0.163.0, 15 de octubre – «Restart a managed background server from /daemon. Codex warns about work the restart could interrupt, then reconnects automatically. (#53173)» y «#52223 Enforce application network policy for daemon updates». El modo daemon del instalador y su comprobación de actualización están en la nota 12. ↩↩↩↩↩↩↩↩

  21. OpenAI, notas de la versión Codex CLI v0.161.0, 7 de octubre de 2026 – «Publishing an older alpha or hotfix no longer moves npm alpha tags backward. (#49704)». ↩

  22. OpenAI, notas de la versión Codex CLI v0.162.0 – «#50200 Report the configured TUI mode in codex doctor». ↩

Artículos relacionados

Instalar y actualizar Claude Code CLI: Mac, Linux, Windows

Todas las formas de instalar, actualizar, fijar y desinstalar Claude Code CLI -- instalador nativo, Homebrew, winget o n…

8 min de lectura

Codex retira la política untrusted: qué debes cambiar

Codex CLI 0.149 retiró la política untrusted y ya no arranca con ella. El error, quién debe editar y los arreglos de con…

17 min de lectura

Foundation Models desde Python: la CLI fm

macOS 27 trae la herramienta CLI fm y un SDK de Foundation Models para Python: automatiza el modelo on-device de Apple y…

15 min de lectura