[BUG] Bash tool call rendered as raw XML instead of executing

Resolved 💬 3 comments Opened May 21, 2026 by HossyKoki Closed Jun 21, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

During a Claude Code session, Bash tool calls were rendered in the chat as raw XML-like text instead of being executed.

For example, the assistant displayed text like:

<invoke name="Bash">
<parameter name="command">git status --short; echo "--- DIFF cli.py ---"; git diff ...</parameter>
<parameter name="description">gitの現状態確認</parameter>
</invoke>

A later response also displayed:
<invoke name="Bash">
<parameter name="command">git add .company/automation/skills/lsp-lsr-updater/lsp_lsr_updater/cli.py</parameter>
<parameter name="description">cli.pyをステージング</parameter>
</invoke>

These looked like tool calls, but they were shown as normal assistant text. The commands did not appear to run, and the workflow became confusing/stuck.

This is not only a cosmetic rendering issue. It creates a false execution state: the UI shows what looks like a Bash invocation, but the command does not run. Subsequent assistant behavior may then proceed as if git status/diff/add or other operations were completed, causing downstream workflow errors.

### What Should Happen?

Claude Code should either execute the Bash tool call normally, or show a normal tool/error state if execution is unavailable.

It should not render internal/tool-call syntax such as `<invoke name="Bash">` / `<parameter name="command">` as assistant message text.

### Error Messages/Logs

```shell
No stack trace was shown.

Observed raw assistant output included XML-like tool calls such as:

<invoke name="Bash">
<parameter name="command">git status --short; echo "--- DIFF cli.py ---"; git diff ...</parameter>
<parameter name="description">gitの現状態確認</parameter>
</invoke>

and:

<invoke name="Bash">
<parameter name="command">git add .company/automation/skills/lsp-lsr-updater/lsp_lsr_updater/cli.py</parameter>
<parameter name="description">cli.pyをステージング</parameter>
</invoke>

After manually checking the repository, the referenced cli.py diff/staged change was not present.

Steps to Reproduce

  1. Open Claude Code in a local git repository on Windows.
  2. Ask Claude to inspect git status/diff and stage a file.
  3. Observe that instead of a Bash tool execution UI, the assistant message renders raw XML-like text such as <invoke name="Bash">.
  4. Check the repository manually with git status --short and git diff.
  5. The command shown in the raw XML text did not appear to have executed.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

Unknown

Claude Code Version

2.1.140

Platform

Other

Operating System

Windows

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗