github / github/copilot-cli

`copilot plugin install` from GitHub repo does not discover `.github/plugin/plugin.json` — skills and agents unavailable

Ouverte
#2,390 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
area:agents area:installation area:plugins
Langage dominant
Shell
Étoiles
11.2k
Forks
1.9k
Merge moyen
14 h 16 min
PR mergées (30 j)
6

Description

## Describe the bug

When installing a plugin directly from a GitHub repository using `copilot plugin install /`, the CLI downloads the full repository but sets `cache_path` in `~/.copilot/config.json` to the repository root. The plugin loader then looks for `plugin.json` at the root of `cache_path`, but for repo-based plugins the plugin definition lives in `.github/plugin/plugin.json`.

As a result, skills and agents defined by the plugin are never loaded and do not appear in the available skills list.

**Root Cause Analysis:**

Comparing a working marketplace plugin (`dotnet`) with the direct install:

| | Marketplace plugin (dotnet) | Direct repo install (winapp-cli) |
|---|---|---|
| `cache_path` | `installed-plugins/awesome-copilot/dotnet` | `installed-plugins/_direct/microsoft--WinAppCli` |
| `plugin.json` location | `/plugin.json` ✅ | `/.github/plugin/plugin.json` ❌ |
| Skills loaded | Yes | No |

The marketplace plugin has a flattened structure with `plugin.json` at root. The direct repo install preserves the full repo structure where `plugin.json` lives in `.github/plugin/`.

## Affected version

1.0.12

## Steps to reproduce the behavior

1. Install a plugin from a GitHub repo: `copilot plugin install microsoft/WinAppCli`
2. Start a new Copilot CLI session
3. Check available skills (e.g. ask the agent to list skills, or check the system prompt)
4. Observe: winapp-cli skills and agents are **not listed**
5. Inspect `~/.copilot/config.json` — `cache_path` points to repo root, not `.github/plugin/`

## Expected behavior

The plugin loader should discover `plugin.json` inside `.github/plugin/` for plugins installed from GitHub repositories. Skills and agents defined in the plugin should be available after installation.

## Additional context

- OS: Windows 11
- Terminal: Windows Terminal
- Shell: PowerShell

**Workaround:** Manually edit `~/.copilot/config.json` and append `/.github/plugin` to the `cache_path`:
```json
"cache_path": "...\\microsoft--WinAppCli\\.github\\plugin"
```
After restarting the CLI, skills and agents are correctly discovered.

**Suggested fix:** When installing a plugin from a GitHub repo, the CLI should either:
1. Set `cache_path` to the `.github/plugin/` subdirectory if `plugin.json` exists there, or
2. Have the plugin loader check `.github/plugin/plugin.json` as a fallback when `plugin.json` is not found at the `cache_path` root

**Related issues in this repo:**
- #1296 — Mentions `owner/repo:path/to/plugin` install syntax which could serve as a workaround
- #2286 — Another plugin install issue on Windows (symlinks)
- #1855 — Plugin skills not available after sessionStart hook install (different root cause, same symptom)

## Cross-repo notice

This issue has also been filed as microsoft/WinAppCli#365 since it affects the recommended install instructions in that repo's README. It is unclear whether the fix should be in the Copilot CLI (plugin loader not checking `.github/plugin/`), in the plugin repo (restructuring or adding a root-level `plugin.json`), or in both. Filing on both repos so the respective maintainers can determine the best course of action.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.