Skip to content

Update the TUI onboarding to include a note about allowing Ei on Codex if it is detected #102

Description

@Flare576

Context

Discovered while porting Ei's WHO/MEMORY hooks to Codex (sisyphus/omp-hook-dedup). Verified live against the real codex-cli 0.142.3 binary: Codex requires an explicit trust review before any non-managed command hook runs at all, even with a perfectly-formed hooks.json already in place (developers.openai.com/codex/hooks — "Before a non-managed command hook can run, Codex requires you to review and trust the exact hook definition... new or changed hooks are marked for review and skipped until trusted").

A live codex exec smoke test against Ei's installed hooks confirmed this directly: the hook silently fired nothing until the invocation used --dangerously-bypass-hook-trust. For a real interactive user, the equivalent unblock is running /hooks once inside Codex to review and trust Ei's two hooks.

src/cli/install.ts's installCodexHooks() already prints a console message pointing at this (Use /hooks in Codex to review/trust the hooks if prompted...), but that message only appears if the user runs ei --install from a terminal and reads its output. The TUI's onboarding flow (tui/src/components/OnboardingOverlay.tsx) already detects Codex (detection().codex, line ~401) and offers to enable the integration, but has no equivalent note — unlike Cursor, which already has exactly this kind of harness-specific caveat:

<Show when={detection().cursor}>
  <text> </text>
  <text fg="#b58900">
    {"Cursor: enabling this installs a hook that injects your recent Ei\n" +
      "context into Cursor's prompts on every request — which may be sent\n" +
      "to Cursor's configured model backend."}
  </text>
</Show>

Without an equivalent for Codex, a user who enables the Codex integration during onboarding gets a hook installed that will silently do nothing until they separately discover and run /hooks inside Codex — no error, no warning inside the TUI itself, just an integration that appears enabled but never actually injects anything.

Proposal

Add a <Show when={detection().codex}> block alongside the existing Cursor one (tui/src/components/OnboardingOverlay.tsx, right after line ~419), following the same style, explaining that Codex requires a one-time /hooks review-and-trust step inside Codex itself before the installed hooks will do anything.

Acceptance Criteria

  • Onboarding shows a Codex-specific note (matching the Cursor note's placement/styling) when detection().codex is true and the user is offered the integration.
  • The note names the concrete required action: run /hooks inside Codex once to review and trust Ei's hooks, or they will not fire.
  • src/cli/install.ts's existing console message (non-TUI install path) is left as-is — this issue is scoped to the TUI onboarding surface specifically.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions