Skip to content

Copilot CLI uses Unix-only commands on Windows #2981

Description

@mcodilla

Describe the bug

While running on Windows PowerShell, Copilot piped output to head -900, a Unix command that does not exist in PowerShell. The command failed with: "The term 'head' is not recognized as a name of a cmdlet, function, script file, or executable program." Copilot had access to the environment context indicating Windows_NT as the OS, yet still generated a Unix-style command. The equivalent PowerShell would be Select-Object -First 900

Affected version

GitHub Copilot CLI 1.0.36

Steps to reproduce the behavior

Repro Steps:

  1. Open Copilot CLI on a Windows machine running PowerShell 7
  2. Provide a task that involves processing a large file (e.g., a 1.8MB
    JSON file over 150 records
  3. Ask Copilot to extract and display a subset of the data
  4. Observe the generated shell command.

Expected behavior

Copilot should detect the OS, Windows_NT is provided in environment, and use PowerShell commands. For example, to limit output to 900 lines, it should something along the lines of: | Select-Object -First 900

Instead, Copilot generated the command: python -c "..." 2>&1 | head -900

This failed with:"The term 'head' is not recognized as a name of a cmdlet, function, script file, or executable program."

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:platform-windowsWindows-specific: PowerShell, cmd, Git Bash, WSL, Windows Terminalarea:toolsBuilt-in tools: file editing, shell, search, LSP, git, and tool call behavior

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions