Summary
The GitHub Copilot CLI went GA in February 2026 as a standalone binary (copilot), separate from the old gh copilot extension. It supports skill discovery via ~/.copilot/skills/ and has its own session storage at ~/.copilot/session-state/{id}/.
gstack already supports Claude Code, Codex, Gemini CLI, and Cursor. Copilot CLI fits the same pattern — it uses .agents/skills/ for repo-local discovery and has a global install path at ~/.copilot/skills/gstack.
What would Copilot support look like?
Based on the existing Codex pattern:
- gen-skill-docs.ts: Add
'copilot' host type. Copilot shares .agents/skills/ output with Codex — only the global fallback path differs (~/.copilot/skills/gstack vs ~/.codex/skills/gstack).
- setup: Add
--host copilot with auto-detection via command -v copilot. Rewrite Codex output paths at install time via sed (same pattern as Kiro).
- gstack-global-discover.ts: Add
scanCopilot() for session discovery at ~/.copilot/session-state/.
- Tests: Copilot E2E runner paralleling the Codex session runner, updated assertions in existing tests.
- Docs: README, CONTRIBUTING, AGENTS.md updated to mention Copilot as a peer host.
No build pipeline changes needed — Copilot derives from Codex output at setup time. No architectural changes.
Copilot CLI facts
Reference implementation
I've put together a working implementation in PR #396. 501 lines added across 14 files, follows the existing Codex/Kiro pattern exactly. Happy to close it if you'd prefer to implement this differently.
Related: #289 (host integration contract RFC) — this would be another concrete data point for that discussion.
Summary
The GitHub Copilot CLI went GA in February 2026 as a standalone binary (
copilot), separate from the oldgh copilotextension. It supports skill discovery via~/.copilot/skills/and has its own session storage at~/.copilot/session-state/{id}/.gstack already supports Claude Code, Codex, Gemini CLI, and Cursor. Copilot CLI fits the same pattern — it uses
.agents/skills/for repo-local discovery and has a global install path at~/.copilot/skills/gstack.What would Copilot support look like?
Based on the existing Codex pattern:
'copilot'host type. Copilot shares.agents/skills/output with Codex — only the global fallback path differs (~/.copilot/skills/gstackvs~/.codex/skills/gstack).--host copilotwith auto-detection viacommand -v copilot. Rewrite Codex output paths at install time via sed (same pattern as Kiro).scanCopilot()for session discovery at~/.copilot/session-state/.No build pipeline changes needed — Copilot derives from Codex output at setup time. No architectural changes.
Copilot CLI facts
copilot(standalone, notgh copilot)npm install -g @github/copilot(also: brew, winget, install script)~/.copilot/~/.copilot/session-state/{session-id}/Reference implementation
I've put together a working implementation in PR #396. 501 lines added across 14 files, follows the existing Codex/Kiro pattern exactly. Happy to close it if you'd prefer to implement this differently.
Related: #289 (host integration contract RFC) — this would be another concrete data point for that discussion.