Codex app queues terminal invisibly and duplicates composer keystrokes
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using?
ChatGPT/Codex desktop app 26.908.70816 (build 9275); bundled codex-cli 0.154.0-alpha.6.2.
What subscription do you have?
Signed-in paid ChatGPT account; exact plan not shown in the affected surface.
What platform is your computer?
Darwin 27.0.0 arm64 arm
What issue are you seeing?
Two symptoms appear related and have occurred repeatedly:
- An agent starts a PTY-backed command and asks the Codex app to show that terminal session in the current task. The UI operation reports the terminal as
queued, but no terminal session appears in the visible integrated terminal. The agent can mistakenly believe the user can see a password prompt even though the user's terminal remains at an empty shell prompt. - Around the same occurrences, keyboard input in the message composer is duplicated, so text appears with most characters entered twice (for example,
terminalresemblestteerrmmiinnaall).
In the latest occurrence, the hidden PTY was waiting for a sudo password. The visible integrated terminal remained at a blank zsh prompt. The hidden session was then cancelled and exited because no password had been entered. The duplicated composer input continued long enough for the user to report the correlation.
This is especially confusing because the agent and user have contradictory views of which terminal is active. It also makes the composer difficult to use.
What steps can reproduce the bug?
- Open a local Codex task in the desktop app with its integrated terminal panel available.
- Have the agent start an interactive PTY command that waits for input, such as a command that invokes
sudo. - Have the agent call the app's terminal-opening action for that PTY session in the current task.
- Observe that the terminal-opening result can be
queuedeven though the current task is already visible. - Observe that the visible integrated terminal remains at its existing empty shell prompt rather than displaying the PTY and its password prompt.
- Type in the task's message composer. In the affected state, characters are entered twice.
The user reports this has happened more than once when the agent believed it had opened the user-visible terminal but had actually created or targeted a separate hidden terminal session.
What is the expected behavior?
- Opening a PTY in the current visible task should display that exact session in the integrated terminal, or return a clear failure that the agent can accurately relay.
- A terminal session must not remain invisibly queued in a way that suggests it is user-visible.
- Keyboard input in the composer should produce exactly one character per keystroke.
Additional information
The visible terminal state was independently read back and confirmed to contain only the normal zsh prompt. No repository data, phone identifiers, passwords, logs, or other secrets are included in this report.
The official terminal recovery advice (close/reopen the terminal panel, then restart the app if needed) may restore the UI, but recovery was not yet verified at the time of filing.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue in the Codex desktop app on Darwin 27.0.0 arm64, using the integrated terminal, a PTY command such as sudo, and the message composer. Trace the app's terminal-opening action and composer input handling. Done means the exact PTY is visible or a clear failure is returned, and each keystroke produces one character.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100