aws / aws/amazon-q-developer-cli

bug: kiro-cli-term never relays Claude Code's terminal title updates to the WSL2/Windows Terminal tab

Open
#3,862 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

## 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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.