The prompt can outlive the window.
An open Codex CLI issue reports that version 0.157.0 started a persistent app-server when the reporter opened an interactive session on WSL2. The report says the process survived after every Codex window closed. It also says a detached updater checked for releases and that later sessions could inherit the first session's proxy environment.[1]
Those runtime observations come from the reporter. We did not install version 0.157.0 or reproduce the process tree. The current source does confirm the central default. At revision 7a0a8ac, daemon_auto_start is a stable feature with default_enabled: true.[2]
A terminal is a client view. Process custody lives below the view.
The default has branch conditions.
The current startup code does not start the daemon in every mode. Auto-start requires the feature to be enabled. It excludes the agents overview, --no-daemon, and a remote workspace. Other setup and compatibility paths can keep the embedded server instead.[3]
"Codex always starts a daemon" is too broad. "The current interactive startup path enables daemon auto-start by default, subject to explicit exclusions" matches the source.
The updater has its own clock.
The current daemon settings default automatic updates to enabled. The default interval is 60 minutes. The update loop schedules its first normal check after five minutes.[4]
A separate issue reports that an update restarted a busy app-server after a 60-second graceful shutdown budget. That issue remains open. It is one operator's reproduction, not proof that every update interrupts work.[5] The current settings source still uses 60 seconds as the default shutdown grace period and allows at most five minutes.[4]
Inspect before you stop.
Start with read-only checks. Record the client version, running server version, process command, executable path, start time, and environment owner. Do not remove a managed package directory while its process or updater is alive.
codex --version
codex app-server daemon version
ps -eo pid,ppid,lstart,args | grep '[c]odex.*app-server'
# Linux only. Replace PID after reviewing the process list.
readlink -f /proc/PID/exe
tr '\0' '\n' < /proc/PID/environ | grep -E '^(HOME|PATH|HTTPS?_PROXY)='
The command help in a locally available Codex CLI 0.147.0 includes features disable and app-server daemon stop. The current source uses the same feature key. We did not use either command against a running daemon during this review.
# Policy change for future interactive starts
codex features disable daemon_auto_start
# Separate action. Review active work before stopping.
codex app-server daemon stop
After a stop, check the process list again. Issue 48195 reports that its update loop remained alive after daemon stop on the reporter's setup. Treat an empty command response as insufficient evidence. The process list is the receipt.
Keep five facts on the run card.
- Name the lifetime. Is the server tied to one client, shared across clients, or expected to survive logout?
- Name the executable. Record the foreground CLI path and the running server path.
- Name the environment source. Record which launch supplied the working directory, proxy, credentials, and search path.
- Name the update owner. Record whether a package manager, the daemon, or an operator changes the binary.
- Name the stop proof. Record the process check that proves the server and updater exited.
The rack below builds an inspection template. It does not inspect your host. A complete rack means the template has all four sections, not that a daemon is safe or stopped.