Skip to main content

Configuración de la CLI de GitHub Copilot

Configuración de directorios de confianza, acceso a herramientas y permisos de ruta de acceso y dirección URL para CLI de Copilot

Introducción

          CLI de Copilot tiene varias opciones de configuración que controlan lo que puede acceder y hacer en su nombre.

En este artículo se muestra cómo establecer directorios de confianza, configurar el acceso para herramientas y conceder permisos a rutas de acceso y direcciones URL de archivos.

Prerrequisitos

Establecimiento de directorios de confianza

Los directorios de confianza controlan dónde CLI de Copilot pueden leer, modificar y ejecutar archivos. Confiar en un directorio tiene implicaciones de seguridad, consulte Consideraciones de seguridad.

Elección de confiar en un directorio

Al iniciar una sesión CLI de GitHub Copilot, se le pedirá que confirme que confía en los archivos en el directorio desde el que inició el CLI, así como en los directorios inferiores.

Puedes elegir confiar en el directorio actual para:

  • Solo la sesión que se está ejecutando actualmente
  • Esta y futuras sesiones

Si decides confiar en el directorio para futuras sesiones, el aviso de directorio de confianza no se volverá a mostrar. Solo debe elegir esta segunda opción si está seguro de que esta ubicación siempre será un lugar seguro para Copilot operar.

Edición de directorios de confianza

Puede editar la lista de directorios que son permanentemente de confianza.

  1. Abra el archivo config.json de la CLI. De forma predeterminada, se almacena en una .copilot carpeta en el directorio principal:

    •      **macOS/Linux**: `~/.copilot/config.json`
      
    •      **Windows**: `$HOME\.copilot\config.json`
      

Puede cambiar la ubicación de configuración estableciendo la variable de COPILOT_HOME entorno.

  1. Edite el contenido de la trusted_folders matriz.

Configuración de herramientas permitidas

Puede controlar qué herramientas CLI de Copilot pueden usar, ya sea respondiendo a las solicitudes de aprobación cuando Copilot intenta usar una herramienta o especificando permisos a través de marcas de línea de comandos.

Tenga en cuenta que permitir el acceso a herramientas tiene implicaciones de seguridad, consulte Consideraciones de seguridad.

En esta sección, puede aprender a:

  •         [Permitir el uso de una herramienta por primera vez](#allowing-a-tool-for-the-first-time)
    
  •         [Permitir que las herramientas se usen sin aprobación manual](#allowing-tools-to-be-used-without-manual-approval)
    
  •         [Especificar la herramienta que desea permitir o denegar](#specifying-which-tool-you-want-to-allow-or-deny)
    
  •         [Permitir algunas herramientas a la vez que se deniegan otras](#allowing-some-tools-while-denying-others)
    
  •         [Limitar las herramientas disponibles](#limiting-available-tools)
    

Permitir una herramienta por primera vez

La primera vez que Copilot necesite usar una herramienta que pueda requerir aprobación (por ejemplo, Por ejemplo, touch, chmod, node, o sed), le preguntará si desea permitir que se ejecute. Si se le solicita puede depender de la herramienta y de cómo se usa (por ejemplo, los argumentos proporcionados o si la herramienta se ha aprobado previamente).

  1. Indicar a Copilot que ejecute una tarea que necesite una herramienta. Por ejemplo:

    copilot -p "Create a new file called README.md with a project description"
    
  2. Elija una de las tres opciones:

    • 1. Yes

      Elija esta opción para permitir Copilot ejecutar este comando en particular, esta vez solo. La próxima vez que necesites usar esta herramienta, se te volverá a preguntar.

    • 2. Yes, and approve TOOL for the rest of the running session

      Elija esta opción para permitir Copilot el uso de esta herramienta durante la sesión que se está ejecutando actualmente. Volverá a solicitar tu aprobación en nuevas sesiones o si reanudas la sesión actual en el futuro. Si elige esta opción, le permitirá Copilot usar esta herramienta de cualquier manera que considere que es adecuada.

      Por ejemplo, si Copilot le pide que lo permita ejecutar el comando rm ./this-file.txty elija la opción 2, Copilot puede ejecutar cualquier rm comando (por ejemplo, rm -rf ./*) durante la ejecución actual de esta sesión, sin pedir su aprobación.

    • 3. No, and tell Copilot what to do differently (Esc)

      Elija esta opción para cancelar el comando propuesto e indique Copilot que pruebe un enfoque diferente.

Permitir el uso de herramientas sin aprobación manual

Puede usar marcas de línea de comandos para designar herramientas que Copilot pueden usar sin pedir su aprobación.

Permitir todas las herramientas

Utilice --allow-all-tools para permitir que Copilot use cualquier herramienta sin pedir su aprobación.

  • Por ejemplo:

    copilot -p "Revert the last commit" --allow-all-tools
    

Denegar una herramienta

Use --deny-tool para evitar que Copilot use una herramienta específica.

  • Por ejemplo:

    copilot --deny-tool='shell(git push)'
    

Esta opción tiene prioridad sobre las opciones --allow-all-tools y --allow-tool.

Permitir el uso de una herramienta

Use --allow-tool para permitir Copilot el uso de una herramienta específica sin pedir su aprobación.

  • Por ejemplo:

    copilot --allow-tool='shell'
    

Especificación de la herramienta que desea permitir o denegar

Para usar las --deny-tool opciones y --allow-tool , debe especificar qué tipo de herramienta desea permitir o denegar:

  •         [Comandos de Shell](#allowing-or-denying-shell-commands)
    
  •         [Herramientas de "escritura"](#allowing-or-denying-write-tools)
    
  •         [Herramientas de servidor MCP](#allowing-or-denying-mcp-server-tools)
    

Permitir o denegar comandos de shell

Use shell(COMMAND) para permitir o denegar un comando de shell específico.

  • Por ejemplo, para evitar que Copilot utilice cualquier comando rm, use:

    copilot --deny-tool='shell(rm)'
    

Para los comandos git y gh, especifique un subcomando de primer nivel concreto para permitir o denegar.

  • Por ejemplo, para evitar que Copilot use git push, use:

    copilot --deny-tool='shell(git push)'
    

La especificación de la herramienta es opcional. Por ejemplo, copilot --allow-tool='shell' permite Copilot usar cualquier comando de shell sin aprobación individual.

Permitir o denegar 'write' herramientas

Se usa 'write' para permitir o denegar herramientas(que no sean comandos de shell) para modificar archivos.

  • Por ejemplo, para permitir Copilot editar archivos sin su aprobación individual, use:

    copilot --allow-tool='write'
    

Permitir o denegar herramientas de servidor MCP

Use 'MCP_SERVER_NAME' para permitir o denegar una herramienta específica del servidor MCP especificado.

  • Por ejemplo, para evitar que desde el servidor MCP denominado My-MCP-Server se use la herramienta llamada tool_name, use: Copilot

    copilot --deny-tool='My-MCP-Server(tool_name)'
    
            `MCP_SERVER_NAME` es el nombre de un servidor MCP que ha configurado.
    

Las herramientas del servidor se especifican entre paréntesis, con el nombre de la herramienta registrada con el servidor MCP.

El uso del nombre del servidor sin especificar una herramienta permite o deniega todas las herramientas de ese servidor.

Puede encontrar el nombre de un servidor MCP escribiendo /mcp en el modo interactivo de CLI de Copilot y seleccionando el servidor en la lista que se muestra.

Permitir algunas herramientas mientras se niegan otras

Para determinar exactamente qué herramientas Copilot pueden usar sin pedir su aprobación, puede usar una combinación de opciones de aprobación. Por ejemplo:

  • Para evitar que Copilot use los comandos rm y git push, pero permitir automáticamente todas las demás herramientas, utilice:

    copilot --allow-all-tools --deny-tool='shell(rm)' --deny-tool='shell(git push)'
    
  • Para evitar que Copilot use la herramienta tool_name desde el servidor MCP llamado My-MCP-Server, pero permitir que todas las demás herramientas de ese servidor se puedan usar sin aprobación individual, use:

    copilot --allow-tool='My-MCP-Server' --deny-tool='My-MCP-Server(tool_name)'
    

Limitación de las herramientas disponibles

Para restringir Copilot a un conjunto específico de herramientas, use --available-tools.

Las herramientas no incluidas en esta lista no estarán disponibles para Copilot.

Establecer permisos de ruta

Los permisos de ruta de acceso controlan a qué directorios y archivos Copilot pueden acceder.

De forma predeterminada, CLI de Copilot puede acceder al directorio de trabajo actual, a sus subdirectorios y al directorio temporal del sistema.

Los permisos de ruta de acceso se aplican a comandos de shell, operaciones de archivo (crear, editar, ver) y herramientas de búsqueda (como grep y patrones globales). En el caso de los comandos de shell, las rutas de acceso se extraen heurísticamente mediante la tokenización del texto del comando y la identificación de tokens que tienen un aspecto similar a las rutas de acceso.

Advertencia

La detección de rutas de acceso para comandos de shell tiene limitaciones:

  • Es posible que no se detecten rutas de acceso insertadas en construcciones de shell complejas.
  • Solo se expande un conjunto específico de variables de entorno (HOME, TMPDIR, PWDy similar). Las variables personalizadas como $MY_PROJECT_DIR no se expanden y es posible que no se validen correctamente.
  • Los vínculos simbólicos se resuelven para los archivos existentes, pero no para los archivos que se crean.

Permitir el acceso a todas las rutas

Para deshabilitar la comprobación de ruta y permitir el acceso a cualquier ruta, use el indicador --allow-all-paths al iniciar CLI de Copilot.

No permitir el acceso al directorio temporal

Para no permitir el acceso al directorio temporal, use --disallow-temp-dir.

Establecer permisos de dirección URL

Los permisos de dirección URL controlan a qué direcciones URL Copilot externas pueden acceder. De forma predeterminada, todas las direcciones URL requieren aprobación antes de conceder acceso.

Los permisos de dirección URL se aplican a la web_fetch herramienta y a una lista seleccionada de comandos de shell que acceden a la red (como curl, wgety fetch). En el caso de los comandos de shell, las direcciones URL se extraen mediante patrones regex.

Advertencia

La detección de direcciones URL para comandos de shell tiene limitaciones:

  • No se detectan direcciones URL en el contenido del archivo, los archivos de configuración o las variables de entorno leídos por comandos.
  • Es posible que no se detecten direcciones URL ofuscadas (como cadenas divididas o secuencias de escape).
  • HTTP y HTTPS se tratan como protocolos diferentes y requieren aprobación independiente.

Los permisos de dirección URL se pueden conservar para la sesión o permanentemente.

Deshabilitación de la comprobación de direcciones URL

Para deshabilitar la comprobación de direcciones URL, use la --allow-all-urls marca .

Aprobación previa de dominios específicos

Para aprobar previamente dominios específicos, use --allow-url=DOMAIN.

  • Por ejemplo: --allow-url=github.com.

Denegación de dominios específicos

Para denegar dominios específicos, use --deny-url=DOMAIN.

  • Por ejemplo: --deny-url=github.com.

Permitir todas las herramientas, rutas de acceso y direcciones URL

Para permitir todas las herramientas, rutas de acceso y direcciones URL, use --allow-all, o su alias, --yolo.

Esta marca combina: * --allow-all-tools (omitir la aprobación de la herramienta). * --allow-all-paths (deshabilite la comprobación de la ruta de acceso). * --allow-all-urls (deshabilita la comprobación de direcciones URL).

Sugerencia

Durante una sesión interactiva, también puede habilitar todos los permisos con los "comandos de barra diagonal" /allow-all o /yolo.

Lectura adicional

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-config-dir-reference)