Bug(copilot-cli): fix install flow, hooks, and Windows longpaths (#18, #19)#22
Merged
Conversation
One-shot PowerShell script that toggles both HKLM LongPathsEnabled and git core.longpaths. Idempotent; reports current state and only writes if needed. Self-checks for admin and aborts cleanly otherwise. Documented inline with links to Microsoft's MAX_PATH page.
- Marketplace add and per-child-plugin install commands; verified against the documented PLUGIN-NAME@MARKETPLACE-NAME syntax - Note the interactive /plugin install equivalent - Note that root-repo install registers metadata only; child plugin installs are what pull skills, agents, hooks, MCP servers - Verification block listing /env, /plugin list, /skills list, /agent with their documented behavior - Windows pre-flight points to useful-stuff/enable-windows-longpaths.ps1 as the recommended fix; manual one-liners kept as fallback - Compatibility notes: skills, MCP, hooks parity; flag that agents in this repo use *.md (Claude Code convention) while Copilot CLI's documented convention is *.agent.md, so agents may not auto-discover References: - https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-plugin-reference - https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing - https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-cli-plugins - https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference
Copilot CLI's documented convention requires .agent.md extension for plugin agents. Claude Code matches any *.md file in agents/ directories, so the dual extension works in both tools. Verified by copying a renamed agent to ~/.claude/agents/ and confirming Claude Code's /agents discovers it. Updates README links and drops the prior "may not auto-discover in Copilot" caveat from the compatibility section.
Anthropic's documented marketplace layout (https://code.claude.com/docs/en/plugin-marketplaces) is .claude-plugin/marketplace.json at the repo root plus plugins/<name>/.claude-plugin/plugin.json inside each child plugin. The walkthrough does not include a root plugin.json. This repo had both, which caused tools (especially Copilot CLI) to treat the root as a single distributable plugin in addition to a marketplace, since the root plugin.json declared name/version/description. That's the ambiguity Johannes-Vink flagged in #19: the bare 'copilot plugin install data-goblin/power-bi-agentic-development' would appear to install a plugin, but the root has no skills/agents/hooks of its own. Removing aligns with the canonical layout. The fields that lived only in the root plugin.json (homepage, repository, license, keywords) are covered by the GitHub repo itself, the LICENSE file, and README metadata; they aren't part of marketplace.json's documented schema.
- Install section now documents both forms: marketplace add + per-child
plugin install, and the subdirectory shortcut OWNER/REPO:plugins/<name>
- Notes that the root is a marketplace catalog (not a plugin), with a
link to the Anthropic marketplace docs; covers why the bare root
install does nothing useful
- Hooks compatibility note pins Copilot CLI to >= 1.0.26 (2026-04-14)
for ${CLAUDE_PLUGIN_ROOT} resolution; links the Copilot changelog and
the upstream Windows path bug tracker (claude-code#11984)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Addresses the two open Copilot CLI issues. Posted a detailed reply on #19 explaining what changed and why.
.claude-plugin/plugin.jsonto match Anthropic's documented marketplace layout. The root is a marketplace catalog (marketplace.jsononly); per-plugin manifests live under eachplugins/<name>/.claude-plugin/. Closes the ambiguity Johannes-Vink reported where the barecopilot plugin install data-goblin/power-bi-agentic-developmentlooked like it should install something useful.*.mdto*.agent.md. Copilot CLI requires the.agent.mdextension; Claude Code matches any*.mdinagents/, so the dual extension works in both. Verified by copying one renamed agent to~/.claude/agents/and confirming Claude Code's/agentsdiscovers it.OWNER/REPO:plugins/<name>subdirectory shortcut; the verification commands (/env,/plugin list,/skills list,/skills info,/agent); a Windows longpath pre-flight section.useful-stuff/enable-windows-longpaths.ps1. One-shot, idempotent, self-checks for admin, toggles bothHKLM:\...\FileSystem\LongPathsEnabledandgit config --system core.longpaths. Links to Microsoft's MAX_PATH page.${CLAUDE_PLUGIN_ROOT}resolution.Issues
Test plan
validate-plugins)pbip-validator.agent.md)/plugin marketplace addin Claude Code