Introducción
La interfaz de la línea de comandos (CLI) para GitHub Copilot te permite usar Copilot directamente desde el terminal. Puedes usarlo para responder preguntas, escribir y depurar código e interactuar con GitHub.com. Por ejemplo, puedes pedir a Copilot que realice algunos cambios en un proyecto y cree una solicitud de incorporación de cambios.
CLI de GitHub Copilot proporciona acceso rápido a un eficaz agente de inteligencia artificial, sin tener que salir del terminal. Puede ayudarte a completar tareas más rápidamente trabajando en tu nombre y puedes trabajar de forma iterativa con CLI de GitHub Copilot para compilar el código que necesitas.
Nota:
CLI de GitHub Copilot se encuentra en versión preliminar pública y está sujeto a cambios.
Sistemas operativos admitidos
- Linux
- macOS
- Ventanas desde Subsistema de Windows para Linux (WSL). La compatibilidad nativa de Windows en PowerShell está disponible, pero es experimental.
Para conocer las instrucciones de instalación, consulta Instalación de la CLI de GitHub Copilot.
Modos de uso
CLI de GitHub Copilot se puede usar en dos modos:
-
Modo interactivo: inicia una sesión interactiva mediante el comando
copilot
. Este es el modo predeterminado para trabajar con la CLI.En este modo, puedes pedir a Copilot que responda a una pregunta o que realice una tarea. Puedes reaccionar a las respuestas de Copilot en la misma sesión.
-
Modo de programación: también puedes pasar a la CLI una sola indicación directamente en la línea de comandos. Para ello, usa la opción de línea de comandos
-p
o--prompt
. Para permitir que Copilot modifique y ejecute archivos, también debes usar una de las opciones de aprobación (consulta Permitir el uso de herramientas sin aprobación manual más adelante en este artículo). Por ejemplo:Bash copilot -p "List my open PRs" --allow-all-tools
copilot -p "List my open PRs" --allow-all-tools
Como alternativa, puedes usar un script para generar opciones de línea de comandos y canalizar esto a
copilot
. Por ejemplo:Bash echo ./script-outputting-options.sh | copilot
echo ./script-outputting-options.sh | copilot
Precaución
Si usas una opción de aprobación automática como --allow-all-tools
, Copilot tiene el mismo acceso que a los archivos del equipo y puede ejecutar cualquier comando de shell que puedas ejecutar, sin obtener la aprobación previa. Consulta Consideraciones de seguridad, más adelante en este artículo.
Casos de uso de CLI de GitHub Copilot
En las secciones siguientes se proporcionan ejemplos de tareas que puedes completar con CLI de GitHub Copilot.
Tareas locales
-
Desde dentro de un directorio de proyecto, puedes pedir a Copilot que realice un cambio en el código del proyecto. Por ejemplo:
Change the background-color of H1 headings to dark blue
Copilot busca el archivo CSS donde se definen los encabezados H1 y cambia el valor de color.
-
Pide a Copilot que te informe sobre los cambios realizados en un archivo:
Show me the last 5 changes made to the CHANGELOG.md file. Who changed the file, when, and give a brief summary of the changes they made
-
Usa Copilot para ayudarte a mejorar el código o la documentación del proyecto.
-
Suggest improvements to content.js
-
Rewrite the readme in this project to make it more accessible to newcomers
-
-
Usa Copilot para ayudarte a realizar operaciones de Git.
-
Commit the changes to this repo
-
Revert the last commit, leaving the changes unstaged
-
-
Pide a Copilot que cree una aplicación desde cero, por ejemplo, como prueba de concepto.
Use the create-next-app kit and tailwind CSS to create a next.js app. The app should be a dashboard built with data from the GitHub API. It should track this project's build success rate, average build duration, number of failed builds, and automated test pass rate. After creating the app, give me easy to follow instructions on how to build, run, and view the app in my browser.
-
Pide a Copilot que explique por qué un cambio realizado no funciona según lo esperado o indica a Copilot que corrija un problema con el último cambio que realizó. Por ejemplo:
You said: "The application is now running on http://localhost:3002 and is fully functional!" but when I browse to that URL I get "This site can't be reached"
Tareas que implican GitHub.com
-
Captura y muestra detalles sobre tu trabajo de GitHub.com.
-
List my open PRs
Se enumeran las solicitudes de incorporación de cambios abiertas desde cualquier repositorio de GitHub. Para obtener resultados más específicos, incluye el nombre del repositorio en la indicación:
-
List all open issues assigned to me in OWNER/REPO
-
-
Pide a Copilot que trabaje en una propuesta:
I've been assigned this issue: https://github.com/octo-org/octo-repo/issues/1234. Start working on this for me in a suitably named branch.
-
Pide a Copilot que realice cambios en los archivos y genere una solicitud de incorporación de cambios en GitHub.com.
-
In the root of this repo, add a Node script called user-info.js that outputs information about the user who ran the script. Create a pull request to add this file to the repo on GitHub.
-
Create a PR that updates the README at https://github.com/octo-org/octo-repo, changing the subheading "How to run" to "Example usage"
Copilot crea una solicitud de incorporación de cambios en github.com, en tu nombre. Estás marcado como autor de la solicitud de incorporación de cambios.
-
-
Pide a Copilot que cree una propuesta para ti en GitHub.com.
Raise an improvement issue in octo-org/octo-repo. In src/someapp/somefile.py the `file = open('data.txt', 'r')` block opens a file but never closes it.
-
Pide a Copilot que compruebe los cambios de código en una solicitud de incorporación de cambios.
Check the changes made in PR https://github.com/octo-org/octo-repo/pull/57575. Report any serious errors you find in these changes.
Copilot responde en la CLI con un resumen de los problemas que encuentra.
-
Administrar solicitudes de incorporación de cambios de CLI de GitHub Copilot.
-
Merge all of the open PRs that I've created in octo-org/octo-repo
-
Close PR #11 on octo-org/octo-repo
-
-
Buscar tipos específicos de propuestas.
Use the Github MCP server to find good first issues for a new team member to work on from octo-org/octo-repo
Nota:
Si sabes que un servidor MCP específico puede lograr una tarea determinada, especificarla en la indicación puede ayudar a Copilot a proporcionar los resultados que desees.
-
Buscar flujos de trabajo específicos de GitHub Actions.
List any Actions workflows in this repo that add comments to PRs
-
Crear un flujo de trabajo de GitHub Actions.
Branch off from main and create a github actions workflow that will run on pull requests, or can be run manually. The workflow should run eslint to check for problems in the changes made in the PR. If warnings or errors are found these should be shown as messages in the diff view of the PR. I want to prevent code with errors from being merged into main so, if any errors are found, the workflow should cause the PR check to fail. Push the new branch and create a pull request.
Consideraciones sobre la seguridad
Cuando se usa CLI de Copilot, Copilot puede realizar tareas en tu nombre, como ejecutar o modificar archivos, o ejecutar comandos de shell.
Por lo tanto, siempre debes tener en cuenta las consideraciones de seguridad al usar CLI de Copilot, igual que lo harías al trabajar directamente con archivos tú mismo o al ejecutar comandos directamente en el terminal. Siempre debes revisar cuidadosamente los comandos sugeridos cuando CLI de Copilot solicite tu aprobación.
Directorios de confianza
Al iniciar una sesión de CLI de GitHub Copilot, se te pedirá que confirmes que confías en los archivos y, a continuación, en el directorio desde el que iniciaste la CLI.
Advertencia
- Solo debes iniciar CLI de Copilot desde directorios en los que confíes. No debes usar CLI de Copilot en directorios que puedan contener archivos ejecutables en los que no puedas estar seguro de que confías. Del mismo modo, si inicias la CLI desde un directorio que contiene datos confidenciales, o archivos que no deseas cambiar, podrías exponer esos archivos a un riesgo involuntariamente. Normalmente, no debes iniciar CLI de Copilot desde el directorio principal.
- El ámbito de los permisos es heurístico y GitHub no garantiza que se protegerán todos los archivos fuera de los directorios de confianza. Consulta Mitigación de riesgos más adelante en este artículo.
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 debes elegir esta segunda opción si estás seguro de que esta ubicación siempre será un lugar seguro para que funcione Copilot.
Puedes editar la lista de directorios de confianza permanente al agregar el contenido de la matriz trusted_folders
en el archivo config.json
de la CLI. Se encuentra, de forma predeterminada, en el directorio ~/.config
. Puedes cambiar esta ubicación estableciendo la variable de entorno XDG_CONFIG_HOME
.
Herramientas permitidas
La primera vez que Copilot necesita usar una herramienta que se pueda usar para modificar o ejecutar un archivo (Por ejemplo, touch
, chmod
, node
, o sed
), se te preguntará si deseas permitir que use esa herramienta.
Normalmente, puedes elegir entre tres opciones:
1. Yes
2. Yes, and approve TOOL for the rest of the running session
3. No, and tell Copilot what to do differently (Esc)
La opción 1 permite a Copilot ejecutar este comando concreto, solo esta vez. La próxima vez que necesites usar esta herramienta, se te volverá a preguntar.
La opción 2 permite que Copilot use esta herramienta de nuevo, sin pedir permiso, mientras dure la sesión en ejecución. Volverá a solicitar tu aprobación en nuevas sesiones o si reanudas la sesión actual en el futuro. Si eliges esta opción, permites que Copilot use esta herramienta de la manera que considere adecuada. Por ejemplo, si Copilot te pide que le permitas ejecutar el comando rm ./this-file.txt
y eliges la opción 2, Copilot puede ejecutar cualquier comando rm
(por ejemplo, rm -rf ./*
) durante la ejecución actual de esta sesión, sin pedir tu aprobación.
La opción 3 cancela el comando propuesto y te permite indicar a Copilot que pruebe un enfoque diferente.
Permitir el uso de herramientas sin aprobación manual
Hay tres opciones de línea de comandos que puedes usar para el modo interactivo o mediante programación para determinar las herramientas que Copilot puede usar sin pedir tu aprobación:
-
--allow-all-tools
Permite que Copilot use cualquier herramienta sin solicitar tu aprobación.
Por ejemplo, puedes usar esta opción con el modo de programación para permitir que la CLI ejecute cualquier comando. Por ejemplo:
copilot -p "Revert the last commit" --allow-all-tools
-
--deny-tool
Impide que Copilot use una herramienta específica.
Esta opción tiene prioridad sobre las opciones
--allow-all-tools
y--allow-tool
. -
--allow-tool
Permite que Copilot use una herramienta específica sin solicitar tu aprobación.
Uso de las opciones de aprobación
Las opciones --deny-tool
y --allow-tool
requieren uno de los siguientes argumentos:
-
'shell(COMMAND)'
Por ejemplo,
copilot --deny-tool 'shell(rm)'
impide que Copilot use cualquier comando derm
.Para los comandos
git
ygh
, puedes especificar un subcomando de primer nivel determinado para permitir o denegar. Por ejemplo:copilot --deny-tool 'shell(git push)'
La especificación de la herramienta es opcional. Por ejemplo,
copilot --allow-tool 'shell'
permite que Copilot use cualquier comando de shell sin aprobación individual. -
'write'
Este argumento permite o deniega el permiso de herramientas (que no sean comandos de shell) para modificar archivos.
Por ejemplo,
copilot --allow-tool 'write'
permite que Copilot edite archivos sin tu aprobación individual. -
'MCP_SERVER_NAME'
Este argumento permite o deniega herramientas del servidor MCP especificado, donde
MCP_SERVER_NAME
es el nombre de un servidor MCP que has 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.Por ejemplo,
copilot --deny-tool 'My-MCP-Server(tool_name)'
impide que Copilot use la herramienta llamadatool_name
desde el servidor MCP llamadoMy-MCP-Server
.Puedes encontrar el nombre de un servidor MCP escribiendo
/mcp
en el modo interactivo de CLI de Copilot y seleccionando el servidor de la lista que se muestra.
Combinación de opciones de aprobación
Puedes usar una combinación de opciones de aprobación para determinar exactamente qué herramientas puede usar Copilot sin pedir tu aprobación.
Por ejemplo, para evitar que Copilot use los comandos rm
y git push
, pero permitir automáticamente el resto de herramientas, usa:
copilot --allow-all-tools --deny-tool 'shell(rm)' --deny-tool 'shell(git push)'
Para evitar que Copilot use la herramienta tool_name
del servidor MCP denominado My-MCP-Server
, pero permitir que todas las demás herramientas de ese servidor se usen sin aprobación individual, usa:
copilot --allow-tool 'My-MCP-Server' --deny-tool 'My-MCP-Server(tool_name)'
Implicaciones de seguridad de la aprobación automática de herramientas
Es importante tener en cuenta las implicaciones de seguridad del uso de las opciones de línea de comandos de aprobación. Estas opciones permiten a Copilot ejecutar los comandos necesarios para completar la solicitud, sin tener la oportunidad de revisar y aprobar esos comandos antes de que se ejecuten. Aunque esto simplifica los flujos de trabajo y permite el funcionamiento sin supervisión de la CLI, aumenta el riesgo de que se realicen acciones no deseadas que puedan provocar la pérdida de datos o daños, u otros problemas de seguridad.
Mitigación de riesgos
Puedes mitigar los riesgos asociados al uso de las opciones de aprobación automática mediante el uso de CLI de Copilot en un entorno restringido, como una máquina virtual, un contenedor o un sistema dedicado, sin acceso a Internet. Esto reduce los posibles daños que podrían producirse al permitir que Copilot ejecute comandos que no hayas revisado ni comprobado.
Uso del modelo
Nota:
Claude Sonnet 4.5 está disponible en CLI de GitHub Copilot versión 0.0.329 y posteriores.
El modelo predeterminado usado por CLI de GitHub Copilot es Claude Sonnet 4. GitHub se reserva el derecho de cambiar este modelo.
Puedes cambiar el modelo si estableces la variable de entorno COPILOT_MODEL
en uno de los valores admitidos. Por ejemplo, para cambiar el modelo a GPT-5, establece COPILOT_MODEL
en gpt-5
.
Nombre del modelo | Valor de COPILOT_MODEL |
---|---|
Claude Sonnet 4 | claude-sonnet-4 |
Claude Sonnet 4.5 | claude-sonnet-4.5 |
GPT-5 | gpt-5 |
Cada vez que envíes un mensaje a Copilot en el modo interactivo de CLI de Copilot, y cada vez que uses CLI de Copilot en modo de programación, la cuota mensual de solicitudes premium de Copilot se reduce en uno. Para obtener información sobre las solicitudes Premium, consulta Solicitudes en GitHub Copilot.
Comentarios
Si tienes algún comentario sobre los datos de CLI de GitHub Copilot, háznoslo saber mediante el comando de barra diagonal /feedback
en una sesión interactiva y eligiendo una de las opciones. Puedes completar una encuesta privada de comentarios, enviar un informe de errores o sugerir una nueva característica.