[BUG] Bash tool fails with "No suitable shell found" on Windows, even with Git Bash + WSL installed (Claude Cowork Desktop)

Status Open
Reported on v2.1.217
Maintainer reply None cached
Activity 0 comments · opened Jul 24, 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?

Environment: Windows 11, Claude Cowork Desktop (versions seen: 2.1.217 and 2.1.218)

Symptom:
The Bash tool consistently fails with:
"No suitable shell found. Claude CLI requires a Posix shell environment.
Please ensure you have a valid shell installed and the SHELL environment variable set."

This happens in a session that was started on one device (PC) and connected to
from a second device (laptop) via /remote-control.

Troubleshooting already done (none resolved it):

  • Confirmed Git Bash installed at C:\Program Files\Git\bin\bash.exe
  • Set SHELL env var (User scope) to that path; confirmed with a fresh PowerShell

that $env:SHELL correctly resolves to it

  • Restarted the Claude Cowork Desktop app
  • Fully rebooted the machine
  • Installed WSL2 with Ubuntu from scratch (wsl --install)
  • Tried the Bash tool with dangerouslyDisableSandbox: true

Relevant findings:

  • %APPDATA%\Claude\claude_desktop_config.json has a

"remoteToolsDeviceName": "<laptop-name>" field, suggesting a separate
"remote tools" mechanism for cross-device sessions

  • There's a folder %APPDATA%\Claude\claude-code-vm\<version>\claude

(no extension, looks like a Linux binary), suggesting Bash tool execution
may run inside an internal VM/sandbox that is separate from the actual
Windows host environment

Suspicion: shell detection/config may be tied to the original host device
(the PC where the session started) rather than the currently connected
device (the laptop) when using /remote-control, and/or the internal VM
sandbox itself may not have a properly configured shell.

What Should Happen?

The Bash tool should be able to run commands using some POSIX shell available
on the system (Git Bash, installed at C:\Program Files\Git\bin\bash.exe, or
WSL2 with Ubuntu, installed specifically to test this), instead of consistently
failing with "No suitable shell found."

Error Messages/Logs

No suitable shell found. Claude CLI requires a Posix shell environment.
Please ensure you have a valid shell installed and the SHELL environment variable set.

Steps to Reproduce

  1. Open a Claude Cowork Desktop session on a PC (machine A).
  2. Run /remote-control and connect to that session from a different laptop (machine B).
  3. Try running any command with the Bash tool from that session connected via remote-control.

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.218 (Claude Code)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

  • OS: Windows 11
  • App: Claude Cowork Desktop (versions seen: 2.1.217 and 2.1.218)
  • Session connected via /remote-control from another PC
  • Git Bash installed at C:\Program Files\Git\bin\bash.exe (confirmed with Test-Path)
  • SHELL env var set (User scope) to that path, confirmed in a fresh PowerShell ($env:SHELL)
  • WSL2 with Ubuntu installed from scratch (wsl --install) during troubleshooting
  • App restarted and machine fully rebooted; error persists unchanged
  • Also tried dangerouslyDisableSandbox: true on the Bash tool call, no change
  • Relevant findings: %APPDATA%\Claude\claude_desktop_config.json has a

"remoteToolsDeviceName" field (the laptop's name), and there's a folder
%APPDATA%\Claude\claude-code-vm\<version>\claude (no extension, looks like
a Linux binary), suggesting Bash execution may be tied to an internal
"remote tools" mechanism or a VM/sandbox separate from the actual Windows
host environment — possibly pinned to the device where the session
originally started (the PC), not the currently connected device (the laptop).

View original on GitHub ↗