Skip to content

Copilot CLI uses Unix-only commands on Windows #2981

@mcodilla

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

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions