Add way to hide tool calls/output in TUI
Open 💬 10 comments Opened Apr 17, 2026 by destroyo
💡 Likely answer: A maintainer (etraut-openai, contributor)
responded on this thread — see the highlighted reply below.
What variant of Codex are you using?
codex-cli 0.121.0
What feature would you like to see?
This is how my terminal look after every other command.
• The handover file is written and the skill now documents the “reply ok or provide replacement filename” workflow. I’ll run the handover listing helper once to confirm the file
appears newest-first.
• Explored
└ Read git-review-sidebar-scroll-handover-skill.md
• Ran /usr/bin/python3 /Users/ma/.codex/skills/handover/scripts/list-handovers.py
└ git-review-sidebar-scroll-handover-skill.md
• Ran rg -n "reply with `ok`|replacement filename|path separators" /Users/ma/.codex/skills/handover/SKILL.md
└ zsh:1: command not found: ok
35:3. Ask the user to reply with `ok` to accept the proposed filename or send a replacement filename.
36:4. If the user sends a replacement filename, normalize and validate it before writing:
40: - Do not allow path separators; handovers must stay inside `./.codex/handover`.
• Called
└ ram.node.create({"body":"Decision: created project handover at .codex/handover/git-review-sidebar-scroll-handover-skill.md and updated /Users/ma/.codex/skills/handover/
SKILL.md to use the explicit filename workflow: propose filename, user replies ok or replacement, normalize/validate, then write.","branchId":"B-
00016","conversationId":"C-00006","provenance":"assistant","stability":"stable","state":"completed","type":"decision"})
{"record": {"body": "Decision: created project handover at .codex/handover/git-review-sidebar-scroll-handover-skill.md and updated /Users/ma/.codex/skills/handover/SKILL.md to
use the explicit filename workflow: propose filename, user replies ok or replacement, normalize/validate, then write.", "conversationID": "C-00006", "createdAt": "2026-04-
17T20:27:55Z", "homeBranchID": "B-00016", "id": "D-00356", "kind": "decision", "provenance": {"kind": "assistant"}, "stability": "stable", "state": "completed",
"updatedAt": "2026-04-17T20:27:55Z"}, "recordType": "node"}
Trying to parse the content from the tools output is a pain. Any way we can collapse those lines by default?
Additional information
_No response_
10 Comments
+1
+1
A useful refinement would be a latest-turn-only display mode rather than hiding all tool activity.
Desired behavior:
For example:
This would keep the current work inspectable without letting command output dominate scrollback during longer conversations.
/clearis not an adequate workaround because it resets the task context instead of only cleaning up the presentation.Environment: Codex CLI 0.144.1, Windows/PowerShell.
Please add a focus mode, similar to Claude Code’s
/focus, that shows only user prompts and final responses while hiding tool calls and command output. Full details should remain accessible viaCtrl+T.Another vote for this. In long interactive CLI sessions, repeated
Ran ..., shell commands,find/gitoutput, and similar tool activity quickly dominate the transcript and make the actual conversation hard to scan.A configurable TUI mode such as
tool_calls = "hidden"/"collapsed"would be very useful, while keeping approvals, errors, and safety-critical prompts visible. The complete tool transcript could remain accessible throughCtrl+Tor an explicit transcript view.The key requirement is to keep the interactive CLI workflow, not switch to
codex execjust to get a cleaner display.Another concrete use case is an MCP tool with a large generated code or query argument. Codex currently renders the full serialized invocation, for example:
For this case, fully hiding tool activity is not necessarily required. A compact, meaningful one-line description would be much more useful than displaying the complete payload.
A possible design (names only illustrative):
Per-MCP-server overrides would also help because tools have very different payload shapes:
For
compactmode, Codex could prefer an optional one-sentence invocation summary supplied with the call, for examplesummary: "Inspect worker completion state", or equivalent standardized MCP metadata. If no summary is supplied, it could fall back toserver.tool(...)with bounded arguments.The complete arguments and result should remain preserved in the transcript and available through an explicit expand/detail action. Approvals, errors, and safety-relevant messages should remain visible regardless of display mode.
Separate argument and result limits matter: code-execution and search tools can have a very large input but a small, useful result. This would preserve auditability while preventing generated source code or queries from dominating terminal scrollback.
This commit reduces the tool call output significantly and brings the TUI in line with the desktop app in terms of what is displayed for tool calls. You can still use
Ctrl+Tto show full tool outputs. This change will be in the 0.148.0 release. Let's see how that feels. I'm hoping that we can avoid adding another toggle or config option since we already haveCtrl+T.Still reproducible on
codex-cli 0.149.1on macOS arm64, after the0.148.0display reduction referenced above.In the normal TUI, successful app-backed tool calls still render as multi-line entries such as:
Calls such as
codex_apps.github.fetch_filealso display serialized arguments and status across multiple wrapped rows. A short read-only investigation can fill the viewport with these entries and separate the useful conversation from the final result. This is not raw-output mode.The remaining gap appears especially noticeable for app/MCP calls. Ideally, completed successful calls would render as one compact line—or as a turn-level “N tool calls” group—with full arguments and results available through
Ctrl+Tor an explicit expand action. Active calls, failures, approvals, and security-relevant events should remain visible.One implementation detail explains why this persists for ordinary MCP tools. In the current renderer:
Therefore an ordinary MCP call such as
context-mode.ctx_execute_fileis classified asStandard,compactremains false, and normal TUI history usesformat_mcp_invocation, which prints the full generated program and arguments.Source: https://github.com/openai/codex/blob/main/codex-rs/tui/src/history_cell/mcp.rs#L123-L165
The desired change is presentation-only:
• Called context-mode.ctx_execute_file(or a bounded summary);Ctrl+Ttranscript: complete invocation and result;A global or per-server
compact/name-onlydisplay option would provide this without changing MCP behavior or model context.@zzelner could someone please look into this? It would be very much appreciated. The cli output is polluted and unusable because of this limitation, and frankly becoming more annoying by the day.