aws / aws/amazon-q-developer-cli

Alt+key combinations for special characters broken on non-US keyboard layouts (Terminal.app, macOS)

Open
#3,866 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
2k
Forks
439
PR merge metrics
No merged PRs in 30d

Description

### Checks

- [x] I have searched [github.com/aws/amazon-q-developer-cli/issues](https://github.com/aws/amazon-q-developer-cli/issues?q=) and there are no duplicates of my issue
- [x] I have run `q doctor` in the affected terminal session
- [x] I have run `q restart` and replicated the issue again

### Operating system

macOS 26.5.0 (25F71)

### Expected behaviour

Opening a new panel in Terminal.app, ~ character must be written correctly with the option "Use Option as Meta key" enabled

### Actual behaviour

Since migrating from v2.x to v3.x (2.10.0), Alt+5 no longer produces ~ on Italian keyboard layout in Terminal.app.
The stdin buffer in tui.js converts single bytes >127 to ESC+char sequences, which conflicts with "Use Option as Meta key" enabled. This worked correctly in v2.x. Affects all Alt-composed characters on non-US layouts.

### Steps to reproduce

Activate "Use Option as Meta key" option in the Terminal app, and try to type the ~ character with Alt+5 (external keyboard) or Option+5.
The terminal will refuse the digit.

### Environment

```yaml

[q-details]
version = "2.10.0"
hash = "a5da029503141c8033a11d7ee6569583d915cd90"
date = "2026-06-25T20:10:07.272812Z (15d ago)"
variant = "full"

[system-info]
os = "macOS 26.5.0 (25F71)"
chip = "Apple M4"
total-cores = 10
memory = "16.00 GB"

[environment]
cwd = "/Users/USER"
cli-path = "/Users/USER"
os = "Mac"
shell-path = "/bin/zsh"
shell-version = "5.9"
terminal = "macOS"
install-method = "unknown"

[env-vars]
PATH = "/Users/USER/.nvm/versions/node/v12.22.12/bin:/Users/USER/.local/bin:/Users/USER/.jenv/shims:/Users/USER/.jenv/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/pkg/env/global/bin:/Applications/CyberArk EPM.app/Contents/MacOS:/opt/podman/bin:/Users/USER/.local/bin"
QTERM_SESSION_ID = "3f2eddd83a0b4f4b905a502464d67ac2"
Q_SET_PARENT_CHECK = "1"
Q_TERM = "2.10.0"
SHELL = "/bin/zsh"
TERM = "xterm-256color"
__CFBundleIdentifier = "com.apple.Terminal"
```

Contributor guide

Open the contributing guide

Research direction

Start in tui.js at the stdin buffer handling described in the report, and compare its behavior with v2.x. Reproduce the issue in Terminal.app with an Italian keyboard layout and “Use Option as Meta key” enabled; done means Alt+5 produces ~ and other Alt-composed characters work correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, macos
Domain
cli, operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.