codex resume dumps raw base64 of inline images to the terminal (IntelliJ IDEA terminal, 0.143.0)

Open 💬 4 comments Opened Jul 8, 2026 by angoxxx

What version of Codex CLI is running?

0.143.0

What subscription do you have?

/

Which model were you using?

gpt-5.5

What platform is your computer?

_No response_

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

IntelliJ IDEA terminal

Codex doctor report

What issue are you seeing?

What happened?

After upgrading to codex-cli 0.143.0, running codex resume on a session whose history contains an inline image (a pasted screenshot / input_image) causes Codex to spam the terminal with the raw base64 of the image instead of rendering (or skipping) it. Output looks like repeated inline-image / Kitty graphics protocol leaking as plain text, e.g.:

Ga=T,t=d,f=100,c=9,r=5,q=2,i=49374,m=1;iVBORw0KGgoAAAANSUhEUgAA... (thousands of base64 chars) ...

This happens in terminals without terminal-graphics support — here, the IntelliJ IDEA built-in terminal. The same session resumed fine on the previous version, and resuming in iTerm2/kitty/WezTerm doesn't spam.

Environment: codex-cli 0.143.0 · macOS (Darwin 25.5.0), Apple Silicon · IntelliJ IDEA built-in terminal

Notes: Likely introduced by 0.143.0's resume history replay (#28426 "Share resumed rollout history"). Same area as #31222 (slow resume with multiple terminal images) and #31040 (compaction re-embeds screenshots). Suggested fix: gate inline-image emission on detected terminal graphics capability + text fallback.

What steps can reproduce the bug?

Steps to reproduce

  1. On 0.143.0, have a session whose history contains an inline image.
  2. Exit the session.
  3. In a terminal without graphics support (IDEA built-in terminal), run codex resume and pick that session.
  4. Raw base64 floods the terminal on history replay (needs reset to recover).

What is the expected behavior?

Expected: render only when the terminal advertises graphics support, else fall back to a [image] text placeholder — never emit raw base64.

Actual: full image payload dumped as raw base64, garbling the terminal.

Additional information

_No response_

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗