Repository navigation
Conversation
Add 'copilot' as a recognized host type alongside 'claude' and 'codex'. Copilot uses the same .agents/skills/ output directory and dynamic GSTACK_ROOT preamble pattern as codex, with ~/.copilot/skills/gstack as the default global path. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add copilot as a recognized host alongside claude, codex, and kiro. Auto-detection checks for 'gh copilot --version'. Global install goes to ~/.copilot/skills/gstack following the same pattern as kiro. Copies .agents/skills/ output and rewrites paths for copilot. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add 'copilot' as a tool type alongside claude_code, codex, and gemini. Scans ~/.config/gh-copilot/ for conversation logs. Includes copilot in all session counts, repo aggregations, and summary output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a Copilot freshness section alongside the existing Codex check. Runs gen-skill-docs with --host copilot --dry-run to verify generated files are up to date. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Build script now generates skill docs for copilot host alongside claude and codex. Package description mentions Copilot CLI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Verify that gen-skill-docs --host copilot succeeds alongside the existing claude and codex checks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add copilot alongside codex in the multi-agent install section. Document --host copilot flag and ~/.copilot/skills/ install path. Add Copilot to the retro global tool list and AGENTS.md gen command. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Create copilot-session-runner.ts paralleling codex-session-runner.ts - Create copilot-e2e.test.ts paralleling codex-e2e.test.ts - Update gen-skill-docs tests to expect --host copilot support - Update global-discover tests to expect copilot session property - Add test:copilot and test:copilot:all npm scripts - Include copilot-e2e.test.ts in eval/e2e test suites Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rename 'Dual-host' section to 'Multi-host', add copilot generation commands, update comparison table, and add copilot to new skill instructions and freshness check commands. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add note about gh CLI + copilot extension requirement for the copilot-e2e.test.ts E2E tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The GitHub Copilot CLI went GA in February 2026 as a standalone binary (\copilot\) installed via \ pm install -g @github/copilot\. Update all references from the old gh extension (\gh copilot\) to the new standalone: - setup: auto-detect via \command -v copilot\ (not gh copilot --version) - gstack-global-discover: scan ~/.copilot/session-state/ (not ~/.config/gh-copilot/) - copilot-e2e.test.ts: check for \copilot\ binary, update skip messages - copilot-session-runner.ts: spawn \copilot -p\ (not gh copilot suggest) - gen-skill-docs.test.ts: update auto-detect assertion - CLAUDE.md: update prereqs note Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add Copilot CLI support changelog entry following the project's user-facing style: what you can now do, not implementation details. VERSION: 0.11.7.0 → 0.11.9.0. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Expand the host comparison table in CONTRIBUTING.md from 3 columns (Claude | Codex / Copilot) to 4 columns (Claude | Codex | Copilot) so each host has its own column. Replace 'Codex/Copilot' shorthand with explicit enumeration in README.md, CONTRIBUTING.md, setup, and gen-skill-docs.ts comments. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix three issues found in code review:
1. P1: Remove --host copilot from build pipeline, CI, and skill:check.
Copilot and Codex share .agents/skills/ — running both overwrites
codex output with copilot-flavored preambles. Copilot-specific paths
are rewritten at setup time via sed (same pattern as Kiro).
2. P1: Rewrite scanCopilot() to walk session subdirectories.
Copilot CLI stores sessions as ~/.copilot/session-state/{id}/ dirs
containing events.jsonl and workspace.yaml, not top-level files.
3. P2: Copy auth config from real ~/.copilot/ to temp HOME in E2E runner.
Without this, copilot -p in temp HOME loses login state and fails
instead of running the test.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…codex exclusion reason - Remove '(same pattern as Kiro)' — Kiro isn't documented in CONTRIBUTING.md, so referencing it introduces an unexplained concept. Replaced with 'via sed'. - Change Copilot /codex skill exclusion from 'self-referential' to 'shares Codex output' — Copilot ≠ Codex, so 'self-referential' is technically wrong. The real reason is Copilot shares Codex's generated .agents/skills/ directory. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Ha I was just about to spin up a similar PR but you beat me to it; thank you! |
Add full support for the standalone GitHub Copilot CLI alongside existing Claude Code and Codex integrations. Key changes: - setup: add --host copilot flag with auto-detection; install skills into ~/.copilot/skills/gstack - scripts/gen-skill-docs.ts: add copilot host type; generation reuses .agents/skills/ output (same as Codex) - bin/gstack-global-discover.ts: add scanCopilot() to discover sessions at ~/.copilot/session-state/ - Tests: add copilot-e2e.test.ts and copilot-session-runner.ts helper - package.json: add test:copilot scripts and update description - Docs: update AGENTS.md, CLAUDE.md, CONTRIBUTING.md, README.md Notes: - At generation time Copilot reuses the same .agents/skills/ output as Codex; during setup the install paths are rewritten to the Copilot home (~/.copilot/...) using sed. - All 14 files from the referenced PR (garrytan#396) have been implemented/adapted.
Add full support for the standalone GitHub Copilot CLI alongside existing Claude Code and Codex integrations. Key changes: - setup: add --host copilot flag with auto-detection; install skills into ~/.copilot/skills/gstack - scripts/gen-skill-docs.ts: add copilot host type; generation reuses .agents/skills/ output (same as Codex) - bin/gstack-global-discover.ts: add scanCopilot() to discover sessions at ~/.copilot/session-state/ - Tests: add copilot-e2e.test.ts and copilot-session-runner.ts helper - package.json: add test:copilot scripts and update description - Docs: update AGENTS.md, CLAUDE.md, CONTRIBUTING.md, README.md Notes: - At generation time Copilot reuses the same .agents/skills/ output as Codex; during setup the install paths are rewritten to the Copilot home (~/.copilot/...) using sed. - All 14 files from the referenced PR (garrytan#396) have been implemented/adapted.
Add full support for the standalone GitHub Copilot CLI alongside existing Claude Code and Codex integrations. Key changes: - setup: add --host copilot flag with auto-detection; install skills into ~/.copilot/skills/gstack - scripts/gen-skill-docs.ts: add copilot host type; generation reuses .agents/skills/ output (same as Codex) - bin/gstack-global-discover.ts: add scanCopilot() to discover sessions at ~/.copilot/session-state/ - Tests: add copilot-e2e.test.ts and copilot-session-runner.ts helper - package.json: add test:copilot scripts and update description - Docs: update AGENTS.md, CLAUDE.md, CONTRIBUTING.md, README.md Notes: - At generation time Copilot reuses the same .agents/skills/ output as Codex; during setup the install paths are rewritten to the Copilot home (~/.copilot/...) using sed. - All 14 files from the referenced PR (garrytan#396) have been implemented/adapted.
Add full support for the standalone GitHub Copilot CLI alongside existing Claude Code and Codex integrations. Key changes: - setup: add --host copilot flag with auto-detection; install skills into ~/.copilot/skills/gstack - scripts/gen-skill-docs.ts: add copilot host type; generation reuses .agents/skills/ output (same as Codex) - bin/gstack-global-discover.ts: add scanCopilot() to discover sessions at ~/.copilot/session-state/ - Tests: add copilot-e2e.test.ts and copilot-session-runner.ts helper - package.json: add test:copilot scripts and update description - Docs: update AGENTS.md, CLAUDE.md, CONTRIBUTING.md, README.md Notes: - At generation time Copilot reuses the same .agents/skills/ output as Codex; during setup the install paths are rewritten to the Copilot home (~/.copilot/...) using sed. - All 14 files from the referenced PR (garrytan#396) have been implemented/adapted.
|
@16francej — recommend closing this PR as superseded by #393. This branch targets an older host and setup architecture and cannot be safely updated through a small rebase. Please preserve contributor credit and the useful Copilot discovery and session cases, while leaving out the unsafe live-user data-copying approach. |
|
Please close, leaving this open causes confusion. |
|
Thanks for this, @ridermw. This is now covered on main: GitHub Copilot CLI is a supported host (hosts/copilot.ts), with credit to you in the changelog (shipped in v1.91.16.0, #3014). Closing as superseded; if you still see the problem on the latest gstack, please open an issue with ./setup --status output. |
Summary
Add first-class GitHub Copilot CLI support to gstack. All 28 skills now work with the standalone Copilot CLI (
copilotbinary, GA February 2026) alongside the existing Claude Code and Codex support.This is a purely additive change — no existing Claude Code or Codex functionality is altered.
Related: #289 (host integration contract RFC). This PR follows the existing Codex pattern for pragmatic incremental support. If the adapter abstraction from #289 lands, Copilot support can be migrated onto it — the changes here are scoped and self-contained.
Motivation
The GitHub Copilot CLI went GA in February 2026 as a standalone binary, separate from the old
gh copilotextension. It has its own config directory (~/.copilot/), session storage (~/.copilot/session-state/{id}/), and skill discovery. gstack should support it as a first-class host so users on Copilot CLI get the same experience as Claude Code and Codex users.Architecture decisions
.agents/skills/with Codex. Both are non-Claude hosts using the same skill discovery path. Only--host codexis run during generation; Copilot-specific paths (~/.copilot/skills/gstack) are rewritten atsetup --host copilottime via sed.--host codex, not--host copilot. Running both would overwrite the same.agents/skills/directory. This avoids the conflict entirely.~/.copilot/session-state/{session-id}/directories containingevents.jsonlandworkspace.yaml, not flat files.scanCopilot()walks these subdirs.copilot -pwith a temp HOME loses login state. The runner copiesconfig.jsonandhosts.jsonfrom the real~/.copilot/to the temp HOME, andGH_TOKENpasses through via env.Copilot CLI facts
copilot(standalone, notgh copilot)npm install -g @github/copilot(also: brew, winget, install script)~/.copilot/(overridable viaCOPILOT_HOME)~/.copilot/session-state/{session-id}/copilotcopilot -p "prompt"Files changed (14)
Core runtime (3 files)
scripts/gen-skill-docs.ts'copilot'to Host type, HOST_PATHS, preamble bash. Broadenedhost === 'codex'gates to include copilot.setup--host copilotwith auto-detection viacommand -v copilot. Full install section copies.agents/skills/output and rewrites paths via sed.bin/gstack-global-discover.tsscanCopilot()— walks~/.copilot/session-state/{id}/subdirectories forevents.jsonlandworkspace.yaml.Build & CI (2 files)
package.jsontest:copilotscripts. Build does NOT include--host copilot(Codex output covers both)..github/workflows/skill-docs.yml--host copilotCI check (Codex check covers shared.agents/skills/).Documentation (5 files)
README.mdAGENTS.mdCONTRIBUTING.mdCLAUDE.mdCHANGELOG.mdTests (4 files)
test/copilot-e2e.test.tscopilot --versionavailability and spawning with skill context.test/helpers/copilot-session-runner.tscopilot -p. Copies auth config from real~/.copilot/to temp HOME.test/gen-skill-docs.test.tscommand -v copilotin auto-detect output.test/global-discover.test.tsVersioning (1 file)
VERSIONTesting
Copilot E2E tests (
test/copilot-e2e.test.ts) require thecopilotbinary installed and authenticated. They skip gracefully when unavailable.How to verify