aws / aws/amazon-q-developer-cli
new TUI prints raw <tool_use> XML when model returns inline tool calls; classic renders correctly
- 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
tool call successful:
```
kiro-cli --classic
To learn more about MCP safety, see https://kiro.dev/docs/cli/mcp/security/
⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀ ⢀⣴⣶⣶⣦⡀⠀⠀⠀⢀⣴⣶⣦⣄⡀⠀⠀⢀⣴⣶⣶⣦⡀⠀⠀⢀⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣶⣶⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀ ⢰⣿⠋⠁⠈⠙⣿⡆⠀⢀⣾⡿⠁⠀⠈⢻⡆⢰⣿⠋⠁⠈⠙⣿⡆⢰⣿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⣦⠀⠀⠀⠀⣴⡿⠟⠋⠁⠀⠀⠀⠈⠙⠻⢿⣦⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣿⣇⣴⡿⠋⠀⠀⠀⢀⣼⠇⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢠⣤⣤⣤⣤⣄⠀⠀⠀⠀⣿⡆⠀⠀⣼⡟⠀⠀⠀⠀⣀⣀⣀⠀⠀⠀⠀⢻⣧⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣿⡿⠋⠀⠀⠀⢀⣾⡿⠁⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢸⣿⠉⠉⠉⣿⡇⠀⠀⠀⣿⡇⠀⣼⡟⠀⠀⠀⣰⡿⠟⠛⠻⢿⣆⠀⠀⠀⢻⣧⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠙⠁⠀⠀⢀⣼⡟⠁⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢸⣿⣶⣶⡶⠋⠀⠀⠀⠀⣿⠇⢰⣿⠀⠀⠀⢰⣿⠀⠀⠀⠀⠀⣿⡆⠀⠀⠀⣿⡆
⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⡀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣼⠟⠀⢸⣿⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⣿⡇
⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⣠⡀⠀⠀⠹⣷⡄⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣤⣄⠀⠀⠀⠀⠹⣿⡅⠀⠀⠸⣿⠀⠀⠀⠸⣿⠀⠀⠀⠀⠀⣿⠇⠀⠀⠀⣿⠇
⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣾⡟⣷⡀⠀⠀⠘⣿⣆⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣿⡟⣷⡀⠀⠀⠀⠘⣿⣆⠀⠀⢻⣧⠀⠀⠀⠹⣷⣦⣤⣤⣾⠏⠀⠀⠀⣼⡟
⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀⠀⠀⠈⢻⡇⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀⠀⠀⠀⠈⢻⡇⠀⠀⢻⣧⠀⠀⠀⠀⠉⠉⠉⠀⠀⠀⠀⣼⡟
⠀⠀⠀⠀⠀⠀⠀ ⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀⠀⢀⣼⠇⠀⠸⣿⣄⡀⢀⣠⣿⠇⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀⠀⠀⢀⣼⠇⠀⠀⠀⠻⣷⣦⣄⡀⠀⠀⠀⢀⣠⣴⣾⠟
⠀⠀⠀⠀⠀⠀⠀ ⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠀⠀⠈⠙⠻⠿⠿⠿⠿⠟⠋⠁
Jump into building with Kiro:
1. Ask a question or describe a task
2. Use /context add to provide Kiro with additional info
3. Connect to external tools with by using /mcp
Use /help for more information and happy coding!
Model: auto (/model to change) | Plan: KIRO POWER (/usage for more detail)
1% > what is my ip?
I will run the following command: curl -s ifconfig.me (using tool: shell)
Purpose: Get public IP address
Allow this action? Use 't' to trust (always allow) the 'shell' tool for the session. [y/n/t]:
1% > t
xxxx:xxxx:xxxx:xxxx::x:xxxx - Completed in 0.674s
> Your public IP address is xxxx:xxxx:xxxx:xxxx::x:xxxx
```
### Actual behaviour
```
kiro-cli
Welcome to Kiro CLI, let's get you signed in!
Press enter to continue to the browser or esc to cancel
Device authorized
Logged in successfully
⢀⣴⣶⣶⣦⡀⠀⠀⠀⠀⢀⣴⣶⣦⣄⡀ ⢀⣴⣶⣶⣦⡀ ⢀⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶⣦⣄⡀ ⢀⣠⣴⣶⣶⣶⣶⣶⣦⣄⡀
⢰⣿⠋⠁⠈⠙⣿⡆⠀⢀⣾⡿⠁ ⠈⢻⡆ ⢰⣿⠋⠁⠈⠙⣿⡆ ⢰⣿⠋⠁ ⠈⠙⠻⣦ ⣴⡿⠟⠋⠁ ⠈⠙⠻⢿⣦
⢸⣿⠀⠀⠀⠀⣿⣇⣴⡿⠋⠀⠀ ⢀⣼⠇ ⢸⣿⠀⠀⠀⠀⣿⡇ ⢸⣿⠀⠀⠀⢠⣤⣤⣤⣤⣄ ⣿⡆ ⣼⡟⠀⠀⠀ ⣀⣀⣀ ⢻⣧
⢸⣿⠀⠀⠀⠀⣿⡿⠋⠀⠀ ⢀⣾⡿⠁ ⢸⣿⠀⠀⠀⠀⣿⡇ ⢸⣿⠀⠀⠀⢸⣿⠉⠉⠉⣿⡇ ⣿⡇ ⣼⡟⠀⠀ ⣰⡿⠟⠛⠻⢿⣆⠀⠀ ⢻⣧
⢸⣿⠀⠀⠀⠀⠙⠁⠀⠀ ⢀⣼⡟⠁ ⢸⣿⠀⠀⠀⠀⣿⡇ ⢸⣿⠀⠀⠀⢸⣿⣶⣶⡶⠋⠀ ⣿⠇ ⢰⣿⠀⠀⠀⢰⣿⠀⠀⠀ ⣿⡆⠀⠀ ⣿⡆
⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀ ⠹⣷⡀ ⢸⣿⠀⠀⠀⠀⣿⡇⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀ ⣠⣼⠟ ⢸⣿⠀⠀ ⢸⣿⠀⠀⠀⠀ ⣿⡇⠀⠀ ⣿⡇
⢸⣿⠀⠀⠀⠀⠀⣠⡀⠀⠀ ⠹⣷⡄ ⢸⣿⠀⠀⠀⠀⣿⡇⠀⢸⣿⠀⠀⠀⠀⣤⣄ ⠀⠀⠹⣿⡅ ⠸⣿⠀⠀ ⠸⣿⠀⠀⠀⠀ ⣿⠇⠀ ⣿⠇
⢸⣿⠀⠀⠀⠀⣾⡟⣷⡀⠀⠀ ⠘⣿⣆ ⢸⣿⠀⠀⠀⠀⣿⡇ ⢸⣿⠀⠀⠀⠀⣿⡟⣷⡀⠀⠀ ⠘⣿⣆ ⢻⣧⠀⠀ ⠹⣷⣦⣤⣤⣾⠏⠀⠀⠀⣼⡟
⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀ ⠀⠈⢻⡇ ⢸⣿⠀⠀⠀⠀⣿⡇ ⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀ ⠀⠈⢻⡇ ⢻⣧⠀⠀⠀ ⠉⠉⠉ ⣼⡟
⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀ ⢀⣼⠇ ⠸⣿⣄⡀⢀⣠⣿⠇ ⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀ ⢀⣼⠇ ⠻⣷⣦⣄⡀ ⢀⣠⣴⣾⠟
⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁ ⠈⠻⠿⠿⠟⠁ ⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁ ⠀⠀⠈⠙⠻⠿⠿⠿⠿⠟⠋⠁
Welcome to the new Kiro CLI UX! /tui to learn more, /feedback for thoughts.
Prefer the classic experience? Relaunch with kiro-cli --classic.
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
what is my ip?
{"name": "execute_command", "arguments": {"command": "curl -s ifconfig.me"}}
▸ Credits: 0.01 • Time: 2s
```
### Steps to reproduce
1. Launch the default UI: kiro-cli
2. Prompt: what is my ip?
3. Observe the response is rendered as raw text:
```
{"name": "execute_command", "arguments": {"command": "curl -s ifconfig.me"}}
```
No tool prompt, no execution. Credits are charged for the round-trip.
4. Quit and relaunch with the classic UI: kiro-cli --classic
5. Same prompt: classic UI translates the call correctly:
```
I will run the following command: curl -s ifconfig.me (using tool: shell)
Purpose: Get public IP address
Allow this action? Use 't' to trust ... [y/n/t]:
```
Approving runs the tool and returns the IP normally.
### Environment
```yaml
[q-details]
version = "2.4.0"
hash = "da457ad7e4bc0693d1f094f7571fb87091a0e406"
date = "2026-05-20T19:18:35.988733Z (1d ago)"
variant = "full"
[system-info]
os = "macOS 26.5.0 (25F71)"
chip = "Apple M2 Pro"
total-cores = 12
memory = "16.00 GB"
[environment]
cwd = "/Users/USER/repos"
cli-path = "/Users/USER/repos"
os = "Mac"
shell-path = "/bin/zsh"
shell-version = "5.9"
install-method = "unknown"
[env-vars]
PATH = "/.local/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/usr/local/MacGPG2/bin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet"
Q_SET_PARENT_CHECK = "1"
Q_TERM = "2.3.0"
SHELL = "/bin/zsh"
TERM = "xterm-256color"
ZDOTDIR = "/Users/USER"
__CFBundleIdentifier = "dev.kiro.desktop"
```
Contributor guide
Assessment
This issue has not been assessed yet.