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
- Instale los CLI de Copilot. Consulta Instalación de GitHub Copilot CLI.
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.
-
Abra el archivo
config.jsonde la CLI. De forma predeterminada, se almacena en una.copilotcarpeta 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.
- Edite el contenido de la
trusted_foldersmatriz.
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).
-
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" -
Elija una de las tres opciones:
-
1. YesElija 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 sessionElija 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 cualquierrmcomando (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-Serverse use la herramienta llamadatool_name, use: Copilotcopilot --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
rmygit 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_namedesde el servidor MCP llamadoMy-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_DIRno 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)