Commands that actually run on Windows.
The model has read a million Linux commands, so it reaches for them, then burns three turns discovering the machine is not Linux.
PS> rm -rf build
rm : A parameter cannot be found that matches parameter name 'rf'.The Claude Code issue tracker carries 1,654 open issues labelled
platform:windows, plus 164 more on platform:wsl (counted 2026-08-04). For
scale, platform:linux sits at 1,655 and platform:macos at 3,088. Windows is
not a niche, it is roughly the size of Linux.
An error you can read costs a turn. These cost an hour, because the command appears to succeed.
python3 is often a Microsoft Store stub. On a machine without Python it
resolves to an App Execution Alias that prints Python and exits 0 without
running anything. Your test suite reports nothing and passes.
python3 -c "import sys; print(sys.version)"No version printed means you have the stub, and every script you ran through it did nothing.
PATH is stale after an install. winget install succeeds, command -v still
fails, and you conclude the install broke. It did not. The running shell keeps
the PATH it started with.
Console encoding kills scripts mid-run. The default code page is regional,
not UTF-8, so printing an emoji or Hebrew, Arabic or CJK text raises
UnicodeEncodeError and the script dies with a traceback about charmap.
PYTHONIOENCODING=utf-8 python script.pyWindows gives you four and they are not compatible.
| Shell | ls |
Paths |
|---|---|---|
| PowerShell | alias for Get-ChildItem, so ls -la fails |
C:\x |
| cmd.exe | dir only |
C:\x |
| Git Bash | real ls |
/c/Users/... |
| WSL | real ls, different filesystem, different software |
/mnt/c/... |
uname -s # MINGW64_NT = Git Bash, Linux = WSLA tool installed on Windows is visible to Git Bash and usually invisible to WSL.
| Unix | PowerShell |
|---|---|
rm -rf dir |
Remove-Item dir -Recurse -Force |
cat f |
Get-Content f |
grep p f |
Select-String p f |
which x |
Get-Command x |
export A=1 |
$env:A = '1' |
2>/dev/null |
2>$null |
&& |
; (PowerShell 5.1 ships with Windows and has no &&) |
Full table, plus path quoting, CRLF, the 260 character limit, case sensitivity
and the NUL file trap, in
references/traps.md.
/plugin marketplace add finestructure-ai/windows-shell/plugin install windows-shell@finestructure-windows-shellThen /reload-plugins.
Built by Fine Structure. MIT, no telemetry.
Every trap in here was hit for real on a Windows machine, including the Python stub that reported three passing test suites that had never run.
Adding the marketplace also gives you ship-live (take a prototype to a verified live URL) and share-live (turn what you built into a link you can send). The full catalog has six more skills beyond these three.
If you hit a Windows failure that is not in here, open an issue with the exact error text. The error string is the useful part, because that is what someone will paste into a search later.
MIT.