Yeachan-Heo/oh-my-codex · error
omx question cannot open a visible renderer because this pro
Error message
omx question cannot open a visible renderer because this process is outside an attached tmux pane and has no explicit tmux return bridge. Codex App/outside-tmux sessions need an attached tmux OMX CLI session or OMX_QUESTION_RETURN_PANE bridge. Run omx question from inside tmux.
What it means
launchQuestionRenderer chooses a strategy (inside-tmux, bridge via OMX_QUESTION_RETURN_PANE, etc.); when it computes 'unsupported' it throws this guidance message. It means the process is not inside an attached tmux pane AND no explicit return bridge env var is set, so there is no way to show the interactive UI and return focus afterwards — typical for Codex App or other non-tmux hosts.
Source
Thrown at src/question/renderer.ts:830
sleepSync?: SleepSync;
spawnDetachedRenderer?: SpawnDetachedRenderer;
} = {},
): QuestionRendererState {
const strategy = deps.strategy ?? resolveQuestionRendererStrategy(options.env ?? process.env, undefined, {
cwd: options.cwd,
sessionId: options.sessionId,
platform: options.platform,
stdinIsTTY: options.stdinIsTTY,
stdoutIsTTY: options.stdoutIsTTY,
});
const execTmux = deps.execTmux ?? defaultExecTmux;
const sleepImpl = deps.sleepSync ?? sleepSync;
const spawnDetachedRenderer = deps.spawnDetachedRenderer ?? defaultSpawnDetachedRenderer;
const launchedAt = options.nowIso ?? new Date().toISOString();
const env = options.env ?? process.env;
if (strategy === 'unsupported') {
throw new Error(
'omx question cannot open a visible renderer because this process is outside an attached tmux pane and has no explicit tmux return bridge. Codex App/outside-tmux sessions need an attached tmux OMX CLI session or OMX_QUESTION_RETURN_PANE bridge. Run omx question from inside tmux.',
);
}
const returnTarget = resolveReturnTarget({
cwd: options.cwd,
env,
sessionId: options.sessionId,
});
const commandArgs = buildQuestionUiTmuxArgs(options.recordPath, {
cwd: options.cwd,
env: options.env,
sessionId: options.sessionId,
returnTarget,
underCmux: isRunningUnderCmux(env),
});
if (strategy === 'windows-psmux-shell-pane') {View on GitHub (pinned to 3ad79a8a6f)
Solutions
- Run omx from inside an attached tmux session (tmux attach, then run omx question).
- Alternatively, set OMX_QUESTION_RETURN_PANE to a live tmux pane id (from `tmux display-message -p '#{pane_id}'`) to provide an explicit bridge.
- If headless/CI, use a non-interactive question mode instead of the tmux UI if available.
Example fix
# before omx question # run from a plain (non-tmux) terminal # after tmux omx question # or: OMX_QUESTION_RETURN_PANE=%42 omx question
Defensive patterns
Strategy: try-catch
Validate before calling
const insideTmux = !!process.env.TMUX;
const hasBridge = !!process.env.OMX_QUESTION_RETURN_PANE;
if (!insideTmux && !hasBridge) { /* use non-interactive mode instead of launchQuestionRenderer */ } Try / catch
try { launchQuestionRenderer(opts); } catch (e) { if (e instanceof Error && /outside an attached tmux pane/.test(e.message)) { /* prompt via stdout / non-interactive path */ } else throw e; } Prevention
- Run omx from inside an attached tmux session by default.
- For Codex App hosts, set OMX_QUESTION_RETURN_PANE to a live pane in an attached session.
- Detect headless environments up front and select a non-interactive question strategy.
When it happens
Trigger: Running omx question from a plain terminal (no TMUX env), from an IDE/Codex App integration, or a headless process, without setting the OMX_QUESTION_RETURN_PANE environment variable to an existing tmux pane id.
Common situations: Codex App / out-of-tmux sessions; CI jobs; users who detached from tmux but kept stale TMUX vars partially set.
Related errors
- [sparkshell] raw fallback failed: executable not found (${in
- Failed to create tmux question renderer container.
- Question UI pane ${paneId} disappeared immediately after lau
- Unable to resolve OMX CLI entry path for question UI launch.
- Failed to create psmux question renderer shell pane.
AI-assisted analysis of Yeachan-Heo/oh-my-codex@3ad79a8a6f (2026-08-27).
Data as JSON: /api/errors/9a227a1e3650fa02.
Report an issue: GitHub.