Summary
Open Design detects Codex CLI in the local agent setup screen and allows it to be selected, but generation is not actually usable from this environment because codex exec fails while creating its Codex session/runtime state.
This creates a confusing setup state: the UI reports Codex as installed/selectable, but the CLI cannot start a run.
UI evidence
In the setup screen at http://localhost:5173/:
Local CLI reports 3 installed.
Codex CLI is listed as installed with version codex-cli 0.125.0.
- Selecting Codex shows Codex-specific controls, including
Reasoning effort.
So PATH/version detection works, but runtime execution does not.
Reproduction
From the repo:
cd /Users/alche/Documents/agentic-editor/open-design
which codex
codex --version
codex exec --cd /Users/alche/Documents/agentic-editor/open-design --skip-git-repo-check 'Reply with exactly: codex-ok'
Observed output:
/opt/homebrew/bin/codex
WARNING: proceeding, even though we could not update PATH: Operation not permitted (os error 1)
codex-cli 0.125.0
WARNING: proceeding, even though we could not update PATH: Operation not permitted (os error 1)
Reading additional input from stdin...
2026-04-29T08:49:27.075237Z ERROR codex_core_skills::manager: failed to install system skills: io error while remove existing system skills dir: Operation not permitted (os error 1)
2026-04-29T08:49:30.337336Z ERROR codex_models_manager::manager: failed to refresh available models: stream disconnected before completion: error sending request for url (https://chatgpt.com/backend-api/codex/models?client_version=0.125.0)
2026-04-29T08:49:30.357373Z ERROR codex_core::session: Failed to create session: Operation not permitted (os error 1)
Error: thread/start: thread/start failed: error creating thread: Fatal error: Codex cannot access session files at /Users/alche/.codex/sessions (permission denied). If sessions were created using sudo, fix ownership: sudo chown -R $(whoami) /Users/alche/.codex (underlying error: Operation not permitted (os error 1))
What the app currently does
Detection appears to be based on PATH/version probing in daemon/agents.js. Since codex --version succeeds, the app marks Codex as available.
Generation later calls the adapter from daemon/server.js, which spawns something equivalent to codex exec .... That call can fail because Codex needs access to ~/.codex/sessions and system skill/runtime state.
Expected behavior
Open Design should distinguish:
- CLI binary found on PATH.
- CLI can actually start a non-interactive run from the daemon environment.
If runtime probing fails, the UI should show Codex as installed but not currently usable, with the stderr reason or a concise remediation hint.
Suggested fix
Add a deeper health check for Codex during agent detection or before first generation, for example:
codex exec --skip-git-repo-check --ephemeral 'health check'
or another cheap command that verifies Codex can create/start a session from the daemon process environment.
Then expose a state like:
installed: true
available: false
reason: Cannot access ~/.codex/sessions from this process
This would prevent the current mismatch where Codex is selectable even though generation cannot start.
Environment
- Open Design local app:
http://localhost:5173/
- Repo:
nexu-io/open-design
- Codex CLI path:
/opt/homebrew/bin/codex
- Codex CLI version:
codex-cli 0.125.0
- macOS local environment
Summary
Open Design detects
Codex CLIin the local agent setup screen and allows it to be selected, but generation is not actually usable from this environment becausecodex execfails while creating its Codex session/runtime state.This creates a confusing setup state: the UI reports Codex as installed/selectable, but the CLI cannot start a run.
UI evidence
In the setup screen at
http://localhost:5173/:Local CLIreports3 installed.Codex CLIis listed as installed with versioncodex-cli 0.125.0.Reasoning effort.So PATH/version detection works, but runtime execution does not.
Reproduction
From the repo:
Observed output:
What the app currently does
Detection appears to be based on PATH/version probing in
daemon/agents.js. Sincecodex --versionsucceeds, the app marks Codex as available.Generation later calls the adapter from
daemon/server.js, which spawns something equivalent tocodex exec .... That call can fail because Codex needs access to~/.codex/sessionsand system skill/runtime state.Expected behavior
Open Design should distinguish:
If runtime probing fails, the UI should show Codex as installed but not currently usable, with the stderr reason or a concise remediation hint.
Suggested fix
Add a deeper health check for Codex during agent detection or before first generation, for example:
or another cheap command that verifies Codex can create/start a session from the daemon process environment.
Then expose a state like:
installed: trueavailable: falsereason: Cannot access ~/.codex/sessions from this processThis would prevent the current mismatch where Codex is selectable even though generation cannot start.
Environment
http://localhost:5173/nexu-io/open-design/opt/homebrew/bin/codexcodex-cli 0.125.0