Codex transport
Codex is integrated through @openai/codex-sdk and a bundled, per-platform native runtime that must remain executable in packaged builds.
The Codex adapter (src/main/agents/codex) uses @openai/codex-sdk, but getting a working Codex executable resolved is more involved than for Claude Code, because Codex's SDK bundles its own native runtime as an optional per-platform dependency.
Executable resolution
codex-runtime-resolver.ts checks, in order: a custom path override, the SDK's own bundled native runtime (resolved from a per-platform optional package such as @openai/codex-win32-x64), then a standalone codex installation. This tiered approach exists specifically because a bare codex on Windows PATH commonly resolves to an npm .cmd shim that the SDK's spawn call can't launch directly — see OpenAI Codex.
Packaging implication
The optional native package's vendor/<target-triple>/bin/ directory ships real executables that must be spawned directly from disk — they can't run from inside app.asar. This is why electron-builder.yml explicitly asarUnpacks any @openai/codex-*-* package; see Packaging.
Permissions and model catalogue
Codex has no live interactive approval channel — its sandbox tier (default, read-only, workspace-write, danger-full-access, bypass) is fixed at thread creation, not switched mid-session. The model catalogue is fetched live from the CLI's own app-server rather than hardcoded.