Skip to content

Zellij scrollback still broken with --no-alt-screen (full-screen redraw in main buffer) #10331

@DamianPala

Description

@DamianPala

What version of Codex is running?

0.93.0

What subscription do you have?

Plus

Which model were you using?

No response

What platform is your computer?

Linux 6.2.0-35-generic x86_64 x86_64

What terminal emulator and version are you using (if applicable)?

Ghostty

What issue are you seeing?

Scrollback in Zellij still does not work even when alternate screen is disabled (--no-alt-screen / tui.alternate_screen="never"). This looks like a different root cause than #2558: Codex keeps doing full-screen redraws in the main buffer (cursor addressing, clears, scroll regions), so Zellij does not accumulate scrollback lines.

Versions

  • codex-cli: 0.93.0
  • zellij: 0.43.1
  • OS: Linux
  • TERM: xterm-256color

Environment notes

  • ZELLIJ is 0 by default in my session; I also tested with ZELLIJ=1 explicitly and behavior did not change.

What steps can reproduce the bug?

  1. Start Zellij.
  2. Run: codex --no-alt-screen
    (also tested codex -c 'tui.alternate_screen="never"' --no-alt-screen)
  3. Generate enough output to exceed pane height.
  4. Enter Zellij scroll/copy mode and try to scroll back.

What is the expected behavior?

Expected

Zellij pane scrollback should show earlier Codex output when alternate screen is disabled.

Actual

Only the current screen is visible; scrollback remains empty / truncated.

Additional information

Diagnostics

I captured terminal output with:

script -q -c "codex --no-alt-screen" /tmp/codex.tlog

Findings:

  • No alt-screen sequences (CSI ?1049h/?1047h/?47h not present)
  • No scrollback clear (CSI 3 J) and no terminal reset (ESC c)
  • Full-screen redraw patterns present (cursor addressing CSI row;col H, CSI J, CSI K, scroll regions CSI r, reverse index ESC M)
  • Synchronized output toggles (CSI ?2026 h/l) are present

This suggests --no-alt-screen keeps the full-screen TUI renderer, but just in the main buffer. Zellij doesn’t build scrollback from in-place redraws, so
there is still nothing to scroll.

Related

Possible direction

Add a true “inline / line-based output” mode (no cursor addressing / screen clears / scroll regions), or a config option that switches to a non-fullscreen renderer in Zellij.

Metadata

Metadata

Assignees

No one assigned

    Labels

    CLIIssues related to the Codex CLITUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal displaybugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions