# Creación de un complemento para GitHub Copilot CLI

Cree un complemento para compartir personalizaciones en un paquete fácil de instalar.

## Introducción

Los complementos son paquetes que amplían la funcionalidad de Copilot CLI. Consulta [Información sobre GitHub Copilot complementos](/es/copilot/concepts/agents/about-plugins).

> \[!NOTE]
> Puede encontrar ayuda sobre el uso de complementos escribiendo `copilot plugin [SUBCOMMAND] --help` en el terminal.

## Estructura del complemento

Un complemento consta de un directorio con una estructura específica. Como mínimo, debe contener un `plugin.json` archivo de manifiesto en la raíz del directorio. También puede contener cualquier combinación de agentes, aptitudes, enlaces y configuraciones de servidor MCP.

### Estructura del complemento de ejemplo

```text
my-plugin/
├── plugin.json           # Required manifest
├── agents/               # Custom agents (optional)
│   └── helper.agent.md
├── skills/               # Skills (optional)
│   └── deploy/
│       └── SKILL.md
├── hooks.json            # Hook configuration (optional)
└── .mcp.json             # MCP server config (optional)
```

## Creación de un complemento

1. Cree un directorio para el complemento.

2. Agregue un `plugin.json` archivo de manifiesto a la raíz del directorio.

**Archivo de ejemplo `plugin.json`**

```json copy
{
  "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"
}
```

Para obtener más información sobre el conjunto completo de campos que puede incluir en este archivo, consulte [Referencia del plugin CLI de GitHub Copilot](/es/copilot/reference/copilot-cli-reference/cli-plugin-reference#pluginjson).

1. Agregue algunos componentes al complemento mediante la creación de los archivos y directorios adecuados para agentes, aptitudes, enlaces y configuraciones de servidor MCP.

   Por ejemplo:

   1. Agregue un agente mediante la creación de un `NAME.agent.md` archivo en un `agents` subdirectorio.

      ```markdown copy
      ---
      name: my-agent
      description: Helps with specific tasks
      tools: ["bash", "edit", "view"]
      ---

      You are a specialized assistant that...
      ```

   2. Agregue una aptitud mediante la creación de un `skills/NAME` subdirectorio del directorio del complemento, donde `NAME` es el nombre de la aptitud. A continuación, dentro de este subdirectorio, cree un `SKILL.md` archivo que defina la aptitud.

      Por ejemplo, para crear una aptitud de "implementación", cree `skills/deploy/SKILL.md`:

      ```markdown copy
      ---
      name: deploy
      description: Deploy the current project to...
      ---

      Instructions for the skill...
      ```

2. Instale el complemento localmente para que pueda probarlo a medida que lo desarrolle.

   Por ejemplo, donde `./my-plugin` es la ruta de acceso al directorio del complemento, escriba:

   ```shell copy
   copilot plugin install ./my-plugin
   ```

3. Compruebe que el complemento se cargó correctamente viendo la lista de complementos instalados:

   ```shell copy
   copilot plugin list
   ```

   O bien, puede iniciar una nueva sesión interactiva y escribir:

   ```copilot copy
   /plugin list
   ```

4. Compruebe que los agentes, aptitudes, enlaces y configuraciones del servidor MCP que ha definido se cargan correctamente.

   Por ejemplo, en una sesión interactiva, para comprobar que los agentes personalizados definidos en el complemento se cargaron, escriba:

   ```copilot copy
   /agent
   ```

   Para comprobar que las aptitudes definidas en el complemento se cargaron, escriba:

   ```copilot copy
   /skills list
   ```

5. Use la funcionalidad proporcionada por los componentes del complemento para comprobar que cada componente funciona según lo previsto.

6. Itere en el desarrollo del complemento, según sea necesario.

   > \[!IMPORTANT]
   > Al instalar un complemento, sus componentes se almacenan en caché y la CLI lee de la memoria caché para sesiones posteriores. Para recoger los cambios realizados en un complemento local, instálelo de nuevo:
   >
   > ```shell copy
   > copilot plugin install ./my-plugin
   > ```

7. Una vez finalizadas las pruebas, puede desinstalar la versión local del complemento escribiendo lo siguiente:

   ```shell copy
   copilot plugin uninstall NAME
   ```

   > \[!NOTE]
   > Para desinstalar un complemento, use el nombre del complemento como se especifica en el `name` campo del archivo de manifiesto del `plugin.json` complemento, no la ruta de acceso al directorio del complemento.

## Distribución del complemento

Para distribuir el complemento, puede agregarlo a un marketplace. Consulta [Creación de un marketplace de complementos para GitHub Copilot CLI](/es/copilot/how-tos/copilot-cli/customize-copilot/plugins-marketplace).

## Lectura adicional

* [Búsqueda e instalación de complementos para GitHub Copilot CLI](/es/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing)
* [Referencia del plugin CLI de GitHub Copilot](/es/copilot/reference/copilot-cli-reference/cli-plugin-reference)