Skip to content

Codex CLI Integration

Séance integrates with OpenAI Codex CLI through built-in wrapper scripts and native hook support.

How It Works

  1. Wrapper script intercepts codex launches inside Séance terminals
  2. Built-in integration handles lifecycle events without requiring a plugin
  3. Status tracking updates the sidebar with real-time agent state

Hook Events

Codex EventSéance HookWhat It Shows
SessionStartsession-startRunning
UserPromptSubmitprompt-submitRunning
PreToolUsepre-tool-useRunning
PostToolUsepost-tool-useRunning
StopstopIdle
SessionEndsession-end(cleared)

Features

  • Per-surface status — each terminal pane tracks its own agent status independently
  • Session tracking — tracks session lifecycle from start to end
  • Desktop notifications — notifies on completion events

Configuration

Toggle integration on or off in config.toml:

toml
codex-hooks = true

Limitations

  • No notification support — Codex doesn't emit permission request events through the hook system Séance uses
  • No permission detection — when Codex prompts for permission, the sidebar shows "Running" instead of "Waiting for Permission"
  • No subagent tracking — Codex doesn't expose subagent lifecycle events to Séance

For Contributors

Integration Approach

Codex uses a built-in integration — no TypeScript plugin or Python plugin is required. The wrapper script (resources/bin/codex) intercepts launches for PID tracking and fires session-end on exit.

Event Mapping

Codex EventSeance HookUI Status
SessionStartsession-startRunning
UserPromptSubmitprompt-submitRunning
PreToolUsepre-tool-useRunning
PostToolUsepost-tool-useRunning
StopstopIdle
SessionEndsession-end(cleared)

Key Implementation Details

  • Status mode: Per-surface. Status key prefix codex, mode surface.
  • clear_status_on_end is true.
  • has_notification_hook is false.
  • Config toggle: codex-hooks = true in config.toml.
  • Cache directory: ~/.cache/seance-codex/ — cleaned up on session end.

Upstream Framework Events

Source: developers.openai.com/codex/hooks

Codex has a comprehensive hook system similar to Claude Code:

EventDescriptionSéance Handles?
SessionStartSession begins or resumesYes
SessionEndSession terminatesYes
UserPromptSubmitUser submits a promptYes
PreToolUseBefore tool call executesYes
PostToolUseAfter tool call succeedsYes
StopAgent finishes respondingYes
SubagentStartSubagent spawnedNo
SubagentStopSubagent finishesNo
PermissionRequestPermission dialog appearsNo
PreCompactBefore context compactionNo
PostCompactAfter compaction completesNo
StopFailureTurn ends due to API errorNo
PostToolUseFailureAfter tool call failsNo

Missing Event Coverage

Events that Codex can emit but Séance does not currently handle:

EventPotential Use for Séance
SubagentStart / SubagentStopSubagent count tracking
PermissionRequestPermission request notifications
PreCompact / PostCompactCompaction activity
StopFailureAgent idle/error states
PostToolUseFailureTool failure indicators

Impact: Codex has rich hook support but Séance's built-in integration doesn't leverage most events.

MIT Licensed