Skip to content

Copilot CLI section in visual-companion.md names Bash tool APIs that Windows Copilot CLI (PowerShell mode) doesn't provide #1929

Description

@qicesun
  • I searched existing issues and this is not a duplicate

Environment (required)

Field Value
Superpowers version v6.1.1 (dev @ c809093)
Harness (Claude Code, Cursor, etc.) GitHub Copilot CLI
Harness version 1.0.69-1
Your model + version Not reliably retained from the original run. This is a static docs/tool-surface mismatch, so it isn't model-specific — anyone can confirm it by reading the section against the Windows Copilot CLI tool surface.
All plugins installed The run that surfaced it used a Chinese fork of Superpowers; I'm filing upstream because the mismatch applies verbatim to upstream's Copilot CLI section (quoted below).
OS + shell Windows, PowerShell 7.6.3

Is this a Superpowers issue or a platform issue?

  • I confirmed this issue does not occur without Superpowers installed

Copilot CLI itself works here. The mismatch is in Superpowers' skills/brainstorming/visual-companion.md.

What happened?

In #1680 you asked which environments have a functional coding agent but no Bash. GitHub Copilot CLI on Windows is one. Its supported Windows mode is PowerShell — "Windows from within Powershell and WSL" (https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-copilot-cli), and the install prerequisite is "PowerShell v6 or higher" (https://github.com/github/copilot-cli). In that mode the agent's shell tool is PowerShell: it exposes powershell (with a detach option), read_powershell, and stop_powershell. There is no Bash tool with mode: "async", read_bash, or stop_bash.

The Copilot CLI section in skills/brainstorming/visual-companion.md (dev @ c809093) reads:

# Use --foreground and start the server via the bash tool with mode: "async"
# so the process survives across turns. Capture the returned shellId for
# read_bash / stop_bash if you need to interact with it later.
scripts/start-server.sh --project-dir /path/to/project --open --foreground

Every control it names (bash tool, mode: "async", read_bash, stop_bash) is absent in Windows Copilot CLI, so a Windows Copilot CLI agent can't follow the section as written. The same file's generic Other environments note already has the right shape — "use --foreground and launch the command with your platform's background execution mechanism" — so the ask here is narrow: make the Copilot CLI block stop contradicting guidance the file already gives. To be clear about scope: I'm not asking for .ps1 ports or native PowerShell copies of the scripts — only for this one section to stop naming a tool surface that isn't present on a supported platform.

Steps to reproduce

  1. Run GitHub Copilot CLI on Windows (PowerShell mode) with Superpowers installed.
  2. Enter the brainstorming visual-companion path.
  3. Have the agent follow the Copilot CLI launch section.
  4. bash / read_bash / stop_bash / mode: "async" aren't available, and the bare scripts/start-server.sh isn't runnable from PowerShell either.

Expected behavior

The Copilot CLI section should point at a mechanism that exists in Windows Copilot CLI (a non-blocking/background shell run) instead of Bash-tool-only controls.

Actual behavior

It names mode: "async", read_bash, and stop_bash. In the run that surfaced this (a downstream fork whose file omitted the Copilot section entirely), the agent improvised a blocking foreground launch, the CLI stayed busy, and a server process was left running. I'm citing that only as the symptom of the same root cause — no Bash tool on Windows Copilot CLI — and I'm not reopening the older Windows lifecycle/orphan issues.

Debug log or conversation transcript

Verified on this machine (Windows, PowerShell 7.6.3, Copilot CLI 1.0.69-1):

  • Tools present: powershell (with detach), read_powershell, stop_powershell. Absent: bash / read_bash / stop_bash.
  • scripts/start-server.sh … run directly in PowerShell → "not recognized". It runs when invoked as & "C:\Program Files\Git\bin\bash.exe" scripts/start-server.sh … --foreground.
  • Launched that way in a backgrounded/detached shell, the call returns immediately and the server survives across turns (keyed URL → 200, no-key → 403). That is the behavior the section is trying to describe.

Suggested direction (docs-only)

Keep it a one-file change: drop the Bash-tool-specific names and point at whatever non-blocking/background mechanism the harness provides — i.e., bring the Copilot CLI block in line with the Other environments wording already in this file. For example:

# Start it with Copilot CLI's non-blocking/background shell mechanism so the
# server survives across turns. Keep --foreground so the harness, not the
# script, owns backgrounding. The launcher is a .sh, so invoke it via bash
# (on Windows, call Git Bash's bash.exe from the PowerShell tool).
bash scripts/start-server.sh --project-dir /path/to/project --open --foreground

If this direction looks right, I'm happy to send a one-file PR against dev. If you'd prefer it even more generic, I can do that instead.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions