Pimp My IDE / garage dispatchBack to the garage
October 12, 2026 / coding CLI / background process custody

Your terminal closed. What kept running?

A command-line tool can look temporary while a shared server keeps its process, executable, environment, and updater alive. Inspect those four facts before calling the session local.

Foreground interface does not prove foreground lifetime.

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.

  1. Name the lifetime. Is the server tied to one client, shared across clients, or expected to survive logout?
  2. Name the executable. Record the foreground CLI path and the running server path.
  3. Name the environment source. Record which launch supplied the working directory, proxy, credentials, and search path.
  4. Name the update owner. Record whether a package manager, the daemon, or an operator changes the binary.
  5. 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.

Interactive makeover / a binary on-off toggle replaced with a custody backplane

Wire the daemon custody rack.

A normal background-process toggle hides who launched the server, what it runs, and who can replace it. These native checkboxes select the sections your inspection packet must request. The shared bus makes their common destination visible.

LifetimeExecutableEnvironmentUpdater

Inspection breakers

Select the evidence sections you want in the packet. Each circuit is independent. Selection does not prove the evidence exists.

Choose daemon inspection sections

This replaces a standard inspection checklist. Each independent requirement touches one shared packet bus, so a missing circuit stays visible.

0 / 4 sections selectedPacket empty

Choose what the packet must request.

No host data has been attached. Select sections to build the inspection structure.

Sources read / October 12, 2026

Source log

Open the source and issue record
  1. OpenAI Codex issue 48195, "CLI: make daemon_auto_start opt-in", opened September 25 and read October 12, 2026. The reporter describes the behavior observed with Codex CLI 0.157.0 on WSL2, including process persistence, package copying, updater behavior, and inherited proxy state. These are reported observations, not our reproduction.
  2. OpenAI Codex source, feature declaration at revision 7a0a8ac, read October 12, 2026. The source marks daemon_auto_start stable and enabled by default.
  3. OpenAI Codex source, TUI startup orchestration at revision 7a0a8ac, read October 12, 2026. The branch shows the feature check, exclusions, daemon start, and local-daemon selection.
  4. OpenAI Codex daemon settings and update loop at revision 7a0a8ac, read October 12, 2026. These files support the automatic-update, 60-minute interval, 60-second grace, and five-minute initial-delay claims.
  5. OpenAI Codex issue 40969, "app-server daemon: auto-update force-kills active turns after a 60s drain budget", opened August 26 and read October 12, 2026. The issue provides one operator's incident report and source references. It remains open.
  6. Hacker News item 50060694, resolved through the official API and read October 12, 2026. It was the discovery route. Its score and comments support none of the technical claims.

Evidence boundary. The current repository was cloned read-only at revision 7a0a8ac9c4aba9b687e5a11b5daa6404dab09728. We inspected source and issue reports. We did not install Codex 0.157.0, start its daemon, inspect its package copy, trigger an update, or reproduce the reported stop behavior. The interactive rack builds a template only.