Codex Desktop shows background hook transcript noise, while the TUI does not

Resolved 💬 6 comments Opened Apr 11, 2026 by sk-ruban Closed Apr 11, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

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?

  1. 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.

  1. Use that same hook configuration in both:
  • terminal codex TUI
  • Codex Desktop
  1. Start a conversation in each client.
  1. Send a few normal prompts that trigger the configured hook events during ordinary usage.
  1. Compare how the transcript is rendered in each surface.

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗

6 Comments

github-actions[bot] contributor · 3 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #16993
  • #17105
  • #17321
  • #16933
  • #16743

Powered by Codex Action

sk-ruban · 3 months ago

@etraut-openai hey this is for the Desktop app not the TUI? How can it be a duplicate when it's a different issue?

etraut-openai contributor · 3 months ago

@sk-ruban, it's the same code path.

sk-ruban · 3 months ago

@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?

etraut-openai contributor · 3 months ago

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.

oxysoft · 2 months ago

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.