Skip to main content

Referencia del complemento de la CLI de Copilot de GitHub

Busque comandos y detalles de configuración para los complementos de la CLI.

Nota:

Puede encontrar ayuda sobre el uso de complementos escribiendo copilot plugin [SUBCOMMAND] --help en el terminal.

Comandos de la CLI

Puede usar los siguientes comandos en el terminal para administrar complementos para CLI de Copilot.

ComandoDescripción
copilot plugin install SPECIFICATIONInstale un complemento. Consulte la especificación del complemento para el comando install que se encuentra a continuación.
copilot plugin uninstall NAMEQuitar un complemento
copilot plugin listEnumerar complementos instalados
copilot plugin update NAMEActualización de un complemento
copilot plugin marketplace add SPECIFICATIONRegistro de un marketplace
copilot plugin marketplace listEnumeración de marketplaces registrados
copilot plugin marketplace browse NAMEAnálisis de complementos de Marketplace
copilot plugin marketplace remove NAMEAnulación del registro de un marketplace

Especificación para el comando del complemento install

FormatoEjemploDescripción
Marketplaceplugin@marketplacePlugin de un marketplace registrado
GitHubOWNER/REPORaíz de un GitHub repositorio
          GitHub  subdirectorio | `OWNER/REPO:PATH/TO/PLUGIN`  | Subdirectorio en un repositorio |

| Git URL | https://github.com/o/r.git | Cualquier dirección URL de Git | | Ruta de acceso local | ./my-plugin o /abs/path | Directorio local |

plugin.json

Todos los complementos constan de un directorio de complementos que contiene, como mínimo, un archivo de manifiesto denominado plugin.json ubicado en la raíz del directorio del complemento. Consulte Creación de un complemento para la CLI de GitHub Copilot.

Campo obligatorio

CampoTipoDescripción
namecuerda / cadenaNombre del complemento en formato kebab-case (letras, números, guiones solo). Máximo de 64 caracteres.

Campos de metadatos opcionales

CampoTipoDescripción
descriptioncuerda / cadenaBreve descripción. Máximo de 1024 caracteres.
versioncuerda / cadenaVersión semántica (por ejemplo, 1.0.0).
authorobjeto
          `name` (obligatorio), `email` (opcional), `url` (opcional). |

| homepage | cuerda / cadena | Url de la página principal del complemento. | | repository | cuerda / cadena | Dirección URL del repositorio de origen. | | license | cuerda / cadena | Identificador de licencia (por ejemplo, MIT). | | keywords | string[] | Buscar palabras clave. | | category | cuerda / cadena | Categoría del complemento. | | tags | string[] | Etiquetas adicionales. |

Campos de ruta de acceso de componente

Estos indican a la CLI dónde encontrar los componentes del complemento. Todos son opcionales. La CLI utiliza convenciones predeterminadas si se omiten ciertos parámetros.

CampoTipoPredeterminadoDescripción
agentscadena | cadena[]agents/Rutas hacia directorios de agentes (archivos .agent.md).
skillscadena | cadena[]skills/Rutas de acceso a los directorios de habilidades (SKILL.md archivos).
commandscadena | cadena[]Rutas de acceso a directorios de comandos.
hooksstring | objetoRuta a un archivo de configuración de enlaces o un objeto de enlaces insertados.
mcpServersstring | objetoRuta de acceso a un archivo de configuración de MCP (por ejemplo, .mcp.json) o definiciones de servidor insertadas.
lspServersstring | objetoRuta de acceso a un archivo de configuración LSP o definiciones de servidor en línea.

Archivo plugin.json de ejemplo

JSON
{
  "name": "my-dev-tools",
  "description": "React development utilities",
  "version": "1.2.0",
  "author": {
    "name": "Jane Doe",
    "email": "jane@example.com"
  },
  "license": "MIT",
  "keywords": ["react", "frontend"],
  "agents": "agents/",
  "skills": ["skills/", "extra-skills/"],
  "hooks": "hooks.json",
  "mcpServers": ".mcp.json"
}

marketplace.json

Puede crear un marketplace de complementos ,que los usuarios pueden usar para detectar e instalar los complementos, creando un marketplace.json archivo y guardándolo en el .github/plugin/ directorio del repositorio. También puede almacenar el marketplace.json archivo en el sistema de archivos local. Por ejemplo, guardar el archivo como /PATH/TO/my-marketplace/.github/plugin/marketplace.json le permite agregarlo a la CLI mediante el siguiente comando:

copilot plugin marketplace add /PATH/TO/my-marketplace

Nota:

CLI de Copilot también busca el archivo marketplace.json en el directorio .claude-plugin/.

Para obtener más información, vea Creación de un marketplace de complementos para CLI de GitHub Copilot.

Archivo marketplace.json de ejemplo

JSON
{
  "name": "my-marketplace",
  "owner": {
    "name": "Your Organization",
    "email": "plugins@example.com"
  },
  "metadata": {
    "description": "Curated plugins for our team",
    "version": "1.0.0"
  },
  "plugins": [
    {
      "name": "frontend-design",
      "description": "Create a professional-looking GUI ...",
      "version": "2.1.0",
      "source": "./plugins/frontend-design"
    },
    {
      "name": "security-checks",
      "description": "Check for potential security vulnerabilities ...",
      "version": "1.3.0",
      "source": "./plugins/security-checks"
    }
  ]
}

Nota:

El valor del source campo para cada complemento es la ruta de acceso al directorio del complemento, en relación con la raíz del repositorio. No es necesario usar ./ al principio de la ruta de acceso. Por ejemplo, "./plugins/plugin-name" y "plugins/plugin-name" se resuelven en el mismo directorio.

Campos marketplace.json

Campos de nivel superior

CampoTipoObligatorioDescripción
namecuerda / cadenaNombre de Marketplace en formato kebab-case. Máximo de 64 caracteres.
ownerobjeto
          `{ name, email? }` : información del propietario de Marketplace. |

| plugins | array | Sí | Lista de entradas del complemento (consulte la tabla siguiente). | | metadata | objeto | No | { description?, version?, pluginRoot? } |

Campos de entrada del complemento (objetos dentro de la plugins matriz)

CampoTipoObligatorioDescripción
namecuerda / cadenaNombre del complemento kebab-case. Máximo de 64 caracteres.
sourcestring | objetoDónde capturar el complemento (ruta de acceso relativa, GitHubo dirección URL).
descriptioncuerda / cadenaNoDescripción del complemento. Máximo de 1024 caracteres.
versioncuerda / cadenaNoVersión del complemento.
authorobjetoNo{ name, email?, url? }
homepagecuerda / cadenaNoUrl de la página principal del complemento.
repositorycuerda / cadenaNoDirección URL del repositorio de origen.
licensecuerda / cadenaNoIdentificador de licencia.
keywordsstring[]NoBuscar palabras clave.
categorycuerda / cadenaNoCategoría del complemento.
tagsstring[]NoEtiquetas adicionales.
commandscadena | cadena[]NoRutas de acceso a directorios de comandos.
agentscadena | cadena[]NoRutas de acceso a directorios de agentes.
skillscadena | cadena[]NoRutas de acceso a directorios de aptitudes.
hooksstring | objetoNoRuta a la configuración de enlaces o un objeto de enlaces insertados.
mcpServersstring | objetoNoRuta a la configuración de MCP o definiciones de servidor insertadas.
lspServersstring | objetoNoRuta de acceso a la configuración de LSP o definiciones de servidor en línea.
strictbooleanNoCuando true (el valor predeterminado), los complementos deben ajustarse al esquema completo y a las reglas de validación. Cuando es false, se utiliza una validación relajada, se permite más flexibilidad, especialmente para instalaciones directas o complementos heredados.

Ubicaciones de archivos

ElementoCamino
Complementos instalados
          `~/.copilot/installed-plugins/MARKETPLACE/PLUGIN-NAME` (instalado a través de marketplace) y `~/.copilot/installed-plugins/_direct/SOURCE-ID/` (instalado directamente) |

| Caché de Marketplace | Directorio de caché de plataforma: ~/.cache/copilot/marketplaces/ (Linux), ~/Library/Caches/copilot/marketplaces/ (macOS). Reemplazable con COPILOT_CACHE_HOME. | | Manifiesto del complemento | .plugin/plugin.json, plugin.json, .github/plugin/plugin.json o .claude-plugin/plugin.json (comprobado en este orden) | | Manifiesto de Marketplace | marketplace.json, .plugin/marketplace.json, .github/plugin/marketplace.json o .claude-plugin/marketplace.json (comprobado en este orden) | | Agentes | agents/ (valor predeterminado, reemplazable en el manifiesto) | | Habilidades | skills/ (valor predeterminado, reemplazable en el manifiesto) | | Configuración de ganchos | hooks.json o hooks/hooks.json | | Configuración de MCP | .mcp.json, .vscode/mcp.json, , .devcontainer/devcontainer.json, .github/mcp.json | | Configuración de LSP | lsp.json o .github/lsp.json |

Orden de carga y prioridad

Si instala varios complementos, es posible que algunos agentes personalizados, aptitudes, servidores MCP o herramientas proporcionados a través de servidores MCP tengan nombres duplicados. En esta situación, la CLI determina qué componente usar en función de un orden de precedencia.

  •         **Los agentes y las aptitudes** utilizan la prioridad de "primero en encontrar, primero en ganar."
    

    Si tiene un agente personalizado de nivel de proyecto o una aptitud con el mismo nombre o identificador que uno en un complemento que instale, el agente o la aptitud del complemento se omiten silenciosamente. El complemento no puede invalidar configuraciones personales o de nivel de proyecto. Los agentes personalizados se desduplican mediante su identificador, que se deriva de su nombre de archivo (por ejemplo, si el archivo se denomina reviewer.agent.md, el identificador del agente es reviewer). Las aptitudes se desduplican por su campo de nombre dentro del archivo SKILL.md.

  •         **Los servidores MCP** usan precedencia de última instancia.
    

    Si instala un complemento que define un servidor MCP con el mismo nombre de servidor que un servidor MCP que ya ha instalado, la definición del complemento tiene prioridad. Puede usar la --additional-mcp-config opción de línea de comandos para invalidar una configuración del servidor MCP con el mismo nombre, instalada mediante un complemento.

  •         **Las herramientas y agentes integrados** siempre están presentes y no se pueden invalidar mediante componentes definidos por el usuario.
    

En el diagrama siguiente se muestran las reglas de orden de carga y precedencia.

┌──────────────────────────────────────────────────────────────────┐
│  BUILT-IN - HARDCODED, ALWAYS PRESENT                            │
│  • tools: bash, view, apply_patch, glob, rg, task, ...           │
│  • agents: explore, task, code-review, general-purpose, research │
└────────────────────────┬─────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  CUSTOM AGENTS - FIRST LOADED IS USED (dedup by ID)                 │
  │  1. ~/.copilot/agents/           (user, .github convention)         │
  │  2. <project>/.github/agents/    (project)                          │
  │  3. <parents>/.github/agents/    (inherited, monorepo)              │
  │  4. ~/.claude/agents/            (user, .claude convention)         │
  │  5. <project>/.claude/agents/    (project)                          │
  │  6. <parents>/.claude/agents/    (inherited, monorepo)              │
  │  7. PLUGIN: agents/ dirs         (plugin, by install order)         │
  │  8. Remote org/enterprise agents (remote, via API)                  │
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  AGENT SKILLS - FIRST LOADED IS USED (dedup by name)                │
  │  1. <project>/.github/skills/        (project)                      │
  │  2. <project>/.agents/skills/        (project)                      │
  │  3. <project>/.claude/skills/        (project)                      │
  │  4. <parents>/.github/skills/ etc.   (inherited)                    │
  │  5. ~/.copilot/skills/               (personal-copilot)             │
  │  6. ~/.agents/skills/                (personal-agents)              │
  │  7. ~/.claude/skills/                (personal-claude)              │
  │  8. PLUGIN: skills/ dirs             (plugin)                       │
  │  9. COPILOT_SKILLS_DIRS env + config (custom)                       │
  │  --- then commands (.claude/commands/), skills override commands ---│
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  MCP SERVERS - LAST LOADED IS USED (dedup by server name)           │
  │  1. ~/.copilot/mcp-config.json       (lowest priority)              │
  │  2. .vscode/mcp.json                 (workspace)                    │
  │  3. PLUGIN: MCP configs              (plugins)                      │
  │  4. --additional-mcp-config flag     (highest priority)             │
  └─────────────────────────────────────────────────────────────────────┘

Lectura adicional

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference)