github / github/copilot-cli

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

Abierto
#2,390 0 comentarios 0 reacciones 0 asignados Ver en GitHub
area:agents area:installation area:plugins
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

## 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.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.