docs(codex-first): cover ChatGPT-app-bundled Codex on PATH#29
Conversation
Codex merged into the ChatGPT desktop app (July 2026), so the CLI now also ships as a bundled binary at /Applications/ChatGPT.app/Contents/Resources/codex. Document both install shapes and the symlink trap: the bundled binary resolves sibling helpers (e.g. codex-code-mode-host) relative to its invocation path, so symlinking it onto PATH makes exec fail with "the workspace execution host is missing" (agent runs, file edits fail). Use an exec-wrapper or the standalone installer instead. Reproduced on codex-cli 0.144.0-alpha.4: symlink -> fail, exec-wrapper -> ok, direct binary -> ok.
|
Codex review: needs changes before merge. Reviewed July 16, 2026, 9:17 AM ET / 13:17 UTC. Summary Reproducibility: not applicable. as a bug classification, although the PR supplies convincing live CLI output reproducing the documented symlink failure and validating the wrapper behavior. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge
Security Review findings
Review detailsBest possible solution: Keep the focused install guidance, but make the wrapper discoverable by explicitly handling PATH and make launcher creation refuse both existing files and dangling symlinks. Do we have a high-confidence way to reproduce the issue? Not applicable as a bug classification, although the PR supplies convincing live CLI output reproducing the documented symlink failure and validating the wrapper behavior. Is this the best way to solve the issue? No; the exec-wrapper direction is appropriate, but the current recipe must handle PATH discovery and dangling symlinks before it is safe and effective documentation. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 2de62bda0d58. Label changesLabel changes:
Label justifications:
Evidence reviewedSecurity concerns:
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (2 earlier review cycles)
|
…afe wrapper - Narrow the no-symlink rule to the ChatGPT-app-bundled binary; package manager symlinks/shims (npm/standalone) are fine and no longer discouraged. - Make the wrapper recipe non-destructive: `mkdir -p ~/.local/bin` first and skip if a launcher already exists, so it works on a fresh app-only machine and never clobbers an existing codex. Addresses ClawSweeper P2 findings on PR steipete#29.
|
Thanks for the review — addressed both P2 findings and the P1 proof gap in a9293db:
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Maintainer update at
Proof: Black-box wrapper probes in isolated temporary HOME directories: Live E2E through a temporary exec-wrapper to the app-bundled binary, using the existing signed-in context: Autoreview: Codex @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Follow-up at Observable auth probe, with no credential contents read:
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Codex merged into the ChatGPT desktop app (July 2026), so the CLI now also ships as a bundled binary at
/Applications/ChatGPT.app/Contents/Resources/codex.Document both install shapes and the symlink trap: the bundled binary resolves sibling helpers (e.g.
codex-code-mode-host) relative to its invocation path, so symlinking it onto PATH makesexecfail with "the workspace execution host is missing". Use an exec-wrapper or the standalone installer instead.Review updates (addresses ClawSweeper findings)
mkdir -p ~/.local/binfirst and skips if a launcher already exists, so it works on a fresh app-only machine and never clobbers an existingcodex.Behavior proof (codex-cli 0.144.0-alpha.4, macOS)
Isolated repro — identical prompt and flags (
exec --yolo --skip-git-repo-check -m gpt-5.6-sol -c model_reasoning_effort=low --disable fast_mode), only the launcher varies:Unable to create ok.txt: the workspace execution host is missing(agent runs, file edit fails)ok.txtcreated, contentshiok.txtcreated, contentshiSame binary in all three runs; the only difference is whether it was reached through a symlink. That isolates the failure to symlink invocation of the app-bundled binary (helper resolution relative to
argv[0]), not symlinks in general — which is why the fix scopes the warning to the app bundle.