-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Open
Labels
area:toolsenhancementNew feature or requestNew feature or requestplatform:windowsIssue specifically occurs on WindowsIssue specifically occurs on Windows
Description
(Written and provided verbatim by Claude Code.)
Shell configuration for Windows (PowerShell support)
Version: 2.0.75
Platform: Windows 11
Problem
The Bash tool on Windows runs through a bash wrapper that mangles PowerShell syntax:
$_becomes empty (bash interprets it as a variable)$false/$trueget stripped or mangled- Complex pipelines with
ForEach-Objectfail - Quote escaping becomes extremely fragile
Example:
# Intended command
Get-ScheduledTask | Where-Object { $_.TaskName -match 'sync' }
# What bash wrapper produces
Get-ScheduledTask | Where-Object { extglob.TaskName -match 'sync' }Current Workarounds
- Wrapping in cmd /c "powershell.exe -NoProfile -Command '...'"
- Using -Confirm:0 instead of -Confirm:$false
- Avoiding complex pipelines entirely
These are inconsistent and error-prone.
Requested Feature
A setting to configure the shell used by the Bash tool:
{
"shell": "powershell"
}
Or a separate PowerShell tool that bypasses bash interpretation entirely.
Impact
Significantly improves Windows developer experience where PowerShell is the native shell.
Metadata
Metadata
Assignees
Labels
area:toolsenhancementNew feature or requestNew feature or requestplatform:windowsIssue specifically occurs on WindowsIssue specifically occurs on Windows