You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Copilot CLI removed support for --headless --stdio flags (the programmatic interface used by @github/copilot-sdk) without any deprecation period or migration path. The CLI now exits with code 1 when these flags are passed.
This is a silent breaking change — the CLI auto-updates itself, so every copilot-sdk user who runs their application discovers it's broken at runtime. There was no deprecation warning, no migration guide, and no changelog entry announcing the removal.
Impact
Every version of @github/copilot-sdk (0.1.0 through 0.1.26-preview.0) is broken. The SDK internally spawns copilot --headless --stdio — there is no way to override this.
Every downstream application using the SDK is broken: VS Code extensions, CLI wrappers, custom integrations.
The only workaround is pinning the CLI binary to v0.0.403 and passing --no-auto-update, which defeats the purpose of having an SDK.
# Install latest CLI (auto-updates to v0.0.410+)
copilot --version # v0.0.410 or later# This is what copilot-sdk does internally:
copilot --headless --stdio --log-level error
# Result: exits code 1, "Connection is closed."# The replacement (ACP) works, but the SDK doesn't use it:
copilot --acp --stdio
# Result: works, accepts NDJSON JSON-RPC
Affected version
v0.0.410+ (verified on v0.0.413, v0.0.394)
Expected behavior
Either:
Keep --headless --stdio working alongside --acp --stdio (backward compatibility)
Deprecation period: CLI warns "headless mode deprecated, use --acp --stdio" for N versions before removing
Coordinate with SDK team: Update copilot-sdk to use --acp --stdio before removing --headless
Additional context
Proven via diagnostic harness: the CLI rejects --headless and exits code 1, while --acp --stdio works correctly with full JSON-RPC round-trips (initialize, session/new, session/prompt, streaming, cancel, permissions).
The ACP protocol works well — the issue is purely the unannounced removal of the old interface.
Describe the bug
The Copilot CLI removed support for
--headless --stdioflags (the programmatic interface used by@github/copilot-sdk) without any deprecation period or migration path. The CLI now exits with code 1 when these flags are passed.This is a silent breaking change — the CLI auto-updates itself, so every
copilot-sdkuser who runs their application discovers it's broken at runtime. There was no deprecation warning, no migration guide, and no changelog entry announcing the removal.Impact
@github/copilot-sdk(0.1.0 through 0.1.26-preview.0) is broken. The SDK internally spawnscopilot --headless --stdio— there is no way to override this.--no-auto-update, which defeats the purpose of having an SDK.Reproduction
Affected version
v0.0.410+ (verified on v0.0.413, v0.0.394)
Expected behavior
Either:
--headless --stdioworking alongside--acp --stdio(backward compatibility)--acp --stdiobefore removing--headlessAdditional context
--headlessand exits code 1, while--acp --stdioworks correctly with full JSON-RPC round-trips (initialize, session/new, session/prompt, streaming, cancel, permissions).