← Todos os Posts

Instalar e atualizar o Codex CLI: Mac, Linux, Windows

Do guia: Codex CLI Comprehensive Guide

Instalar a CLI do OpenAI Codex é um comando por plataforma – curl -fsSL https://chatgpt.com/codex/install.sh | sh no macOS e no Linux, powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex" no Windows – com npm e Homebrew como alternativas suportadas, e atualizar é codex update, que reconhece instalações por script, npm e Homebrew e executa o upgrade daquele canal.1411 A parte que a maioria das páginas pula vem depois do primeiro comando: qual das cinco rotas de instalação escolher, como fixar uma versão quando um lançamento quebra algo, por que o pacote do winget fica de dias a semanas atrás do npm e o que uma desinstalação deixa em ~/.codex. Esta página é essa referência, uma tabela por tarefa, atualizada até a v0.163.0 (15 de outubro de 2026).9

Atualizado em 15 de outubro de 2026 para a v0.163.0. Quatro coisas mudaram desde a versão de setembro desta página. O índice do winget andou: depois de um período, em meados do ano, em que seus pedidos de manifesto ficaram semanas parados, os doze da 0.156.0 à 0.161.0 foram mesclados em menos de um dia após a abertura, mas os pedidos da 0.162.0 e da 0.162.1 esperam desde 8 e 9 de outubro, então em 15 de outubro o winget estava três lançamentos atrás do npm, contra os catorze (da 0.147.0 à 0.153.4) de 6 de setembro.310 Os lançamentos para Windows trazem um install.ps1 assinado (a verificação de SHA-256 dele é mais antiga; a v0.162.0 a corrigiu no Windows PowerShell).18 O Windows também ganhou uma terceira implementação de sandbox, o Microsoft Execution Containers, com os dois modos de setembro como reserva.8 E o servidor em segundo plano que o Codex agora inicia por padrão em sessões interativas elegíveis roda o próprio atualizador, que em instalações por script mais antigas pode mover o pacote da própria CLI.20 Toda referência de instalação, atualização e fixação de versão abaixo foi relida em 15 de outubro; a leitura do codex doctor é da 0.153.4.910

TL;DR

  • O instalador independente é a rota que a OpenAI coloca em primeiro lugar, tanto no README quanto na documentação da CLI, com npm e Homebrew apresentados como alternativas (“you can also install” na documentação da CLI, “can also be installed via” no README): o script install.sh no macOS e no Linux, o script install.ps1 no Windows. Ele baixa o binário compilado, então não precisa de Node.111
  • npm e Homebrew são alternativas suportadas. npm install -g @openai/codex fixa versão com uma especificação de pacote comum (@<version>); brew install --cask codex estava, no momento da escrita, na mesma 0.163.0 do npm; o cask foi atualizado treze minutos depois do lançamento.1210
  • O winget funciona, com dias a semanas de atraso. A OpenAI publica o pacote OpenAI.Codex. Depois de um período, em meados do ano, em que seus pull requests de manifesto ficaram semanas sem merge, os doze da 0.156.0 (22 de setembro de 2026) à 0.161.0 (7 de outubro) foram mesclados, cada um em menos de um dia após a abertura; depois, os pedidos da 0.162.0 e da 0.162.1 empacaram, abertos desde 8 e 9 de outubro. Em 15 de outubro, a versão instalável mais recente era a 0.161.0, contra a 0.163.0 no npm, três lançamentos estáveis atrás, e o pedido da 0.163.0 também estava aberto.310
  • codex update cobre instalações por script, npm e Homebrew (v0.128.0 em diante): ele reutiliza a detecção de canal de instalação que a TUI já tem e executa o upgrade correspondente. Uma instalação por winget não é um canal que ele reconheça; essa você atualiza com winget upgrade OpenAI.Codex. Os equivalentes manuais para o resto são executar o instalador de novo, npm install -g @openai/codex@latest ou brew upgrade --cask codex.411
  • O servidor em segundo plano roda um atualizador e, em instalações por script mais antigas, pode mover a sua CLI. Desde a v0.157.0 (25 de setembro de 2026, UTC), o Codex inicia por padrão um servidor em segundo plano gerenciado em sessões interativas elegíveis. Quando o instalador selecionou o canal latest, esse servidor procura atualizações cinco minutos depois de iniciar e depois a cada hora, executando o instalador; um daemon novo fica em ~/.codex/packages/app-server-daemon, mas um daemon iniciado pela primeira vez a partir de uma instalação por script mais antiga continua usando ~/.codex/packages/standalone/current, o pacote da própria CLI. O interruptor é "updater": { "autoUpdateEnabled": false } em ~/.codex/app-server-daemon/settings.json, aplicado com codex app-server daemon restart.2012
  • Fixe versão com --release <version> no install.sh, $env:CODEX_RELEASE antes da linha do install.ps1 ou @<version> no npm. O cask do Homebrew acompanha uma única versão atual e não consegue fixar.212
  • Desinstalar o pacote não remove seu estado, mas em uma instalação por script, rm -rf ~/.codex remove também a própria CLI, porque o instalador guarda as versões em ~/.codex/packages/standalone.12

Como instalo o Codex CLI?

Quatro rotas, na ordem em que a própria documentação da OpenAI as apresenta,111 mais o winget no Windows, que a OpenAI não 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

Depois confirme que a instalação chegou e faça login:

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

Em uma primeira instalação por script, o bloco do perfil só vale em shells novos. Se codex não for encontrado no terminal de onde você instalou, execute ali export PATH="$HOME/.local/bin:$PATH" ou abra um novo; o instalador imprime as mesmas duas linhas ao terminar (“Current terminal” e “Future terminals”).12

Prefere um binário puro? Todo lançamento no GitHub traz 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), e desde a v0.106.0 o mesmo install.sh é anexado a cada lançamento como asset. Cada arquivo contém uma única entrada com a plataforma no nome; renomeie-a para codex depois de extrair.15 A página de lançamentos cresceu em volta desses tarballs: irmãos .zst e .dmg de macOS de cada binário; pacotes codex-package-<target>.tar.gz com o binário, o auxiliar codex-code-mode-host e o ripgrep, que são o que o instalador e o cask do Homebrew baixam; os binários codex-app-server e codex-responses-api-proxy; e wheels de Python openai_codex_cli_bin, que são o runtime fixado do SDK de Python da OpenAI, e não uma rota pip para a CLI.512

O instalador baixa da infraestrutura de lançamento hospedada pela OpenAI: chatgpt.com/codex/install.sh redireciona para releases.openai.com, uma mudança que chegou na v0.146.0, com o GitHub Releases como host de reserva.6 Em uma rede que bloqueia ou limita o host de artefatos da OpenAI mas permite o GitHub, pegue o script do asset do lançamento e diga a ele para buscar o binário também no GitHub:112

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

A variável fica do lado do sh do pipe. A forma VAR=value curl ... | sh aplica a variável só ao curl, então o script nunca a vê e fica silenciosamente no padrão. No PowerShell, defina $env:CODEX_INSTALLER_USE_RELEASES_OPENAI_COM = 'false' antes de executar a linha de instalação.

Qual rota você deve escolher?

Você está em Use Por quê
macOS ou Linux o script de instalação A rota que a documentação da OpenAI lista primeiro; baixa o binário, sem Node na máquina11
Windows o script do PowerShell PowerShell nativo com o sandbox do Windows; o WSL é opcional811
Qualquer máquina em que você fixa versões em scripts npm install -g @openai/codex@<version> Fixa como especificação de pacote, então a versão vive no seu Dockerfile ou script de provisionamento, e não em uma flag10
macOS ou Linux em que o Homebrew já gerencia todo o resto brew install --cask codex A mesma versão do npm em 15 de outubro (o cask foi atualizado treze minutos depois do lançamento), sem dependência de Node, brew upgrade mantém atualizado2
Windows, gerenciado por pacotes winget install OpenAI.Codex Se um atraso em relação ao npm for aceitável: três lançamentos em 15 de outubro3

Quais plataformas o Codex suporta?

Plataforma Status
macOS, Apple silicon e Intel Suportado; binários para ambos1
Linux, x86_64 e arm64 Suportado; binários para ambos1
Windows 11 Base recomendada; o MXC chegou no 24H2 (build 26100.9278) e no 25H2 (build 26200.9278) e está sendo liberado aos poucos, então teste-o com a verificação de um único comando8
Windows 10, versão 1809 ou mais recente Melhor esforço (exige suporte ao console ConPTY)8
Windows 10 mais antigo Não recomendado: faltam componentes de console8
WSL2 Opcional; a página de WSL da OpenAI executa o mesmo script de instalação a partir do shell do WSL14

No Windows, o Codex roda nativamente no PowerShell com um sandbox do Windows, e desde outubro de 2026 há três implementações. A mais nova é o Microsoft Execution Containers (MXC), o isolamento de processos que a Microsoft introduziu no Windows 11 24H2 e 25H2: o app de desktop o prefere para contas de consumidor quando o dispositivo tem suporte, e a CLI o usa quando prefer_mxc = true está definido em [features], com os modos legados como reserva, ou quando [windows] sandbox = "mxc" o seleciona explicitamente, caso em que falha em vez de recorrer à reserva se o recurso estiver ausente ou uma política o bloquear; a partir da v0.162.0, um teste de um único comando (codex -c windows.sandbox=mxc sandbox ..., saída esperada MXC_OK) o experimenta sem alterar a seleção salva. Os dois modos anteriores agora são as reservas legadas. elevated é o preferido: usa usuários de sandbox dedicados com privilégios reduzidos, limites de permissão no sistema de arquivos, regras de firewall e mudanças de política local, e exige uma configuração aprovada por administrador. unelevated executa comandos com um token restrito do Windows derivado do seu usuário e limites de sistema de arquivos baseados em ACL, com um isolamento de rede mais fraco.8 A reserva é escolhida no config.toml:

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

A orientação da OpenAI é usar o sandbox nativo por padrão e escolher o WSL quando você precisar de ferramentas nativas do Linux, quando seu fluxo de trabalho já viver no WSL2 ou quando nenhuma das implementações de sandbox nativas do Windows atender aos seus requisitos.8 Uma distinção que vale guardar: a configuração do Windows pressupõe que o winget está na máquina para os seus próprios passos de configuração; isso é diferente de instalar o Codex via winget. A OpenAI publica esse pacote, o fluxo de lançamento tem um job winget que abre um pull request de manifesto em microsoft/winget-pkgs para lançamentos estáveis, e a paralisação do índice em meados do ano acabou, embora não de vez. As datas aqui estão em UTC. Os pedidos da 0.148.0 à 0.152.0, abertos entre 18 de agosto e 1º de setembro, foram mesclados em 11 de setembro (a 0.151.0 em 30 de setembro e a 0.149.1 em 1º de outubro); o pedido da 0.147.0 foi fechado sem merge, assim como o envio da 0.154.0 feito por um membro da comunidade, e o fluxo da OpenAI não abriu nenhum para a 0.152.1 nem da 0.153.x à 0.155.x; da 0.156.0 (22 de setembro) à 0.161.0 (7 de outubro), doze manifestos seguidos foram mesclados em menos de um dia após a abertura; depois, os pedidos da 0.162.0 e da 0.162.1 empacaram, abertos desde 8 e 9 de outubro. Em 15 de outubro o índice tinha 138 versões, a mais recente a 0.161.0, três lançamentos estáveis atrás do npm, e o pedido da 0.163.0 também estava aberto. Nada está quebrado na CLI; o pacote fica de dias a semanas atrás.38

O Node.js só é pré-requisito para a rota do npm. Os scripts de instalação baixam o binário compilado, e o cask do Homebrew não declara dependências.12

Como atualizo o Codex CLI?

A CLI que você executa não se atualiza sozinha, a menos que um atualizador do servidor em segundo plano esteja gerenciando o mesmo pacote (instalações por script mais antigas cujo servidor foi iniciado a partir de packages/standalone, mais abaixo). A TUI percebe um lançamento mais novo e oferece o comando do seu canal de instalação; executá-lo é com você, e o comando embutido cobre instalações por script, npm e Homebrew.4 A verificação na inicialização é, ela mesma, uma chave de configuração: check_for_update_on_startup = false no config.toml, que a referência descreve como “Check for Codex updates on startup (set to false only when updates are centrally managed)”; frotas que gerenciam atualizações centralmente definem features.in_app_updates = false no 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 chegou com a v0.128.0 em 30 de abril de 2026; o pull request que o adicionou reutilizou a detecção de canal de instalação e o executor de atualização que a TUI já tinha para os avisos de atualização. O mapa de canais cobre npm (mais as variantes bun, pnpm e Vite+), Homebrew e o instalador independente no Unix e no Windows; uma instalação por winget não está nele, então um Codex instalado via winget só é atualizado por winget upgrade OpenAI.Codex. Relido em 15 de outubro, o mapa tem uma entrada nova, uma ação de daemon que substitui o servidor local em segundo plano depois que o terminal é restaurado, e seus comandos do instalador independente agora executam o instalador com CODEX_NON_INTERACTIVE=1; o winget continua ausente.4 Os equivalentes manuais, se você preferir ou estiver preparando a imagem de uma 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

Os lançamentos saem em uma linha estável rápida – da 0.160.0 à 0.163.0, seis lançamentos estáveis, chegaram entre 1º e 15 de outubro de 2026 – então a distância entre “o que eu uso” e “a mais recente” costuma ser uma semana, não um trimestre.9

O servidor em segundo plano se atualiza sozinho

O servidor em segundo plano é a única coisa que baixa binários novos por agendamento. Desde a v0.157.0 (25 de setembro de 2026, UTC), o Codex inicia por padrão um servidor em segundo plano gerenciado em sessões interativas elegíveis e, quando o instalador selecionou o canal estável latest, esse servidor dispara um loop de atualização destacado: ele procura atualizações cinco minutos depois de iniciar e depois a cada hora, executando o instalador a cada vez, e um servidor em execução reinicia com o binário novo. Um daemon instalado na 0.163.0 fica no próprio pacote, ~/.codex/packages/app-server-daemon (o modo CODEX_INSTALL_DAEMON_ONLY=1 do instalador, que deixa em paz o comando da CLI do usuário e a configuração do shell), mas um daemon iniciado pela primeira vez a partir de uma instalação por script mais antiga continua usando ~/.codex/packages/standalone/current, e as atualizações agendadas dele movem esse pacote, que é a CLI que você digita (em instalações anteriores ao marcador de canal do instalador, só depois da próxima instalação latest, que é o que o codex update faz; até lá o daemon atende sem se atualizar). Uma versão fixada continua fixada: o instalador grava um marcador auto-update-version só em uma instalação latest e o remove em um lançamento explícito, e o próprio comentário dele enuncia a regra: “Scheduled updates still require the selected release to follow the latest channel.” O interruptor por usuário é "updater": { "autoUpdateEnabled": false } em ~/.codex/app-server-daemon/settings.json, com um updateIntervalMinutes ao lado; codex app-server daemon restart aplica o estado de ativação, e um intervalo alterado passa a valer na próxima espera; codex app-server daemon stop para o servidor (um pedido de encerramento gracioso e depois um forçado ao fim do período de tolerância; o loop de atualização é um processo separado com o próprio arquivo pid, então verifique-o depois), /daemon na TUI o reinicia (v0.163.0), e essas atualizações obedecem à política de rede do aplicativo (v0.163.0). Um codex app-server daemon update explícito seleciona o lançamento estável mais recente mesmo com as atualizações automáticas desligadas e, quando o instalador e o lançamento derem suporte, move um daemon legado para a própria raiz de pacote; ele também devolve um pacote fixado à elegibilidade de atualização de produção (a configuração de atualização automática em si é mantida) e reinicia um servidor em execução, o que pode interromper trabalho ativo ou na fila; um servidor parado continua parado. O próprio README do daemon o chama de experimental.2012

Como instalo uma versão específica?

npm e o script de instalação fixam ambos por versão; o Homebrew não: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

Repare na posição na forma com variável de ambiente: CODEX_RELEASE=0.162.1 precisa vir antes do sh, depois do pipe. Escrita antes do curl, a variável só se aplica ao curl e o script instala latest enquanto você acha que fixou a versão.12 No Windows, o script do PowerShell declara $Release = $env:CODEX_RELEASE como seu único parâmetro e recorre a latest quando ele está vazio, então fixar a versão é essa variável, definida na mesma sessão:17

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

Limpe-a depois (Remove-Item Env:CODEX_RELEASE): a variável continua definida pelo resto dessa sessão, e uma execução posterior do instalador nela, inclusive a que o codex update dispara, herda a fixação.17

O npm também tem uma dist-tag alpha para a linha de pré-lançamento (0.163.0-alpha.11 em 15 de outubro, publicada em 14 de outubro em UTC, quase dois dias antes da 0.163.0 estável); npm install -g @openai/codex@alpha a acompanha, e desde a v0.161.0 publicar uma alpha mais antiga ou um hotfix não faz mais essa tag andar para trás.1021

Fixar versão é a atitude certa quando um lançamento trava você: relate o problema, fixe a última versão boa, siga em frente. Verifique com codex --version depois de cada fixação, porque uma segunda instalação em outro ponto do seu PATH vai continuar servindo silenciosamente o próprio binário. O script de instalação verifica exatamente isso: quando encontra um codex gerenciado por Homebrew, npm ou bun já no seu PATH, ele avisa “Multiple managed Codex installs can be ambiguous because PATH order decides which one runs” e se oferece para executar por você a desinstalação correspondente; ele reconhece o caso do Homebrew pelos prefixos de macOS /opt/homebrew e /usr/local, só no macOS, então um codex do Linuxbrew não é detectado.12 codex doctor relata o mesmo estado depois do fato em Environment.7

Como desinstalo o Codex CLI?

Pare primeiro o servidor em segundo plano, enquanto codex ainda está no seu PATH, e depois remova o Codex pela rota que o instalou:

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

Uma instalação por script não tem gerenciador de pacotes a quem perguntar. O instalador coloca um link simbólico codex em ~/.local/bin (substituível com CODEX_INSTALL_DIR) que aponta para o binário dentro de ~/.codex/packages/standalone/current (current/bin/codex nos lançamentos atuais); current é, por sua vez, um link simbólico para ~/.codex/packages/standalone/releases/, onde cada versão baixada fica. No macOS, o instalador adiciona um segundo link simbólico ao lado do primeiro, codex-code-mode-host.12 Desde a v0.157.0 também pode haver um servidor em segundo plano: o pacote dele em ~/.codex/packages/app-server-daemon (ou, para um servidor iniciado pela primeira vez a partir de uma instalação mais antiga, o próprio pacote standalone) e o estado dele em ~/.codex/app-server-daemon/ (settings.json, daemon.pid e daemon-updater.pid, ou app-server.pid e app-server-updater.pid para um servidor rodando a partir do pacote standalone, e daemon.lock).20 Pare-o primeiro e depois remova tudo:

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

O servidor roda como codex app-server --listen unix://, com --remote-control antes de --listen quando o controle remoto está ligado (o argumento de escuta é só o esquema; nenhum caminho de socket aparece na linha de comando), e o atualizador dele como codex app-server daemon pid-update-loop; os arquivos pid em ~/.codex/app-server-daemon/ são o teste de qual processo pertence ao servidor em segundo plano: daemon.pid e daemon-updater.pid para um daemon dedicado, app-server.pid e app-server-updater.pid para um servidor rodando a partir do pacote standalone. stop encerra o servidor, não o atualizador, que continua acordando no intervalo dele até uma reinicialização do sistema, então se um pid registrado ali ainda estiver vivo, encerre-o agora com kill <pid>; qualquer outro processo codex app-server pertence a outra coisa que você está executando. Depois remova o 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

Se ~/.local/bin não estava no seu PATH na instalação, ou se o instalador encontrou uma instalação concorrente do Homebrew, npm ou bun e reescreveu a entrada, o script também acrescentou um bloco marcado ao seu perfil de shell: de # >>> Codex installer >>> até # <<< Codex installer <<< em ~/.zprofile (zsh no macOS), ~/.bash_profile (bash no macOS), ~/.zshrc (zsh no Linux), ~/.bashrc (bash no Linux) ou ~/.profile (qualquer outro shell). Apague essas três linhas para terminar.12

No Windows, o install.ps1 mantém o mesmo arranjo em %USERPROFILE%\.codex\packages\standalone (ou %CODEX_HOME%\packages\standalone, se você definiu essa variável): versões baixadas em releases\, uma junção current apontando para a que está em uso. Ele expõe o codex.exe por %LOCALAPPDATA%\Programs\OpenAI\Codex\bin (substituível com CODEX_INSTALL_DIR), que é por sua vez uma junção para current\bin, e em vez de um bloco de perfil ele grava esse caminho bin no seu PATH de usuário para futuras sessões do PowerShell. O servidor em segundo plano mantém ali as mesmas duas pastas, packages\app-server-daemon e app-server-daemon.1720 Pare-o, remova o diretório standalone e as duas pastas do servidor, depois a junção bin que agora ficou pendurada, e então tire a entrada da variável Path de usuário em Variáveis de Ambiente: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

Os mesmos arquivos pid decidem aqui: se um processo cujo pid está registrado em %USERPROFILE%\.codex\app-server-daemon\daemon.pid ou daemon-updater.pid (ou app-server.pid e app-server-updater.pid para um servidor no pacote standalone) ainda estiver vivo, encerre-o agora com Stop-Process -Id <pid>; qualquer outro processo do Codex é outra coisa que você está executando. Depois remova o 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) é a limpeza separada do sandbox legado do Windows: ele remove, com privilégios de administrador, as contas de sandbox e as regras de rede de toda a máquina, deixa em paz o diretório home do Codex e os diretórios do sandbox, e é rejeitado em outras plataformas.19

Em qualquer rota, pare primeiro o servidor em segundo plano se houver um rodando (codex app-server daemon stop) e procure ~/.codex/packages/app-server-daemon: o README do daemon diz que o bootstrap copia o pacote que o invoca para essa pasta quando não existe nenhum pacote de daemon e que um executável avulso não consegue fornecer um, e não foi testado aqui se a inicialização automática de uma instalação por Homebrew ou npm a cria; se a pasta existir, remova-a junto com ~/.codex/app-server-daemon depois da desinstalação por gerenciador de pacotes.20 As desinstalações por gerenciador de pacotes acima não tocam em ~/.codex/. O --zap do Homebrew também não, na prática: a única diretiva zap do cask é rmdir: "~/.codex", e o Homebrew só aplica rmdir: a diretórios que já estão vazios.2 Esse diretório guarda o config.toml, suas credenciais salvas e cada sessão, e é por isso que uma reinstalação retoma o login e o histórico de onde você parou. Apague-o só se quiser mesmo começar do zero, e sabendo o que isso significa em uma instalação por script:

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

Uma reinstalação limpa que preserva seu estado é uma linha no npm: npm uninstall -g @openai/codex && npm install -g @openai/codex@latest. Na rota do script, executar o instalador de novo adiciona a versão nova em ~/.codex/packages/standalone/releases, aponta current para ela, deixa as versões mais antigas no lugar até você removê-las e deixa sua configuração em paz.12

O ciclo de vida inteiro em uma tabela

Tarefa 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
Atualizar codex update, ou executar o script de novo codex update, ou executar o script de novo codex update, ou npm install -g @openai/codex@latest codex update, ou brew upgrade --cask codex winget upgrade OpenAI.Codex (codex update não reconhece esta rota)
Fixar versão sh -s -- --release 0.162.1 $env:CODEX_RELEASE = '0.162.1' antes da linha de instalação npm install -g @openai/[email protected] não suportado winget install OpenAI.Codex --version 0.161.0
Desinstalar codex app-server daemon stop, depois remover os links simbólicos de ~/.local/bin, ~/.codex/packages/standalone, ~/.codex/packages/app-server-daemon e ~/.codex/app-server-daemon codex app-server daemon stop, depois remover %USERPROFILE%\.codex\packages\standalone, as pastas packages\app-server-daemon e app-server-daemon do servidor, a junção %LOCALAPPDATA%\Programs\OpenAI\Codex\bin e a entrada do PATH de usuário codex app-server daemon stop se houver um servidor rodando, depois npm uninstall -g @openai/codex e então as pastas do daemon, se existirem a mesma parada, depois brew uninstall --cask codex (--zap não esvazia um ~/.codex com conteúdo) e então as pastas do daemon, se existirem a mesma parada, depois winget uninstall OpenAI.Codex e então as pastas do daemon, se existirem
Verificar codex --version, codex doctor idem idem idem idem

O que o codex doctor verifica?

codex doctor é o comando a executar antes de relatar um bug ou depurar uma instalação que “funcionava ontem”. Na 0.153.4, ele reúne sete seções em um único relatório – Notes, Environment (consistência de runtime e instalação), Configuration (estado de carregamento do config.toml, autenticação, MCP, política de sandbox), Desktop App (adicionada na v0.149.0), Updates, Connectivity e Background Server – com --summary para uma visão compacta, --json para uma forma legível por máquina e com dados sensíveis ocultados, --all para expandir listas truncadas e --no-color para logs; codex doctor --help também lista --ascii na 0.153.4; a v0.162.0 acrescentou ao relatório o modo de TUI configurado.7131522 A maioria dos relatos de “o Codex quebrou” se resolve em algo que ele nomeia na primeira tela: um modo de autenticação obsoleto, um config.toml que não pôde ser interpretado ou uma segunda instalação escondendo a que está no seu PATH. O detalhamento completo, seção por seção, está no guia.

O que muda depois de instalar

A primeira coisa em que uma instalação nova tropeça não é o binário. Desde a v0.149.0, a CLI se recusa a iniciar com approval_policy = "untrusted", então um config.toml copiado de uma máquina mais antiga precisa de uma mudança.13 Vindo do Claude Code? O post de migração coloca as duas configurações lado a lado, e o post sobre hooks explica o que o Codex executa ao redor do modelo. O guia do Codex CLI é a referência completa: modos de sandbox e aprovação, AGENTS.md, MCP, skills e tarefas na nuvem. E se você usa as duas ferramentas, a página de instalação do Claude Code é a gêmea desta.

Perguntas frequentes

Como atualizo o Codex CLI para a versão mais recente?

Execute codex update (v0.128.0 em diante); ele detecta se você instalou pelo script, npm ou Homebrew e executa o upgrade daquele canal. Os equivalentes manuais são executar o script de instalação de novo, npm install -g @openai/codex@latest ou brew upgrade --cask codex. Uma instalação por winget não é um canal que o codex update reconheça; para essa, use winget upgrade OpenAI.Codex.

O Codex CLI se atualiza automaticamente?

A CLI não, com uma exceção. A TUI verifica se há um lançamento mais novo e oferece o comando de atualização que corresponde ao seu canal de instalação, e codex update (v0.128.0 em diante) o executa. A exceção é o servidor em segundo plano que o Codex inicia por padrão desde a v0.157.0: no canal latest, ele procura atualizações cinco minutos depois de iniciar e depois a cada hora, e um servidor iniciado pela primeira vez a partir de uma instalação por script mais antiga atualiza ~/.codex/packages/standalone, o pacote da própria CLI, assim que uma instalação latest tiver registrado o canal. Defina "updater": { "autoUpdateEnabled": false } em ~/.codex/app-server-daemon/settings.json e execute codex app-server daemon restart para impedir isso.

Como desinstalo o Codex CLI?

Pare primeiro o servidor em segundo plano se houver um rodando (codex app-server daemon stop) e depois use a rota que o instalou: npm uninstall -g @openai/codex, brew uninstall --cask codex ou winget uninstall OpenAI.Codex, e procure ~/.codex/packages/app-server-daemon e ~/.codex/app-server-daemon, que uma desinstalação por gerenciador de pacotes deixa para trás. Em uma instalação por script, faça a mesma parada e depois remova o link simbólico ~/.local/bin/codex (e ~/.local/bin/codex-code-mode-host no macOS), o diretório ~/.codex/packages/standalone e os ~/.codex/packages/app-server-daemon e ~/.codex/app-server-daemon do servidor. No Windows, a instalação por script é %USERPROFILE%\.codex\packages\standalone (mais as pastas packages\app-server-daemon e app-server-daemon do servidor), a junção %LOCALAPPDATA%\Programs\OpenAI\Codex\bin e uma entrada no seu PATH de usuário; remova todos eles. Sua configuração, credenciais e sessões permanecem em ~/.codex/ até você mesmo remover o resto desse diretório.

Como instalo o Codex CLI no Windows?

Execute powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex". A CLI roda nativamente no PowerShell com um sandbox do Windows (o Microsoft Execution Containers quando você define prefer_mxc = true e o dispositivo tem suporte; caso contrário, o modo legado que você configurou, elevated se nenhum estiver definido; selecionar [windows] sandbox = "mxc" explicitamente usa o MXC ou falha, sem reserva); o WSL2 é uma opção se você precisar de ferramentas do Linux ou se nenhuma das implementações de sandbox servir, não um pré-requisito. O Windows 11 é a base recomendada. winget install OpenAI.Codex também funciona, mas fica atrás da linha estável.

Preciso do Node.js para instalar o Codex?

Só para a rota do npm, e o pacote exige Node 16 ou mais recente. O script de instalação, o script do PowerShell e o cask do Homebrew entregam todos o binário codex compilado, então uma máquina sem Node consegue executar o Codex.

Como verifico qual versão do Codex eu tenho?

codex --version imprime a versão (por exemplo, codex-cli 0.163.0). npm view @openai/codex version mostra a versão publicada mais recente, e codex doctor relata o caminho de instalação e se outra cópia no seu PATH está escondendo essa.



  1. OpenAI, README do openai/codex – a seção de instalação abre com curl -fsSL https://chatgpt.com/codex/install.sh | sh para macOS e Linux e com a linha única de PowerShell install.ps1 para Windows, e depois diz que a CLI “can also be installed via” npm (npm install -g @openai/codex) e Homebrew (brew install --cask codex); documenta curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_INSTALLER_USE_RELEASES_OPENAI_COM=false sh e a forma de PowerShell $env:CODEX_INSTALLER_USE_RELEASES_OPENAI_COM='false', introduzidas com “To force GitHub Releases, set CODEX_INSTALLER_USE_RELEASES_OPENAI_COM to false (0 and no are also accepted)”; o nome de pacote @openai/codex; binários por plataforma para macOS (Apple silicon, x86_64) e Linux (x86_64, arm64) no GitHub Releases. Verificado em 2026-09-06 e de novo em 2026-10-15, quando a seção de instalação estava inalterada, exceto pela frase citada na nota 6. ↩↩↩↩↩↩↩↩↩

  2. Homebrew, cask codex – token de cask codex, uma única versão atual (0.163.0 em 2026-10-15, atualizada pelo commit codex 0.163.0 no Homebrew/homebrew-cask às 21:44:02 UTC, treze minutos depois do lançamento no GitHub às 21:30:38 UTC), um artefato binário bin/codex com completions de shell geradas a partir dele, um depends_on vazio, plataformas suportadas que incluem x86_64_linux e arm64_linux ao lado das versões de macOS, e uma URL de download de codex-package-aarch64-apple-darwin.tar.gz no lançamento do GitHub. Verificado pela API do formulae e pela lista de commits do homebrew-cask em 2026-10-15 (0.153.4 em 2026-09-06). A diretiva zap do cask é zap rmdir: "~/.codex", e o Cask Cookbook define rmdir: como caminhos de diretórios a remover se estiverem vazios. ↩↩↩↩↩↩

  3. Microsoft, manifestos do winget-pkgs para OpenAI.Codex – 138 versões publicadas, a mais recente 0.161.0, em 2026-10-15 (119 e 0.146.1 em 2026-09-06); nenhum manifesto para 0.147.0, 0.152.1 nem da 0.153.x à 0.155.x. O pacote é publicado pela OpenAI: o .github/workflows/rust-release.yml em openai/codex tem um job winget que envia o manifesto com komac (o comentário dele: “Adapted from the WinGet Releaser version previously used by this job”; relido em 2026-10-15). Os pull requests, pela busca no repositório em 2026-10-15, com datas em UTC e do oai-fork-bot salvo indicação: 0.147.0 (#413497) fechado sem merge; de 0.148.0 (#420225) a 0.152.0 (#427090), abertos de 18 de agosto a 1º de setembro, mesclados em 11 de setembro, exceto 0.151.0 (#426091) em 30 de setembro e 0.149.1 (#423060) em 1º de outubro; 0.154.0 (#435129, aberto por um membro da comunidade, z3oya) fechado sem merge; de 0.156.0 (#439266) a 0.161.0 (#448267), doze pedidos abertos de 22 de setembro a 7 de outubro, cada um mesclado no dia da abertura ou no seguinte; 0.162.0 (#449062), 0.162.1 (#449772) e 0.163.0 (#453561) abertos em 2026-10-15. O README e a documentação da CLI da OpenAI não mencionam o winget. ↩↩↩↩↩

  4. OpenAI, notas de lançamento do 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.” O pull request do comando, openai/codex #19933 (mesclado em 28 de abril de 2026), explica: “Reused the existing install-channel detection and update command runner that the TUI already uses for update prompts.” O mapa de canais é codex-rs/tui/src/update_action.rs: npm e seus irmãos bun, pnpm e Vite+, Homebrew e o instalador independente (Unix e Windows); sem variante para winget (lido em 2026-09-06). Relido em 2026-10-15: o enum ganhou Daemon(DaemonUpdateSource) (“Replace the local daemon after restoring the terminal”), e os comandos do instalador independente são curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_NON_INTERACTIVE=1 sh e $env:CODEX_NON_INTERACTIVE=1; irm https://chatgpt.com/codex/install.ps1 | iex; ainda sem variante para winget. ↩↩↩↩

  5. OpenAI, notas de lançamento do Codex CLI v0.106.0, 26 de fevereiro 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)”; o install.sh é anexado a cada lançamento desde então. O lançamento rust-v0.163.0 (assets listados pela API de releases do GitHub, 2026-10-15) traz install.sh e install.ps1, os codex-<target>.tar.gz por plataforma, arquivos .zst e .dmg de macOS, pacotes codex-package-<target>.tar.gz com codex-package_SHA256SUMS, binários codex-app-server-* e codex-responses-api-proxy-*, tarballs codex-npm-*.tgz e seis arquivos openai_codex_cli_bin-0.163.0-*.whl; o PyPI descreve o openai-codex-cli-bin como “Pinned Codex CLI runtime for the Python SDK”. O tarball de macOS arm64 baixado em 2026-10-15 contém a única entrada codex-aarch64-apple-darwin. ↩↩

  6. OpenAI, notas de lançamento do Codex CLI v0.146.0, 29 de julho 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 com 302 para https://releases.openai.com/codex/install.sh (verificado em 2026-09-06 e em 2026-10-15); o README afirmava isso em 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, mesclado em 13 de maio de 2026 – as seções do relatório (Notes, Environment, Configuration, Updates, Connectivity, Background Server) e suas flags --summary, --json, --all e --no-color. ↩↩

  8. OpenAI, Codex on Windows: Windows sandbox – conforme lido em 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”, e prefer_mxc = true em [features] para a CLI; allow_mxc = false em [windows] no requirements.toml o bloqueia; um teste de um único comando documentado para “Codex CLI 0.162.0 and later” com a saída esperada MXC_OK; as reservas legadas [windows] sandbox = "elevated" (“the preferred legacy fallback”) e "unelevated" (“a legacy fallback” com “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” marcado como “Best effort”, com “Windows 10 version 1809 or newer is required” para o suporte ao console, Windows 10 mais antigo não recomendado; winget esperado para a configuração. Verificado pela primeira vez em 2026-09-06, quando a página descrevia só os dois modos legados. ↩↩↩↩↩↩↩↩

  9. OpenAI, lançamentos do openai/codex – rust-v0.163.0 publicado em 15 de outubro de 2026 às 21:30 UTC como o lançamento mais recente, depois de rust-v0.160.0 (1º de outubro), rust-v0.160.1 (5 de outubro), rust-v0.161.0 (7 de outubro), rust-v0.162.0 (8 de outubro) e rust-v0.162.1 (9 de outubro); rust-v0.153.4 era o mais recente em 4 de setembro de 2026 (pela leitura de 6 de setembro; a listagem de 15 de outubro volta até 1º de outubro). Datas da API de releases do GitHub. ↩↩↩

  10. npm, @openai/codex – latest = 0.163.0 (publicada em 2026-10-15 às 21:37 UTC), alpha = 0.163.0-alpha.11 (publicada em 2026-10-14 às 03:38 UTC) e engines: { node: ">=16" } na 0.163.0, pelo documento do registro em 2026-10-15; latest era 0.153.4 em 2026-09-06, e o mapa time do documento lista catorze versões estáveis depois da 0.146.1 até a 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, documentação do Codex CLI – a instalação abre com o instalador independente (curl -fsSL https://chatgpt.com/codex/install.sh | sh no macOS e no Linux, uma aba de instalador para Windows), apresenta Homebrew e npm como alternativas e cita executar o instalador de novo como a atualização para instalações independentes. Verificado em 2026-09-06 e de novo em 2026-10-15, quando as abas de instalação eram macOS/Linux, Windows, npm e Homebrew. ↩↩↩↩↩↩

  12. OpenAI, o script de instalação install.sh conforme servido em 2026-09-06 e relido em 2026-10-15 – Usage: install.sh [--release VERSION]; variáveis de ambiente CODEX_RELEASE (“Version to install; overridden by –release”), CODEX_INSTALL_DIR (padrão ~/.local/bin), CODEX_HOME (padrão ~/.codex) e CODEX_INSTALLER_USE_RELEASES_OPENAI_COM (“Set to 0, false, or no to use GitHub Releases”); versões guardadas em ~/.codex/packages/standalone/releases atrás de um link simbólico current, com um link simbólico codex (e codex-code-mode-host no macOS) no diretório bin; um bloco de PATH # >>> Codex installer >>> / # <<< Codex installer <<< acrescentado a ~/.zprofile, ~/.bash_profile, ~/.zshrc, ~/.bashrc ou ~/.profile quando o diretório bin ainda não está no PATH ou uma instalação gerenciada concorrente foi detectada (add_to_path só retorna cedo em uma correspondência de PATH se nenhum conflito foi encontrado); e a verificação de instalações concorrentes que avisa “Multiple managed Codex installs can be ambiguous because PATH order decides which one runs” e oferece brew uninstall --cask codex, npm uninstall -g @openai/codex ou bun remove -g @openai/codex. A cópia de 2026-10-15 acrescenta CODEX_NON_INTERACTIVE (“Set to 1, true, or yes to skip prompts”) ao texto de uso; um modo só de daemon (CODEX_INSTALL_DAEMON_ONLY=1, raiz ~/.codex/packages/app-server-daemon, registro do atualizador app-server-daemon/daemon-updater.pid, arquivo marcador auto-update-version, gravado em uma instalação latest e removido em um lançamento explícito no fim do script) com o comentário “An explicit daemon update may leave a local or pinned release. Scheduled updates still require the selected release to follow the latest channel.” na verificação que encerra quando o lançamento selecionado não é o registrado; e uma preferência pelo asset codex-package-<target>.tar.gz verificado contra codex-package_SHA256SUMS, com o tarball npm da plataforma como layout legado. Os bin/codex, bin/codex-code-mode-host e codex-path/rg do pacote se tornam executáveis, e o link codex-code-mode-host só é criado no macOS; o atualizador roda como o subcomando app-server daemon pid-update-loop (a verificação de propriedade do script na linha 1266 o invoca com --check-package-ownership). ↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  13. OpenAI, notas de lançamento do Codex CLI v0.149.0, 20 de agosto de 2026 – inclui #39630, “Retire the untrusted approval policy”, e “codex doctor now diagnoses endpoint protection, network/proxy failures, desktop app state, and update connectivity.” ↩↩

  14. OpenAI, Codex on Windows: WSL, verificado de novo em 2026-10-15 – “Use Codex CLI with WSL”: wsl --install, abrir um shell do WSL, depois curl -fsSL https://chatgpt.com/codex/install.sh | sh e codex; a página também recomenda manter os repositórios no diretório home do Linux em vez de caminhos /mnt/c/ montados do Windows, para E/S mais rápida. ↩

  15. Reprodução do autor no Codex CLI 0.153.4 (instalação por npm), 2026-09-06: codex doctor --summary --no-color imprime as seções Notes, Environment, Configuration, Desktop App, Updates, Connectivity e Background Server nessa ordem; codex doctor --help lista --ascii. ↩

  16. OpenAI, referência de configuração do 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 em 2026-09-06 e em 2026-10-15. ↩

  17. OpenAI, o script de instalação install.ps1 conforme servido em 2026-09-06 e relido em 2026-10-15 – bloco de parâmetros param([string]$Release = $env:CODEX_RELEASE) com latest como reserva; $codexHome = CODEX_HOME ou %USERPROFILE%\.codex; packages\standalone contendo releases\, uma junção current e install.lock; o diretório bin visível %LOCALAPPDATA%\Programs\OpenAI\Codex\bin (ou CODEX_INSTALL_DIR) criado como junção para current\bin; o Path de escopo de usuário gravado com [Environment]::SetEnvironmentVariable("Path", ..., "User") (“PATH updated for future PowerShell sessions.”). A cópia de 2026-10-15 calcula o SHA-256 do arquivo com .NET (SHA256CryptoServiceProvider) e o compara com o codex-package_SHA256SUMS do lançamento, lançando “Downloaded Codex archive checksum did not match expected digest” se não baterem. ↩↩↩↩

  18. OpenAI, notas de lançamento do Codex CLI v0.162.0, 8 de outubro de 2026 – “Publish a signed PowerShell installer with Windows releases. (#51158)” e “Fix archive checksum verification when installing through Windows PowerShell with PowerShell 7 module paths present. (#51257)”. PR #51158, mesclado em 5 de outubro de 2026: “sign scripts/install/install.ps1 with Azure Trusted Signing in the x64 release job” e “publish the signed artifact as install.ps1 instead of copying the unsigned source”. PR #51257, mesclado em 6 de outubro: “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, mesclado em 2 de outubro de 2026 e listado nas notas de lançamento da v0.162.0; a descrição do 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 na tag rust-v0.163.0 – “codex-app-server-daemon is experimental and its lifecycle contract may change”; os oito 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” com o exemplo "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” e “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”; a tabela de situações (“the selected release stays pinned” quando o instalador selecionou um lançamento explícito; “the running server restarts with the new binary before the updater replaces itself”); os arquivos de estado em CODEX_HOME/app-server-daemon/ como o README os lista (settings.json, app-server.pid, app-server-updater.pid, daemon.lock; os daemon.pid e daemon-updater.pid do daemon dedicado vêm do código-fonte, abaixo); “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” e “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” e “A bare executable cannot supply a new installation”. Os nomes dos arquivos pid vêm do código-fonte na mesma tag, 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" (linhas 54 a 57), o par legado escolhido só quando o binário gerenciado está em packages/standalone (linhas 334 a 337 e 376 a 379), stop parando o backend em execução (linha 615) e o atualizador parado por ensure_managed_updater em um início, um reinício ou uma mudança de controle remoto (linhas 893 a 930) e em dois outros caminhos do ciclo de vida (linhas 474 a 477 e 829 a 832), nunca por stop, junto com a frase do README “the updater loop is not reboot-persistent” (linha 145); as linhas de comando de src/backend/pid.rs (linhas 385 a 401: app-server --listen unix:// para o servidor, app-server --remote-control --listen unix:// com o controle remoto ligado, app-server daemon pid-update-loop para o atualizador). Também OpenAI, notas de lançamento do Codex CLI v0.157.0, publicadas em 25 de setembro de 2026 às 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”, cujo pull request começa com “Daemon updates discard installer stderr”; v0.163.0, 15 de outubro – “Restart a managed background server from /daemon. Codex warns about work the restart could interrupt, then reconnects automatically. (#53173)” e “#52223 Enforce application network policy for daemon updates”. O modo daemon do instalador e a verificação de atualização dele estão na nota 12. ↩↩↩↩↩↩↩↩

  21. OpenAI, notas de lançamento do Codex CLI v0.161.0, 7 de outubro de 2026 – “Publishing an older alpha or hotfix no longer moves npm alpha tags backward. (#49704)”. ↩

  22. OpenAI, notas de lançamento do Codex CLI v0.162.0 – “#50200 Report the configured TUI mode in codex doctor”. ↩

Artigos relacionados

Instalar e atualizar o Claude Code CLI: Mac, Linux, Windows

Todas as formas de instalar, atualizar, fixar e desinstalar o Claude Code CLI -- instalador nativo, Homebrew, winget ou …

7 min de leitura

Codex aposentou a política untrusted: o que mudar

O Codex CLI 0.149 aposentou a política de aprovação untrusted e agora se recusa a iniciar com ela. O erro, quem precisa …

14 min de leitura

Foundation Models a partir do Python: a CLI fm

O macOS 27 traz a CLI fm e um Foundation Models SDK para Python: crie scripts para o modelo on-device da Apple e pipelin…

12 min de leitura