Skip to main content

Información sobre las extensiones para CLI de GitHub Copilot

Las extensiones te permiten añadir tus propias herramientas y comandos slash a CLI de GitHub Copilot, utilizando únicamente el SDK incluido con la CLI.

¿Quién puede utilizar esta característica?

CLI de GitHub Copilot está disponible con todos los Copilot planes. Si una organización le envía Copilot, la política CLI de Copilot debe estar habilitada en la configuración de la organización.

Nota:

CLI de GitHub Copilot las extensiones son actualmente una característica experimental y están sujetas a cambios.

Una extensión le permite agregar sus propias funcionalidades a CLI de Copilot. Cada extensión es un módulo de Node.js pequeño que se ejecuta como un proceso independiente junto con la sesión interactiva y se conecta de nuevo a ella. A través de esa conexión, una extensión puede agregar:

  • Herramientas a las que Copilot puede recurrir mientras trabaja en su nombre.
  • Comandos con barra que ejecutas tú mismo.

Dado que una extensión ejecuta código real en la máquina, puede agregar funcionalidades que las herramientas integradas no tienen. Por ejemplo, una extensión puede observar lo que ocurre en una sesión y llevar un total acumulado a lo largo de varias llamadas a herramientas, algo que un comando aislado de shell no puede hacer.

En este artículo se explica cómo funcionan las extensiones y cómo CLI de Copilot las controla. Para obtener una guía práctica sobre cómo crear sus propias extensiones, consulte Creación de extensiones para CLI de GitHub Copilot.

Advertencia

Las extensiones se ejecutan en tu equipo con tus privilegios. Cargue solo el código de extensión que confíe, de la misma manera que solo ejecutaría cualquier otro script que no haya escrito usted mismo.

Cómo se detectan las extensiones

Cuando CLI de Copilot se inicia, busca extensiones en varias ubicaciones. Cada extensión reside en su propio subdirectorio y ese subdirectorio debe contener un archivo de entrada denominado extension.mjs, extension.cjso extension.js. Todos estos son archivos JavaScript: CLI de Copilot ejecuta el archivo de entrada directamente con Node.js, por lo que una extensión debe estar escrita en JavaScript; actualmente, TypeScript y otros lenguajes no son compatibles.

El nombre del subdirectorio se convierte en el nombre de la extensión.

SourceLocationDisponibilidad
Proyecto
.github/extensions/NAME/ en el repositorio actualDisponible para cualquier persona que trabaje en ese repositorio.
User~/.copilot/extensions/NAME/Disponible en todas las sesiones de la CLI, en todos los directorios.
ComplementoUn complemento instaladoDisponible siempre que el complemento esté habilitado.

Elegir dónde se aloja una extensión

Cuando coloque el directorio de extensión determina quién puede usarlo:

  • Colóquelo en .github/extensions/ un repositorio cuando la extensión sea específica de ese proyecto y quiera compartirla con todos los usuarios que trabajan allí.
  • Colóquelo ~/.copilot/extensions/ cuando desee que la extensión esté disponible en todas sus propias sesiones, independientemente del directorio en el que inicie la CLI.

Las dos ubicaciones siguen exactamente la misma estructura (un subdirectorio con nombre que contiene un extension.mjs archivo) para que pueda mover una extensión de una a la otra simplemente mediante la reasignación de su carpeta.

Habilitación de extensiones

Las extensiones son actualmente una característica experimental, por lo que debe activar las características experimentales. Para ello, realice una de las siguientes acciones:

  • Inicie la CLI con el indicador ‑‑experimental.
  • Ejecute el /experimental on comando de barra diagonal dentro de una sesión interactiva.

Cambio del modo en que la CLI controla las extensiones

Puede limitar Copilotel acceso a las extensiones o desactivarlas por completo mediante el /extensions mode comando . Al usar este comando, obtendrá tres opciones:

  • Cargar y aumentar (el valor predeterminado): la CLI ejecuta las extensiones _y_Copilot puede administrarlas.
  • Solo carga: la CLI ejecuta las extensiones, pero Copilot no puede administrarlas.
  • Deshabilitado: las extensiones se desactivan completamente en la sesión actual y permanecerán deshabilitadas en sesiones futuras hasta que cambie a una de las otras dos opciones. Otras sesiones actuales no se ven afectadas.

Cualquier cambio que realice surte efecto inmediatamente en la sesión actual:

  • Al cambiar a Deshabilitado , se detiene cualquier extensión que se esté ejecutando actualmente. Sus procesos se cierran y sus herramientas ya no están disponibles.
  • Al cambiar de Deshabilitado a cualquiera de las otras opciones, se inician las extensiones.
  • Cambiar entre Load Only y Load & Augment solo cambia si Copilot puede administrar sus extensiones.

Lo que significa "administrar extensiones"

En el modo Cargar y ampliar, se proporciona a Copilot un pequeño conjunto de herramientas adicionales que le permiten trabajar directamente en el sistema de extensiones como parte de la ejecución de sus solicitudes. Con estas herramientas, Copilot puede:

  • Enumere las extensiones que ha detectado y vea su estado.
  • Inspeccionar una extensión, incluidas las últimas líneas de su archivo de registro, para ayudar a diagnosticar una que ha fallado o presenta un comportamiento incorrecto.
  • Crear la estructura base de una nueva extensión: generar un archivo base extension.mjs sobre el que pueda desarrollar.
  • Volver a cargar extensiones para que el código que esta (o usted) acaba de escribir surta efecto sin reiniciar la sesión.

Esto es lo que permite solicitarle Copilot que compile una extensión. Copilot puede crear el archivo, escribir el código y volver a cargarlo, todo sin salir de la sesión.

Elija Cargar solo cuando quiera mantener un conjunto conocido y de confianza de extensiones en ejecución, pero no quiera Copilot crear, volver a cargar o cambiar el código de extensión, que se ejecuta en el equipo, como efecto secundario de su trabajo. Tus extensiones existentes siguen funcionando y Copilot todavía puede invocar las herramientas que proporcionan; simplemente no puede administrar las extensiones en sí.

Extensiones en comparación con complementos

Tanto las extensiones como los complementos agregan funcionalidad a CLI de Copilot, pero sirven para diferentes propósitos:

  • Una extensión es un único módulo de JavaScript que escribes para añadir herramientas y comandos con barra, basados en código que se ejecuta en tu sesión.
  • Un complemento es un paquete instalable que agrupa componentes reutilizables (como agentes, aptitudes, enlaces e integraciones) y se puede distribuir a través de marketplace.

Para obtener más información sobre los complementos, consulte Información sobre GitHub Copilot complementos.

Lectura adicional