開發生態
Codex CLI 0.157.0 預設啟動持久化自更新 daemon,關閉視窗後仍持續執行
Hacker News單一來源
核實資料不足
目前依單一來源整理,這是來源數量描述,不是對消息真假的判定。
本次未取得足夠原文證據
GitHub issue #48195 指出,Codex CLI 0.157.0 自 0.157.0 起,使用者只要開啟互動式工作階段,就會預設啟動持久化的背景 daemon(`codex app-server --managed-daemon`);即使關閉 Codex 視窗,程序仍會持續執行,直到執行 `codex app-server daemon stop` 或重新開機。問題回報者是在透過 npm 安裝、並於 Linux WSL2 使用 Codex CLI 時觀察到這項行為,另有使用 Windows 10 LTSC 的使用者表示同樣能重現。
該 daemon 會把約 374MB 的整個平台套件,包括 `codex`、`codex-code-mode-host` 及內含的 `bubblewrap`、`zsh`、`rg`,複製到 `~/.codex/packages/app-server-daemon/releases/<version>/` 後執行,因此後端版本可能與套件管理器安裝的 CLI 脫鉤。隨後啟動的 `pid-update-loop` 會在啟動 5 分鐘後首次檢查更新,之後每小時檢查、下載新版本並重啟後端;另一則相關 issue 指出,自動更新在等待 60 秒讓作用中的工作排空後,仍可能強制終止工作,且無法停用。
回報也指出,daemon 會沿用最初啟動它的工作階段環境,例如第一個工作階段設定的 `HTTPS_PROXY`,後續工作階段即使使用不同設定,對外連線仍可能經由原代理伺服器;`--remote` 模式的 hooks 也可能取得 daemon 的工作目錄,而非目前工作階段的目錄,並無法辨識發起請求的終端機。
問題回報者建議將 `daemon_auto_start` 改為預設關閉,或只在使用者明確執行 daemon 啟動命令、Remote Control 或桌面應用程式時啟用;若維持預設啟動,則至少應在最後一個用戶端中斷連線時退出,並讓透過 npm、brew 或 pacman 安裝的 CLI 使用已安裝的執行檔,而非複製後自行更新的版本。另有回報稱,執行 `codex app-server daemon stop` 只會停止 app-server,`pid-update-loop` 仍可能存活,必須手動終止。
目前可用的處理方式是執行 `codex features disable daemon_auto_start`,再停止 daemon;回報者也刪除了 `~/.codex/packages/app-server-daemon`。在 Windows 上,將 `daemon_auto_start = false` 寫入 `config.toml` 被回報可解決問題。OpenAI 尚未在這則 issue 中提出修正版本。
讀原始報導背景
codex-app-server-daemon 目前仍是實驗性功能,其生命週期規範可能隨遠端管理流程開發而變動。它支援 Codex 的機器可讀 app-server 生命週期指令,主要服務於 desktop、mobile 等遠端用戶端,也預計用於透過 SSH 啟動的 Codex 執行個體。
社群討論
整體風向強烈質疑 Codex CLI 預設安裝常駐、自動更新 daemon,認為它繞過 package manager、混淆狀態與設定,並帶來權限被改成唯讀、環境變數繼承失效、Windows 重複開啟主控台及可靠性不足等問題;有使用者反映舊版本累積佔用約 12GB,甚至因此不再信任 Codex。部分留言指出可用 `daemon_auto_start = false`、`--no-daemon` 或自訂 launcher 繞過,也有人認為 Claude Code 有類似模式,並補充可改用較精簡的 harness、容器或自行管理版本。