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 que Copilot pueden llamar mientras funciona en su nombre.
- Comandos de barra diagonal que se ejecutan usted 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 ver lo que sucede en una sesión y mantener un total en ejecución en las llamadas a herramientas, lo que no puede hacer un comando de shell único.
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. Estos son todos los archivos de JavaScript: CLI de Copilot ejecuta el archivo de entrada directamente con Node.js, por lo que actualmente no se admite una extensión en JavaScript: TypeScript y otros lenguajes.
El nombre del subdirectorio se convierte en el nombre de la extensión.
| Source | Location | Disponibilidad |
|---|---|---|
| Proyecto | ||
.github/ en el repositorio actual | Disponible para cualquier persona que trabaje en ese repositorio. | |
| User | ~/ | Disponible en todas las sesiones de la CLI, en todos los directorios. |
| Complemento | Un complemento instalado | Disponible siempre que el complemento esté habilitado. |
Elección de dónde reside 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 la
--experimentalmarca . - Ejecute el
/experimental oncomando 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 De carga y aumento , Copilot se le da un pequeño conjunto de herramientas adicionales que le permiten trabajar en el sistema de extensión directamente, como parte de llevar a cabo sus solicitudes. Con estas herramientas, Copilot puede:
- Enumere las extensiones que ha detectado y vea su estado.
- Inspeccione una extensión, incluida una cola de su archivo de registro, para ayudar a diagnosticar uno que ha fallado o se comporta mal.
- Aplicar scaffolding a una nueva extensión: genere un archivo de inicio
extension.mjsen el que pueda compilar. - Vuelva a cargar extensiones, de modo que el código que haya escrito (o usted) solo surte 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. Las extensiones existentes siguen ejecutándose y Copilot todavía pueden llamar a las herramientas que proporcionan; simplemente no puede administrar las extensiones por sí mismas.
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 se escribe para agregar herramientas y comandos de barra diagonal, respaldados por código que se ejecuta en la 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.