aws / aws/amazon-q-developer-cli
bug: kiro-cli-term never relays Claude Code's terminal title updates to the WSL2/Windows Terminal tab
- Dominant language
- Rust
- Stars
- 2k
- Forks
- 439
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
When running Claude Code inside `kiro-cli-term` (the figterm-based PTY wrapper installed by the Kiro CLI shell integration), the Windows Terminal tab title never updates away from the static profile default (e.g. "Ubuntu", the WSL distro name). Claude Code's terminal-title feature (an animated status icon plus a short summary of the current task) never appears. Bypassing `kiro-cli-term` restores correct behavior immediately.
## Environment
- kiro-cli 2.10.0 (`kiro-cli-term`), freshly reinstalled via the official `curl -fsSL https://cli.kiro.dev/install | bash` script (same result before and after reinstall)
- Claude Code 2.1.200
- WSL2 Ubuntu, zsh, standard shell integration installed via `kiro-cli integrations install dotfiles`
- Windows Terminal 1.24.11321.0, Windows build 10.0.26200
## Steps to reproduce
1. Open a Windows Terminal tab using the default WSL profile, where `~/.zshrc`/`~/.zprofile` load the standard Kiro CLI shell integration (`kiro-cli init zsh pre/post`), causing the shell to be wrapped by `kiro-cli-term`.
2. Run `claude` and use it normally (send messages, run tools).
3. Observe the tab title: it stays fixed at the profile's default name (in our case literally "Ubuntu", the WSL distro name) for the entire session. Claude Code's status icon/spinner and task-summary title never appear, no matter how long the session runs or how many turns pass.
## Workaround (confirmed working)
Add a Windows Terminal profile that skips the `kiro-cli-term` wrap by pre-setting `Q_TERM` to a non-empty value before the shell starts, e.g.:
```json
{
"name": "Ubuntu (Claude)",
"commandline": "wsl.exe -d Ubuntu -e env Q_TERM=skip zsh -il",
"source": "Microsoft.WSL"
}
```
(`kiro-cli init zsh pre` only launches `kiro-cli-term` when `Q_TERM` is empty — see the generated init script's `SHOULD_QTERM_LAUNCH` check.) In a tab using this profile, Claude Code's title updates (icon + task summary) work correctly and immediately, with no other change to the environment.
## Additional notes
- This is not a transient/one-time failure — the tab title never leaves the static default for the entire lifetime of the pane, from the very first prompt onward.
- All other functionality of `kiro-cli-term` (autosuggestions, autocomplete, shell integration) appears unaffected; only the terminal title relay is broken.
- We could not find any Windows Terminal profile setting (`suppressApplicationTitle`, `tabTitle`, etc.) that would explain this — the same profile works correctly once `kiro-cli-term` is bypassed, with no other change.
Contributor guide
Research direction
Start with the generated zsh init script and its SHOULD_QTERM_LAUNCH check, then trace how kiro-cli-term handles terminal-title updates under WSL2 and Windows Terminal. Reproduce with Claude Code both with and without Q_TERM=skip; done means the wrapped session relays the animated status and task-summary titles without breaking the other shell integration features.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ubuntu, zsh
- Domain
- cli, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100