Shift input is silently dropped in Codex CLI in VS Code integrated terminal over WSL

Resolved 💬 1 comment Opened Mar 11, 2026 by louis197 Closed Mar 11, 2026

What version of Codex CLI is running?

codex-cli 0.114.0

What subscription do you have?

ChatGPT Plus

Which model were you using?

gpt-5.4 high

What platform is your computer?

Microsoft Windows NT 10.0.22631.0 x64

What terminal emulator and version are you using (if applicable)?

VS Code integrated terminal on Windows 11, launching PowerShell -> WSL (Ubuntu).

What issue are you seeing?

Inside Codex, all Shift key combinations are silently ignored in the VS Code integrated terminal when running through WSL.

This affects:

  • uppercase letters
  • all symbols that require Shift
  • e.g. Shift+7 for / on DE-CH layout

Behavior:

  • no character appears
  • no error
  • no beep
  • input is just dropped

What steps can reproduce the bug?

  1. Open VS Code integrated terminal on Windows 11.
  2. Start PowerShell.
  3. Run wsl.
  4. Launch codex.
  5. Try typing any uppercase letter with Shift.
  6. Try typing any shifted symbol, e.g. Shift+7 for / on DE-CH layout.

What platform is your computer?

  • Windows 11
  • VS Code integrated terminal -> PowerShell -> wsl -> Codex
  • WSL distro: Ubuntu
  • Keyboard layout: DE-CH (Swiss German)
  • TERM=xterm-256color
  • LANG=C.UTF-8
  • Codex installed via npm install -g @openai/codex

VS Code version

Version: 1.110.1 (user setup)
Commit: 61b3d0ab13be7dda2389f1d3e60a119c7f660cc3
Date: 2026-03-06T23:03:27.520Z
Electron: 39.6.0
ElectronBuildId: 13330601
Chromium: 142.0.7444.265
Node.js: 22.22.0
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.22631

What is the expected behavior?

Codex should accept Shift-modified input normally, including uppercase letters and shifted symbols.

What do you see instead?

All Shift key combinations are ignored only in this environment.

Additional information

Control cases:

  • Works: Windows Terminal -> WSL -> Codex
  • Works: VS Code integrated terminal -> WSL -> Claude Code
  • Broken: VS Code integrated terminal -> WSL -> Codex

What I verified:

  • cat -v raw byte output is identical between working and broken terminals
  • LANG=de_CH.UTF-8 codex did not fix it
  • TERM=xterm and TERM=linux did not fix it
  • exporting dummy WT_SESSION / WT_PROFILE_ID did not fix it
  • not a VS Code shell/chord interception issue, because Claude Code works in the same setup
  • disabling terminal.integrated.windowsEnableConpty did not fix it
  • not Windows Terminal-specific
  • infocmp output looks normal

Observed env diff:

Working terminal (Windows Terminal):

WSLENV=WT_SESSION:WT_PROFILE_ID:
WT_SESSION=<guid>
WT_PROFILE_ID=<guid>

Broken terminal (VS Code integrated terminal):

WSLENV=

However, manually exporting those variables did not fix the issue.

Conclusion:
This appears to be a Codex-specific terminal input handling bug in the VS Code -> WSL PTY path. Since the same raw bytes are received and Claude Code handles them correctly in the identical environment, Codex seems to be misinitializing or misinterpreting keyboard input in that terminal context.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗