Skip to main content
Skip to content

Configuración de la CLI de GitHub Copilot

Configure directorios de confianza, acceso a herramientas, permisos de ruta y URL, y telemetría del lado del cliente para Copilot CLI.

Introducción

Copilot CLI 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, conceder permisos a rutas de acceso y direcciones URL de archivos y deshabilitar la telemetría del lado cliente.

Prerrequisitos

Establecimiento de directorios de confianza

Los directorios de confianza controlan dónde Copilot CLI 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 GitHub Copilot CLI, 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. Los directorios de confianza se almacenan en el archivo administrado config.json automáticamente.

  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. Esto cambiaría ~/.copilot/ y $HOME\.copilot\ en las rutas anteriores.

  1. Edite el contenido de la trustedFolders matriz.

Configuración de herramientas permitidas

Puede controlar qué herramientas puede usar Copilot CLI, ya sea respondiendo a las solicitudes de aprobación cuando Copilot intenta usar una herramienta o especificando permisos mediante opciones 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 una herramienta por primera vez

En el modo de aprobación manual, Copilot le pide que apruebe las solicitudes de herramientas que aún no están permitidas—Por ejemplo, touch, chmod, node, o sed Que se te pida depende de los permisos en vigor y de cómo se usa la herramienta, como sus argumentos o aprobaciones anteriores.

  1. Inicie una sesión interactiva mediante la ejecución de copilot, y escriba /permissions manual.

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

    Create a new file called README.md with a project description
    
  3. Si la herramienta aún no está permitida, elija entre las opciones de aprobación:

    • 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 opciones de línea de comandos para designar herramientas que puede usar Copilot sin solicitar su aprobación.

Como alternativa, para reducir las solicitudes de aprobación sin conceder permisos generales, escriba /permissions assisted en una sesión interactiva. Con assisted permissions, un modelo de lenguaje grande evalúa las solicitudes de permisos aptas y aprueba automáticamente aquellas que considera seguras. Los permisos existentes y las reglas de empresa se siguen aplicando y las solicitudes que aún necesitan su aprobación se le presentan. Para obtener más información, vea Permitir que los comandos seguros se ejecuten sin aprobación manual.

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:

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 Copilot use la herramienta denominada tool_name desde el servidor MCP denominado My-MCP-Server, use:

    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 Copilot CLI 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, Copilot CLI 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 la ruta de acceso y permitir el acceso a cualquier ruta de acceso, use la --allow-all-paths opción al iniciar Copilot CLI.

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 opción --allow-all-urls.

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 opción 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).

Durante una sesión interactiva, también puede habilitar todos los permisos con el /permissions allow-all comando de barra diagonal, o sus alias /allow-all y /yolo.

Nota:

Si tiene una Copilot Business licencia o Copilot Enterprise , un administrador de empresa puede bloquear estos comandos.

Restringir el acceso a los archivos

Las distintas opciones de --allow-all... le ahorran tener que decidir si se permite a Copilot acceder a cada herramienta, archivo y dirección URL. Sin embargo, el uso de ellos amplía el ámbito de Copilot para realizar acciones que es posible que no desee, por ejemplo, modificar archivos fuera del repositorio en el que está trabajando.

Para mitigar este riesgo, puede indicar a la CLI que aísle sus comandos en un entorno aislado (espacio aislado local), o puede ejecutar toda la sesión Copilot CLI en un espacio aislado en la nube. Para obtener más información, vea Acerca del aislamiento local para GitHub Copilot y Información sobre sandboxes en la nube para GitHub Copilot.

Desactivación de la telemetría del cliente

Para deshabilitar la telemetría del cliente de origen para la invocación actual, inicie Copilot CLI con la opción --disable-client-telemetry:

copilot --disable-client-telemetry

Esta opción deshabilita la telemetría propia enviada por la CLI, incluida la telemetría sin restricciones y restringida. No se guarda en su configuración.

La opción no deshabilita la recopilación en el servidor de GitHub de datos de sesión o telemetría. Tampoco afecta a:

  • Exportaciones de OpenTelemetry configuradas por usted o su empresa.
  • Telemetría enviada a una aplicación que usa el Copilot SDK, cuando esa aplicación habilita explícitamente el reenvío de telemetría a medida que se conecta a la CLI.

Lectura adicional