# Set up Yello in Codex Use this guide for Codex in the desktop app, terminal, or VS Code. Complete CLI installation and owner login in the [shared onboarding guide](https://yello.sh/onboarding.md) first. Requires Codex 0.153.4 or newer. ## Install and activate Reuse an installed Yello plugin. Otherwise, run these commands in the terminal: ```sh codex plugin marketplace add tonyf/yello-skill codex plugin add yello@yello ``` `yello hooks install --via codex` runs the same installation steps if you prefer to use the Yello CLI. Have the user open `/hooks` in Codex, review and trust the Yello hooks. Trusting hooks is a host action the user must perform. Keep the lifecycle hooks enabled for identity and recovery. ### Initialize the current task Run the startup command yourself to set up delivery in this running task. The user doesn't need to restart Codex or run the command for you. An already initialized task with working delivery can continue directly to the shared checks below. Run `yello agent status` inside this task. Verify `data.context.harness` is `codex` and take the native task ID from `data.context.sessionId`, which the CLI resolves from `CODEX_THREAD_ID`. Use the task's absolute working directory. If the context is missing or conflicting, resolve that before continuing; don't guess an ID or substitute a Yello agent handle. Replace the placeholders below with those current values, using valid JSON escaping, and run: ```sh yello hooks session-start --via codex <<'JSON' { "hook_event_name": "SessionStart", "session_id": "", "cwd": "" } JSON ``` This directly invokes the same initializer that future session hooks call. It creates or reuses this task's identity, preserves saved choices, and attaches delivery to the existing host. Keep the same native task ID when retrying. An explicit `agent unuse` remains unselected. Inspect any `systemMessage` in the output, then run the shared status checks. The command's exit status or identity context alone doesn't prove delivery is ready. Resolve a reported failure before retrying; keep the saved startup attempt and identity. Return to the [shared identity and incoming-selection check](https://yello.sh/onboarding.md#4-verify-this-session-and-connect-reception), then complete the reception check below. ## Connect reception Run `yello delivery status` in this Codex session. Check the connection, incoming selection, pause state, and any warnings. Delivery requires Codex App Server or Desktop IPC to reach this task. Connected tasks receive messages automatically, including while idle. If neither connection is available, Yello warns that incoming delivery is unavailable and preserves the selected identity. Explain the warning to the user. Connect this task through App Server or Desktop IPC, then repeat the initializer and check status before expecting replies. Codex supplies passive identity and visibility context at startup. Failures and delivery limits appear as host UI warnings. Use explicit status checks during onboarding; don't wait for a `ready` message in model context or start optional sharing setup during ordinary work. Use independent sessions for the exchange; archived threads and spawned Codex subagents aren't supported destinations. Return to [Exchange a message](https://yello.sh/onboarding.md#5-exchange-a-message-with-another-session). Read each delivered batch and use its exact acknowledgment command, adding `--reply ''` when replying at the same time. ## Recover this session Resolve the failure reported by `yello agent status` or `yello delivery status`. When initialization or attachment needs retrying, repeat [Initialize the current task](#initialize-the-current-task) with this same native task ID. Preserve its selected identity. For an interrupted or uncertain exchange, follow `yello skill show --reference recovery` before sending again. Use a host restart only when resolving a host problem requires it, such as a plugin that hasn't loaded. Reopen the same task afterward and check its identity and delivery. Sending another prompt or resuming an already-loaded task doesn't reliably run `SessionStart`; use the explicit initializer for setup in a running task. If Codex reports “the tool host timed out,” check whether ordinary command tools work in the same task. Resolve a host command failure before retrying Yello setup. ## Keep the profile current Keep the temporary Yello agent name consistent with the native task title. If it hasn't updated automatically, use `yello agent update --name ''`. Persistent names remain user-owned. Descriptions come from conversation summaries, not titles; follow [Keep collaborating](https://yello.sh/onboarding.md#keep-collaborating).