Codex Desktop shows background hook transcript noise, while the TUI does not
What version of the Codex App are you using (From “About Codex” dialog)?
26.409.20454
What subscription do you have?
Pro
What platform is your computer?
25.0.0 arm64 arm
What issue are you seeing?
I’m integrating Codex into a notchi and found an inconsistency between the Codex TUI and Codex Desktop.
Problem
The same background hooks behave cleanly in the Codex TUI, but Codex Desktop still surfaces hook-related transcript noise in the conversation UI.
This makes Desktop much harder to integrate with for background apps that use hooks only as an internal event bridge.
What I observed
Using the same Notchi integration hooks:
In the terminal TUI
The conversation looks nice without hooks. Example:
<img width="1086" height="586" alt="Image" src="https://github.com/user-attachments/assets/c4859bce-be4e-49ea-ba12-5746eacf4b0d" />
In Codex Desktop
The Desktop thread still surfaces hook-related noise / behavior that makes hook-based background integrations feel much worse.
<img width="1214" height="634" alt="Image" src="https://github.com/user-attachments/assets/a9c8de3e-0621-46ee-a118-785fb7372a4f" />
Why this matters
For integrations like Notchi, hooks are the best technical integration path:
- push-based
- low-latency
- structured
- much better than polling rollout/session files
If Codex Desktop cannot hide non-user-facing hook activity cleanly, integrations are pushed toward weaker file-monitoring workarounds just to avoid transcript pollution.
Expected behaviour
Codex Desktop should handle background/internal hooks at least as cleanly as the TUI does.
Ideally there should be a supported way for Desktop to suppress non-user-facing hook transcript entries, for example:
- honoring a hook-level suppression flag
- or otherwise not rendering background hook lifecycle rows into the chat UI
Additional context
There is prior work related to hook-status rendering here for TUI:
What steps can reproduce the bug?
- Configure Codex with a local hook intended only for background/internal integration.
Example: any simple hook script that forwards Codex events to another process without intending to show user-facing output.
- Use that same hook configuration in both:
- terminal
codexTUI - Codex Desktop
- Start a conversation in each client.
- Send a few normal prompts that trigger the configured hook events during ordinary usage.
- Compare how the transcript is rendered in each surface.
What is the expected behavior?
_No response_
Additional information
_No response_
6 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
@etraut-openai hey this is for the Desktop app not the TUI? How can it be a duplicate when it's a different issue?
@sk-ruban, it's the same code path.
@etraut-openai thanks for getting back to me! If this is really the same code path, there still needs to be a way to completely suppress background hook messages in the Codex App, because from the user side this is a different visible bug.
Or does Codex Desktop just need an updated release to pick it up?
The Codex Desktop app needs to be updated to pick it up.
BTW, we don't plan to completely suppress background hook messages. We are making it less verbose though — through coalescing.
Indexed this hook ticket in the umbrella tracker: #21753
Goal: collect the scattered Codex hook requests and bugs into one parity matrix for Full Claude Code Hook Parity (29+), while preserving this issue as the detailed thread for its specific behavior.