-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
Description
Describe the bug
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 spawnscopilot --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. - The SDK team closed the ACP support request as "wontfix" (Feature Request: Support ACP (Agent Client Protocol) Compatible CLIs copilot-sdk#377), stating the SDK is specifically for the Copilot CLI. But the Copilot CLI broke the Copilot SDK.
Reproduction
# 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-RPCAffected version
v0.0.410+ (verified on v0.0.413, v0.0.394)
Expected behavior
Either:
- Keep
--headless --stdioworking 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 --stdiobefore removing--headless
Additional context
- Proven via diagnostic harness: the CLI rejects
--headlessand exits code 1, while--acp --stdioworks 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.
- Related: Feature Request: Support ACP (Agent Client Protocol) Compatible CLIs copilot-sdk#377 (closed wontfix), Docs need to show a minimum CLI version required copilot-sdk#137 (no minimum CLI version docs)
Reactions are currently unavailable