You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Provide a way to view the content of the background terminal #13858
There doesn't seem to be a way to view the full output of a background terminal. How can I inspect its complete content?
Additional information
No response
Reacted by Gilles Duboscq, Ignat Remizov, Marco Matthies, Cedric, Abel C Dixon, Gabriel Huang, Nulovrsis, mguegnol, Jeferson Lima, Michael Kossyrev and 29 more
changed the title [-]How can I view the full content of the background terminal?[/-][+]Provide a way to view the content of the background terminal[/+]on Mar 7, 2026
This looks fixable as a TUI-only change. The CLI already receives background-terminal output chunks; the main limitation today is that the TUI throws almost all of that away and /ps renders a heavily truncated history cell.
Current truncation points on main:
tui/src/chatwidget.rs
UnifiedExecProcessSummary only keeps recent_chunks: Vec<String>
track_unified_exec_output_chunk(...) keeps only the last 3 non-empty lines (MAX_RECENT_CHUNKS = 3)
tui/src/history_cell.rs
/ps only shows the first line of command_display
command preview is capped to 80 graphemes before width-based truncation
chunk previews are also width-truncated and suffixed with [...]
Suggested implementation:
Keep the footer summary as-is.
background terminal running · /ps to view · /clean to close is fine for the bottom pane.
Change /ps from “insert truncated history cell into transcript” to “open a pager overlay”.
Reuse the existing static pager overlay in tui/src/pager_overlay.rs
This avoids flooding transcript history and gives proper scrolling for long prompts/output
In tui/src/chatwidget.rs, replace recent_chunks: Vec<String> with a bounded per-process output buffer.
A VecDeque<String> line ring buffer is probably enough for an MVP
Bound it by total lines and/or bytes per process so memory stays predictable
Example target: keep the last 500-2000 lines or ~128-512 KiB per running process
No need for a config knob initially
Keep both:
a short single-line summary for the footer
the full wrapped command text for the /ps overlay
/ps overlay content should render, for each running process:
process id if available
full command/prompt text, wrapped, not first-line-only
buffered output below it, wrapped, not hard-truncated to 3 lines
Nice follow-up, but not required for MVP:
when the overlay is open, keep it live by rebuilding from the in-memory process buffers on each draw/tick
optionally add per-process sections or jump keys later
Why this seems low-risk:
No protocol change looks necessary for the CLI/TUI path
output chunks already reach ChatWidget; they are just summarized too aggressively today
the pager overlay already exists and is a better UI primitive than a transcript cell for this job
So the practical MVP is:
store more than 3 recent lines
stop using a transcript cell for /ps
open a scrollable overlay showing full wrapped command text and buffered output for each running background terminal
Reacted by Jiaxing Liu, ChristopherP1221 and Tommaso Thea Cioni
I've very recently switched from windsurf to codex and I'm missing this capability already. There is something strangely satisfying watching the actions stream by, whether you're in the loop or not. It's also a great way to catch and steer codex in a different direction if you're in a live troubleshooting session.
It's not a perfect solution, but a useful workaround for some may be to have logs be routed to a file (for instance, I just told codex to add a rotating file handler for my python app that I'm working on so tests give me an additional artifact for observation)
+1, I would love to see the behavior also, it would be especially helpful in scenarios where the background terminal gets stuck or has a strange error when running commands.
It seems to be resolved by using ctrl+t in the newest version of codex
This works but doesn't show the terminal output always. The panel opened from that command isn't smooth at all. Scrolling and display don't look good.
I prefer how Kiro IDE does it by showing you the terminal activities live in a normal IDE terminal panel. I can run my own commands in the terminal session, stop or kill that session easily. It's like owning full control of the terminal and the agent uses or creates new ones at will.
This is what I like the most about vs-code's copilot is that it opens a regular terminal that i can auth in if i need, and see whats happening so i can remain in control
Activity
github-actions commentedon Mar 7, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
[-]How can I view the full content of the background terminal?[/-][+]Provide a way to view the content of the background terminal[/+]ignatremizov commentedon Mar 13, 2026
+1
Is not helpful to understand what is happening
ignatremizov commentedon Mar 13, 2026
Implementation spec based on current
main:This looks fixable as a TUI-only change. The CLI already receives background-terminal output chunks; the main limitation today is that the TUI throws almost all of that away and
/psrenders a heavily truncated history cell.Current truncation points on
main:tui/src/chatwidget.rsUnifiedExecProcessSummaryonly keepsrecent_chunks: Vec<String>track_unified_exec_output_chunk(...)keeps only the last 3 non-empty lines (MAX_RECENT_CHUNKS = 3)tui/src/history_cell.rs/psonly shows the first line ofcommand_display[...]Suggested implementation:
Keep the footer summary as-is.
background terminal running · /ps to view · /clean to closeis fine for the bottom pane.Change
/psfrom “insert truncated history cell into transcript” to “open a pager overlay”.tui/src/pager_overlay.rsIn
tui/src/chatwidget.rs, replacerecent_chunks: Vec<String>with a bounded per-process output buffer.VecDeque<String>line ring buffer is probably enough for an MVPKeep both:
/psoverlay/psoverlay content should render, for each running process:Nice follow-up, but not required for MVP:
Why this seems low-risk:
ChatWidget; they are just summarized too aggressively todaySo the practical MVP is:
/psChristopherP1221 commentedon Apr 10, 2026
I've very recently switched from windsurf to codex and I'm missing this capability already. There is something strangely satisfying watching the actions stream by, whether you're in the loop or not. It's also a great way to catch and steer codex in a different direction if you're in a live troubleshooting session.
nathan-chappell commentedon Apr 16, 2026
It's not a perfect solution, but a useful workaround for some may be to have logs be routed to a file (for instance, I just told codex to add a rotating file handler for my python app that I'm working on so tests give me an additional artifact for observation)
Hexman768 commentedon Apr 20, 2026
+1, I would love to see the behavior also, it would be especially helpful in scenarios where the background terminal gets stuck or has a strange error when running commands.
p81sunshine commentedon Apr 23, 2026
It seems to be resolved by using ctrl+t in the newest version of codex
onyedikachi23 commentedon May 27, 2026
This works but doesn't show the terminal output always. The panel opened from that command isn't smooth at all. Scrolling and display don't look good.
I prefer how Kiro IDE does it by showing you the terminal activities live in a normal IDE terminal panel. I can run my own commands in the terminal session, stop or kill that session easily. It's like owning full control of the terminal and the agent uses or creates new ones at will.
zakinadhif commentedon Jul 24, 2026
Claude Code already have this, when will Codex CLI have it :)
sean-cortical commentedon Aug 18, 2026
This is what I like the most about vs-code's copilot is that it opens a regular terminal that i can auth in if i need, and see whats happening so i can remain in control
etraut-openai commentedon Oct 12, 2026
/psis implemented.