Skip to content

Add GitHub Copilot as a fourth plugin host (CLI + VS Code)#26

Open
eshwar-sundar-glean wants to merge 1 commit into
mainfrom
eshwar/add-github-copilot-host
Open

Add GitHub Copilot as a fourth plugin host (CLI + VS Code)#26
eshwar-sundar-glean wants to merge 1 commit into
mainfrom
eshwar/add-github-copilot-host

Conversation

@eshwar-sundar-glean

Copy link
Copy Markdown
Collaborator

Summary

Adds GitHub Copilot (CLI and VS Code) as a fourth supported host. Copilot's agent-plugin format is shared with Claude Code, so the existing Claude-format plugin (.claude-plugin/plugin.json + .mcp.json + skills/) is what Copilot loads — there's no separate Copilot plugin manifest, and deliberately no .plugin/plugin.json: the Copilot-native format defines no plugin-root token, which would break the ${CLAUDE_PLUGIN_ROOT} reference that locates start.sh.

Changes

  • .github/plugin/marketplace.json (new) — makes the repo a first-class Copilot marketplace at the GitHub-native location, mirroring the per-host marketplace manifests for Claude (.claude-plugin/), Cursor (.cursor-plugin/), and Codex (.agents/plugins/).
  • start.sh — maps Copilot CLI's COPILOT_AGENT_SESSION_ID to GLEAN_SESSION_ID, so sessions are stable under Copilot instead of falling back to a generated per-process id.
  • README — new "GitHub Copilot (CLI and VS Code)" install section; updated intro, GLEAN_SESSION_ID var reference, and Layout tree.
  • Version bump — all three plugin manifests 0.2.33 → 0.2.34 (in lockstep; start.sh is a tracked plugin runtime file, so check-version-bump.sh requires it).

Install

Copilot CLI:

copilot plugin marketplace add gleanwork/glean-plugins-vnext
copilot plugin install glean-vnext@glean-plugins-vnext

VS Code: register the marketplace via chat.plugins.marketplaces (or Chat: Install Plugin From Source), then install glean-vnext from the Agent Plugins view (@agentPlugins).

Testing

  • npm run typecheck clean; npm test → 154/154 pass; npm run builddist/ byte-identical (dist-sync gate green).
  • bash -n start.sh clean; all marketplace/plugin manifests validate as JSON; the three plugin versions are aligned at 0.2.34.

Remaining manual verification

The Copilot CLI isn't installed in my environment, so a live skill-load smoke test wasn't possible. The glean_run skill uses an underscore where the docs suggest kebab-case, but the documented silent-failure mode is namespace-prefix + dir/name mismatch (neither applies here, and Claude Code loads it today). After install, confirm glean_run appears under /skills; rename to glean-run only if it doesn't (cross-host change).

GitHub Copilot's agent-plugin format is shared with Claude Code, so the
existing Claude-format plugin (.claude-plugin/plugin.json + .mcp.json +
skills/) is what Copilot loads — no separate Copilot plugin manifest, and
deliberately no .plugin/plugin.json, since the Copilot-native format defines
no plugin-root token and would break the ${CLAUDE_PLUGIN_ROOT} reference that
locates start.sh.

- Add .github/plugin/marketplace.json so the repo is a first-class Copilot
  marketplace, mirroring the per-host marketplace manifests for Claude,
  Cursor, and Codex.
- Map Copilot CLI's COPILOT_AGENT_SESSION_ID to GLEAN_SESSION_ID in start.sh
  so sessions are stable under Copilot instead of falling back to a generated
  per-process id.
- Document the Copilot install flow (CLI + VS Code) and update the session-id
  var reference and Layout in the README.
- Bump all three plugin manifests 0.2.33 -> 0.2.34 (start.sh is a tracked
  plugin runtime file).
Comment thread plugins/glean/start.sh
Comment on lines +46 to +47
elif [ -n "${COPILOT_AGENT_SESSION_ID:-}" ]; then
export GLEAN_SESSION_ID="$COPILOT_AGENT_SESSION_ID"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we have a screenshot testing this being set and not being an issue as we found in cursor?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants