Skip to main content

Referencia de comandos de la CLI de GitHub Copilot

Busque comandos y métodos abreviados de teclado para ayudarle a usar CLI de Copilot de forma eficaz.

Comandos de la línea de comandos

Comandopropósito
copilotInicie la interfaz de usuario interactiva.
copilot help [TOPIC]Mostrar información de ayuda. Los temas de ayuda incluyen: config, commands, environment, logging, monitoring, permissionsy providers.
copilot initInicialice instrucciones personalizadas de Copilot para este repositorio.
copilot loginAutentíquese con Copilot a través del flujo del dispositivo OAuth.
          `--host HOST` Acepta para especificar la dirección URL del GitHub host (valor predeterminado: `https://github.com`). |

| copilot login [OPCIÓN] | Autentíquese con Copilot a través del flujo del dispositivo OAuth. Consulte copilot login las opciones. | | copilot mcp | Administre las configuraciones del servidor MCP desde la línea de comandos. | | copilot plugin | Administrar complementos y mercados de complementos. | | copilot update | Descargue e instale la versión más reciente. | | copilot version | Mostrar información de versión y comprobar si hay actualizaciones. |

          `copilot login` opciones
Opciónpropósito
--host HOST
          GitHub dirección URL de host (valor predeterminado: `https://github.com`). Úselo para autenticarse con una GitHub Enterprise Cloud instancia que use la residencia de datos (por ejemplo, `https://example.ghe.com`). |

| --config-dir PATH | Establezca el directorio de configuración (valor predeterminado: ~/.copilot). |

El modo de autenticación predeterminado es un flujo de explorador basado en web. Después de la finalización, un token de autenticación se almacena de forma segura en el almacén de credenciales del sistema. Si no se encuentra un almacén de credenciales, el token se almacena en un archivo de configuración de texto sin formato en ~/.copilot/.

Como alternativa, CLI de Copilot usará un token de autenticación que se encuentra en variables de entorno. A continuación se comprueban en orden de prioridad: COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN. Este método es más adecuado para su uso sin interfaz gráfica, como en la automatización.

Los tipos de tokens admitidos incluyen fine-grained personal access tokens (v2 PAT) con el permiso "Solicitudes de Copilot", tokens de OAuth de la aplicación CLI Copilot, y tokens de OAuth de la aplicación GitHub CLI (gh). No se admiten los clásicos personal access tokens (ghp_).

          **Ejemplos:**
# Authenticate with github.com
copilot login

# Authenticate with GitHub Enterprise Cloud (data residency)
copilot login --host https://example.ghe.com

# Use a fine-grained PAT via environment variable
COPILOT_GITHUB_TOKEN=github_pat_... copilot

Accesos directos globales en la interfaz interactiva

Shortcutpropósito
@ FILENAMEIncluya el contenido del archivo en el contexto.
# NUMBERIncluya un problema o una GitHub solicitud de incorporación de cambios en el contexto.
! COMMANDEjecute un comando en su shell local, omitiendo Copilot.
?Abrir ayuda rápida (en un indicador vacío).
EscCancele la operación actual.
Ctrl+CCancelar operación/borrar entrada. Presione dos veces para salir.
Ctrl+DApagado.
Ctrl+GEdite la instrucción en un editor externo ($EDITOR).
Ctrl+LBorre la pantalla.
Ctrl+Escriba o Ctrl+Q.Poner en cola un mensaje para enviar mientras el agente está ocupado.
Ctrl+RBúsqueda inversa a través del historial de comandos.
Ctrl+VPegue desde el Portapapeles como archivo adjunto.
Ctrl+X después /Después de empezar a escribir un mensaje, esto le permite ejecutar un comando de barra, por ejemplo, si desea cambiar el modelo sin tener que volver a escribir el mensaje.
Ctrl+X después eEditar el indicador en un editor externo ($EDITOR).
Ctrl+X después oAbra el vínculo más reciente de la línea de tiempo.
Ctrl+ZSuspenda el proceso en segundo plano (Unix).
Mayús+Intro o Opción+Intro (Mac) / Alt+Intro (Windows/Linux)Inserte una nueva línea en la entrada.
Mayús+TabuladorCiclo entre el modo estándar, plan y Autopilot.

Accesos directos de escala de tiempo en la interfaz interactiva

Shortcutpropósito
Ctrl+OSi bien no hay nada en la entrada de la solicitud, expande los elementos recientes en la línea de tiempo de respuesta de Copilot para mostrar más detalles.
Ctrl+ESi bien no hay nada en la entrada del mensaje, expande todos los elementos en la línea de tiempo de respuesta de Copilot.
Ctrl+TExpandir o contraer la visualización del razonamiento en las respuestas.
Subir/ páginaPágina abajoDesplazar la línea de tiempo hacia arriba o hacia abajo en una página.
Shortcutpropósito
Ctrl+AIr al principio de la línea (al escribir).
Ctrl+BVaya al carácter anterior.
Ctrl+EVaya al final de la línea (al escribir).
Ctrl+FVaya al siguiente carácter.
Ctrl+HElimine el carácter anterior.
Ctrl+KEliminar desde el cursor hasta el final de la línea. Si el cursor está al final de la línea, elimine el salto de línea.
Ctrl+UEliminar desde el cursor hasta el principio de la línea.
Ctrl+WElimine la palabra anterior.
Página principalVaya al principio del texto.
FinVaya al final del texto.
Alt+/← (Windows/Linux)
          <kbd>Opción</kbd>+<kbd>←</kbd>/<kbd>→</kbd> (Mac) | Mueva el cursor una palabra a la vez.             |

| / | Navegue por el historial de comandos. |

Comandos de barra en la interfaz interactiva

Comandopropósito
/add-dir PATHAgregue un directorio a la lista de permitidos para el acceso a archivos.
/agentExamine y seleccione entre los agentes disponibles (si los hay). Consulte Acerca de los agentes personalizados.
/ask QUESTIONHaga una pregunta rápida sin agregar al historial de conversación. Solo está disponible en modo experimental.
/allow-all [on|off|show], /yolo [on|off|show]Habilite todos los permisos (herramientas, rutas de acceso y direcciones URL).
/changelog [summarize] [VERSION|last N|since VERSION], /release-notes [summarize] [VERSION|last N|since VERSION]Muestra el registro de cambios de la CLI. Opcionalmente, especifique una versión, un recuento de versiones recientes o una versión inicial. Agregue la palabra clave summarize para un resumen generado por IA.
/chronicle <standup|tips|improve|reindex>Herramientas de análisis del historial de sesiones. Solo está disponible en modo experimental.
/clear [PROMPT], , /new [PROMPT], /reset [PROMPT]Inicie una nueva conversación.
/compactResumir el historial de conversaciones para reducir el uso de la ventana de contexto. Consulte Administración del contexto en CLI de GitHub Copilot.
/contextMuestra el uso y la visualización del token de la ventana de contexto. Consulte Administración del contexto en CLI de GitHub Copilot.
/copyCopie la última respuesta en el Portapapeles.
/cwd, /cd [PATH]Cambie el directorio de trabajo o muestre el directorio actual.
/delegate [PROMPT]Delegar cambios en un repositorio remoto con una solicitud de incorporación de cambios generada por IA. Consulte Delegación de tareas a CLI de GitHub Copilot.
/diffRevise los cambios realizados en el directorio actual.
/envMostrar los detalles del entorno cargados (instrucciones, servidores MCP, aptitudes, agentes, complementos, LSP, extensiones).
/exit, /quitSalir de la CLI.
/experimental [on|off|show]Alternar, establecer o mostrar funciones experimentales.
/feedback, /bugProporcione comentarios sobre la CLI.
/fleet [PROMPT]Habilite la ejecución paralela de subagentes de partes de una tarea. Consulte Ejecución de tareas en paralelo con el /fleet comando.
/helpMostrar la ayuda para comandos interactivos.
/ideConéctese a un área de trabajo del IDE. Consulte CLI de GitHub Copilot Conexión aVS Code.
/initInicialice instrucciones personalizadas y características de agente de Copilot para este repositorio. Vea Inicialización del proyecto para Copilot.
/instructionsVer y activar o desactivar archivos de instrucciones personalizadas.
/keep-alive [on|busy|NUMBERm|NUMBERh]Impedir que la máquina se ponga en suspensión: mientras una sesión de la línea de comandos está activa, mientras el agente está ocupado o durante un período de tiempo definido. Solo está disponible en modo experimental.
/list-dirsMuestra todos los directorios para los que se ha permitido el acceso a archivos.
/loginInicie sesión en Copilot.
/logoutCierre sesión en Copilot.
/lsp [show|test|reload|help] [SERVER-NAME]Administrar la configuración del servidor de idioma.
/mcp [show|add|edit|delete|disable|enable|auth|reload] [SERVER-NAME]Administrar la configuración del servidor MCP. Consulte Adición de servidores MCP para CLI de GitHub Copilot.
/model, /models [MODEL]Seleccione el modelo de IA que desea usar.
/plan [PROMPT]Cree un plan de implementación antes de codificar.
/plugin [marketplace|install|uninstall|update|list] [ARGS...]Administrar complementos y mercados de complementos. Consulte Acerca de los complementos para CLI de GitHub Copilot.
/pr [view|create|fix|auto]Administrar solicitudes de incorporación de cambios para la rama actual. Consulte Gestión de pull requests con el comando /pr.
/remoteHabilite el acceso remoto a esta sesión desde GitHub.com y GitHub Mobile. Consulte Controlar una CLI de GitHub Copilot sesión desde otro dispositivo.
/rename [NAME]Cambie el nombre de la sesión actual (genera automáticamente un nombre si se omite; alias para /session rename).
/research TOPICRealice una investigación profunda utilizando GitHub fuentes de búsqueda y web. Consulte Investigación con CLI de GitHub Copilot.
/reset-allowed-toolsRestablezca la lista de herramientas permitidas.
/restartReinicie la CLI, conservando la sesión actual.
/resume [SESSION-ID], /continue [SESSION-ID]Cambie a otra sesión eligiendo entre una lista (opcionalmente, especifique un identificador de sesión).
/review [PROMPT]Ejecute el agente de revisión de código para analizar los cambios. Consulte Solicitud de una revisión de código con CLI de GitHub Copilot.
/session [checkpoints [n]|files|plan|rename NAME], /sessions [checkpoints [n]|files|plan|rename NAME]Mostrar información de sesión y un resumen del área de trabajo. Use los subcomandos para obtener más información.
/share [file|html|gist] [session|research] [PATH], /export [file|html|gist] [session|research] [PATH]Comparta la sesión en un archivo Markdown, un archivo HTML interactivo o un gist GitHub.
/skills [list|info|add|remove|reload] [ARGS...]Gestionar habilidades para capacidades mejoradas. Consulte Adición de habilidades de agente para CLI de GitHub Copilot.
/statusline, /footerConfigure los elementos que aparecen en la línea de estado.
/tasksVer y administrar tareas en segundo plano (subagentes y sesiones de shell).
/terminal-setupConfigure el terminal para la compatibilidad con la entrada multilínea (Mayús+Entrar y Ctrl+Entrar).
/theme [default|dim|high-contrast|colorblind]Ver o establecer el modo de color.
/undo, /rewindRebobinar el último turno y revertir los cambios de archivo.
/update, /upgradeActualice la CLI a la versión más reciente.
/usageMuestra las estadísticas y métricas de uso de la sesión.
/user [show|list|switch]Administrar al usuario actual GitHub.
/versionMostrar información de versión y comprobar si hay actualizaciones.

Para obtener una lista completa de los comandos de barra diagonal disponibles, escriba /help en la interfaz interactiva de la CLI.

Opciones de la línea de comandos

Opciónpropósito
--add-dir=PATHAgregue un directorio a la lista de permitidos para el acceso a archivos (se puede usar varias veces).
--add-github-mcp-tool=TOOLAgregue una herramienta para habilitar para el GitHub servidor MCP, en lugar del subconjunto predeterminado de la CLI (se puede usar varias veces). Utilice * para todas las herramientas.
--add-github-mcp-toolset=TOOLSETAgregue un conjunto de herramientas para habilitar para el GitHub servidor MCP, en lugar del subconjunto predeterminado de la CLI (se puede usar varias veces). Use all para todos los conjuntos de herramientas.
--additional-mcp-config=JSONAgregue un servidor MCP solo para esta sesión. La configuración del servidor se puede proporcionar como una cadena JSON o una ruta de acceso de archivo (prefijo con @). Amplía la configuración de ~/.copilot/mcp-config.json. Invalida cualquier configuración de servidor MCP instalada con el mismo nombre. Consulte Adición de servidores MCP para CLI de GitHub Copilot.
--agent=AGENTEspecifique un agente personalizado que se va a usar. Consulte Acerca de los agentes personalizados.
--allow-allHabilite todos los permisos (equivalentes a --allow-all-tools --allow-all-paths --allow-all-urls).
--allow-all-pathsDeshabilite la comprobación de la ruta de acceso del archivo y permita el acceso a cualquier ruta de acceso.
--allow-all-toolsPermitir que todas las herramientas se ejecuten automáticamente sin confirmación. Necesario cuando se usa la CLI mediante programación (env: COPILOT_ALLOW_ALL).
--allow-all-urlsPermitir el acceso a todas las direcciones URL sin confirmación.
--allow-tool=TOOL ...Herramientas que la CLI tiene permiso para usar. No solicitará permiso. Para varias herramientas, use una lista entrecomillada y separada por comas. Consulte Permitir y denegar el uso de la herramienta.
--allow-url=URL ...Permitir el acceso a direcciones URL o dominios específicos. Para varias direcciones URL, use una lista entrecomillada y separada por comas.
--autopilotHabilite la continuación del piloto automático en modo aviso. Consulte Permitir que la CLI de GitHub Copilot funcione de forma autónoma.
--available-tools=TOOL ...Solo estas herramientas estarán disponibles para el modelo. Para varias herramientas, use una lista entrecomillada y separada por comas. Consulte Permitir y denegar el uso de la herramienta.
--banner, --no-bannerMostrar u ocultar el banner de inicio.
--bash-envHabilitar la BASH_ENV compatibilidad con las shells Bash.
--config-dir=PATHEstablezca el directorio de configuración (valor predeterminado: ~/.copilot).
--connect[=SESSION-ID]Conéctese directamente a una sesión remota (opcionalmente, especifique un identificador de sesión o un identificador de tarea). Entra en conflicto con --resume y --continue.
--continueReanude la sesión más reciente.
--deny-tool=TOOL ...Herramientas que la CLI no tiene permiso para usar. No solicitará permiso. Para varias herramientas, use una lista entrecomillada y separada por comas.
--deny-url=URL ...Denegar el acceso a direcciones URL o dominios específicos tiene prioridad sobre --allow-url. Para varias direcciones URL, use una lista entrecomillada y separada por comas.
--disable-builtin-mcpsDeshabilite todos los servidores MCP integrados (actualmente: github-mcp-server).
--disable-mcp-server=SERVER-NAMEDeshabilite un servidor MCP específico (se puede usar varias veces).
--disallow-temp-dirImpedir el acceso automático al directorio temporal del sistema.
--effort=LEVEL, --reasoning-effort=LEVELEstablezca el nivel de esfuerzo de razonamiento (low, medium, high).
--enable-all-github-mcp-toolsHabilite todas las GitHub herramientas del servidor MCP, en lugar del subconjunto predeterminado de la CLI. Invalida las opciones --add-github-mcp-toolset y --add-github-mcp-tool.
--enable-reasoning-summariesSolicite resúmenes de razonamiento para modelos openAI que lo admitan.
--excluded-tools=TOOL ...Estas herramientas no estarán disponibles para el modelo. Para varias herramientas, use una lista entrecomillada y separada por comas.
--experimentalHabilite las características experimentales (use --no-experimental para deshabilitar).
-h, --helpMostrar ayuda.
-i PROMPT, --interactive=PROMPTInicie una sesión interactiva y ejecute automáticamente esta solicitud.
--log-dir=DIRECTORYEstablezca el directorio del archivo de registro (valor predeterminado: ~/.copilot/logs/).
--log-level=LEVELConfigure el nivel de registro (opciones: none, error, warning, info, debug, all, default).
--max-autopilot-continues=COUNTNúmero máximo de mensajes de continuación en el modo autopilot (valor predeterminado: ilimitado). Consulte Permitir que la CLI de GitHub Copilot funcione de forma autónoma.
--mode=MODEEstablezca el modo de agente inicial (opciones: interactive, plan, autopilot). No se puede combinar con --autopilot o --plan.
--model=MODELEstablezca el modelo de IA que desea usar. Pase auto para permitir que Copilot seleccione automáticamente el mejor modelo disponible.
--mouse[=VALUE]Habilite la compatibilidad con el mouse en el modo de pantalla alternativo. VALUE puede ser on (valor predeterminado) o off. Cuando está habilitada, la CLI captura los eventos del mouse en el modo de pantalla alt: rueda de desplazamiento, clics, etc. Cuando está deshabilitado, se conserva el comportamiento nativo del mouse del terminal. Una vez establecida la configuración, se conserva escribiéndola en su archivo de configuración.
--no-ask-userDeshabilite la ask_user herramienta (el agente funciona de forma autónoma sin formular preguntas).
--no-auto-updateDeshabilite la descarga automática de actualizaciones de la CLI.
--no-bash-envDeshabilite la compatibilidad de BASH_ENV con los shells de Bash.
--no-colorDeshabilite toda la salida de color.
--no-custom-instructionsDeshabilite la carga de instrucciones personalizadas desde AGENTS.md y archivos relacionados.
--no-experimentalDesactivar las funciones experimentales.
--no-mouseDesactive el soporte para el ratón.
--no-remoteDeshabilite el acceso remoto para esta sesión.
--output-format=FORMATFORMAT puede ser text (valor predeterminado) o json (genera JSONL: un objeto JSON por línea).
-p PROMPT, --prompt=PROMPTEjecute un comando programáticamente (se cierra al finalizar). Consulte Ejecución CLI de GitHub Copilot de forma programática.
--planIniciar en modo de planificación. Abreviatura de --mode plan. No se puede combinar con --mode o --autopilot.
--plain-diffDeshabilitar la representación de diferencias enriquecidas (resaltado de sintaxis mediante la herramienta de diferencias especificada por la configuración de Git).
--plugin-dir=DIRECTORYCargue un complemento desde un directorio local (se puede usar varias veces).
--remoteHabilite el acceso remoto a esta sesión desde GitHub.com y GitHub Mobile. Consulte Controlar una CLI de GitHub Copilot sesión desde otro dispositivo.
--resume=SESSION-IDReanude una sesión interactiva anterior eligiendo entre una lista (opcionalmente, especifique un identificador de sesión o un prefijo único de 7 caracteres hexadecimales).
-s, --silentGenera solo la respuesta del agente (sin estadísticas de uso), útil para el scripting con -p.
--screen-readerHabilite las optimizaciones del lector de pantalla.
--secret-env-vars=VAR ...Redacte una variable de entorno desde entornos de servidor de shell y MCP (se pueden usar varias veces). Para varias variables, use una lista entrecomillada y separada por comas. Los valores de las variables de entorno GITHUB_TOKEN y COPILOT_GITHUB_TOKEN se eliminan de la salida de manera predeterminada.
--share=PATHComparta una sesión en un archivo Markdown después de completar una sesión programática (ruta de acceso predeterminada: ./copilot-session-<ID>.md).
--share-gistComparta una sesión con un gist GitHub de secreto después de la finalización de una sesión mediante programación.
--stream=MODEHabilite o deshabilite el modo de streaming (opciones de modo: on o off).
-v, --versionMostrar información de versión.
--yoloHabilite todos los permisos (equivalentes a --allow-all).

Para obtener una lista completa de comandos y opciones, ejecute copilot help.

Nota:

Las opciones --remote, --no-remote y --connect requieren que la característica de sesiones remotas esté disponible en su cuenta.

Valores de disponibilidad de herramientas

Las --available-tools opciones y --excluded-tools admiten estos valores:

Herramientas de Shell

Nombre de la herramientaDescripción
bash / powershellEjecutar comandos
read_bash / read_powershellLectura de la salida de una sesión de shell
write_bash / write_powershellEnviar entrada a una sesión de shell
stop_bash / stop_powershellFinalizar una sesión de shell
list_bash / list_powershellEnumerar sesiones de shell activas

Herramientas de operación de archivos

Nombre de la herramientaDescripción
viewLeer archivos o directorios
createCrear nuevos archivos
editEdición de archivos mediante reemplazo de cadenas
apply_patchAplicar parches (que algunos modelos utilizan en lugar de edit/create)

Herramientas de delegación de agentes y tareas

Nombre de la herramientaDescripción
taskEjecutar subagentes
read_agentComprobar el estado del agente en segundo plano
list_agentsEnumerar agentes disponibles

Otras herramientas

Nombre de la herramientaDescripción
grep (o rg)Buscar texto en archivos
globBuscar patrones de coincidencia de archivos
web_fetchCapturar y analizar contenido web
skillInvocación de aptitudes personalizadas
ask_userFormular una pregunta al usuario

Patrones de permisos de herramientas

Las --allow-tool opciones y --deny-tool aceptan patrones de permisos con el formato Kind(argument). El argumento es opcional: si se omite, coincide con todas las herramientas de ese tipo.

KindDescripciónPatrones de ejemplo
shellEjecución de comandos de Shell
          `shell(git push)`, , `shell(git:*)`, `shell` |

| write | Creación o modificación de archivos | write, write(src/*.ts) | | read | Lecturas de archivos o directorios | read, read(.env) | | SERVER-NAME | Invocación de la herramienta de servidor MCP | MyMCP(create_issue), MyMCP | | url | Acceso a la URL a través de web-fetch o shell | url(github.com), url(https://*.api.com) | | memory | Almacenamiento de hechos en la memoria del agente | memory |

Para las reglas de shell, el sufijo :* coincide con la raíz del comando seguido de un espacio, evitando coincidencias parciales. Por ejemplo, shell(git:*) coincide con git push y git pull, pero no coincide con gitea.

Las reglas de denegación siempre tienen prioridad sobre las reglas de autorización, incluso cuando --allow-all está configurado.

# Allow all git commands except git push
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'

# Allow a specific MCP server tool
copilot --allow-tool='MyMCP(create_issue)'

# Allow all tools from a server
copilot --allow-tool='MyMCP'

Variables de entorno

VariableDescripción
COPILOT_MODELEstablezca el modelo de IA.
COPILOT_ALLOW_ALLEstablézcalo en true para permitir todos los permisos automáticamente (equivalente a --allow-all).
COPILOT_AUTO_UPDATEEstablézcalo en false para deshabilitar las actualizaciones automáticas.
COPILOT_CUSTOM_INSTRUCTIONS_DIRSLista separada por comas de directorios adicionales para obtener instrucciones personalizadas.
COPILOT_SKILLS_DIRSLista de directorios adicionales separada por comas para habilidades.
COPILOT_EDITORComando del editor para la edición interactiva (activada después de $VISUAL y $EDITOR). El valor predeterminado es vi si no se establece ninguno.
COPILOT_GITHUB_TOKENToken de autenticación. Tiene prioridad sobre GH_TOKEN y GITHUB_TOKEN.
COPILOT_HOMEInvalide la configuración y el directorio de estado. Predeterminado: $HOME/.copilot.
COPILOT_CACHE_HOMEInvalide el directorio de caché (que se usa para cachés de Marketplace, paquetes de actualización automática y otros datos efímeros). Consulte directorio de configuración de la CLI de GitHub Copilot para conocer los valores predeterminados de la plataforma.
COPILOT_SUBAGENT_MAX_DEPTHProfundidad máxima de anidamiento de subagentes. Predeterminado: 6. Intervalo: 1256.
COPILOT_SUBAGENT_MAX_CONCURRENTMáximo de subagentes concurrentes en todo el árbol de sesiones. Predeterminado: 32. Intervalo: 1256.
GH_TOKENToken de autenticación. Tiene prioridad sobre GITHUB_TOKEN.
GITHUB_TOKENToken de autenticación.
USE_BUILTIN_RIPGREPEstablézcalo en false para usar el ripgrep del sistema en lugar de la versión incluida.
PLAIN_DIFFEstablézcalo en true para deshabilitar la representación de diferencias enriquecidas.
COLORFGBGSolución alternativa para la detección de fondo oscuro/claro del terminal.

Configuración del archivo de configuración

La configuración pasa de usuario a repositorio a local, con ámbitos más específicos que reemplazan a más generales. Las marcas de línea de comandos y las variables de entorno siempre tienen la prioridad más alta.

ÁmbitoUbicaciónpropósito
Usuario~/.copilot/config.jsonValores predeterminados globales para todos los repositorios. Use la variable de COPILOT_HOME entorno para especificar una ruta de acceso alternativa.
Repositorio.github/copilot/settings.jsonConfiguración del repositorio compartido (registrada en el repositorio).
Local.github/copilot/settings.local.jsonExcepciones personales (agregue esto a .gitignore).

Configuración del usuario (~/.copilot/config.json)

KeyTipoPredeterminadoDescripción
allowedUrlsstring[][]Direcciones URL o dominios permitidos sin preguntar.
autoUpdatebooleantrueDescargue automáticamente las actualizaciones de la CLI.
banner
          `"always"`
          \|
          `"once"`
          \|
          `"never"`
         | `"once"` | Frecuencia de visualización de banner animado. |

| bashEnv | boolean | false | Habilitar la BASH_ENV compatibilidad con las shells Bash. | | beep | boolean | true | Reproduce un pitido audible cuando se requiere atención. | | compactPaste | boolean | true | Contraiga grandes elementos en tokens compactos. | | custom_agents.default_local_only | boolean | false | Use solo agentes personalizados locales. | | denied_urls | string[] | [] | Direcciones URL o dominios bloqueados (tiene prioridad sobre allowed_urls). | | experimental | boolean | false | Habilite las características experimentales. | | includeCoAuthoredBy | boolean | true | Agregue un finalizador Co-authored-by a las confirmaciones de Git realizadas por el agente. | | companyAnnouncements | string[] | [] | Mensajes personalizados mostrados aleatoriamente durante el inicio. | | logLevel | "none" | "error" | "warning" | "info" | "debug" | "all" | "default" | "default" | Nivel de detalle de registro. | | model | string | Varía | Modelo de IA que se va a usar (consulte el /model comando ). Establézcalo en "auto" para permitir seleccionar Copilot automáticamente el mejor modelo disponible. | | powershellFlags | string[] | ["-NoProfile", "-NoLogo"] | Marcas pasadas a PowerShell (pwsh) en el inicio. Solo para Windows. | | effortLevel | string | "medium" | Nivel de esfuerzo de razonamiento para el pensamiento extendido (por ejemplo, "low", "medium", "high", "xhigh"). Los niveles superiores usan más recursos de computación. | | mergeStrategy | "rebase" | "merge" | — | Estrategia de resolución de conflictos para /pr fix conflicts. Cuando se establece en "rebase", los conflictos se resuelven rebasando sobre la rama base. Cuando se establece en "merge", la rama base se combina en la rama de características. Si no está configurado, se muestra un cuadro de diálogo del selector. | | renderMarkdown | boolean | true | Representar Markdown en la salida del terminal. | | screenReader | boolean | false | Habilite las optimizaciones del lector de pantalla. | | stream | boolean | true | Habilite las respuestas de streaming. | | storeTokenPlaintext | boolean | false | Almacene tokens de autenticación en texto sin formato en el archivo de configuración cuando no haya ninguna cadena de claves del sistema disponible. | | streamerMode | boolean | false | Ocultar los nombres de modelo de vista previa y los detalles de cuota (útiles al mostrar CLI de Copilot). | | theme | "auto" | "dark" | "light" | "auto" | Tema de color de terminal. | | mouse | boolean | true | Habilite la compatibilidad con el mouse en el modo de pantalla alternativo. | | respectGitignore | boolean | true | Excluya los archivos gitignored del @ selector de archivos. | | disableAllHooks | boolean | false | Deshabilite todos los ganchos. | | hooks | object | — | Definiciones de enlace de nivel de usuario en línea. | | copyOnSelect | boolean | true (macOS), false (otro) | Copie automáticamente el texto seleccionado por el mouse en el Portapapeles del sistema en modo de pantalla alternativo. | | statusLine | object | — | Visualización de línea de estado personalizada. type: debe ser "command". command: ruta de acceso a un script que recibe JSON de sesión en stdin e imprime el contenido de estado en stdout. padding: espacios opcionales de relleno a la izquierda. | | suppress_init_folders | string[] | [] | Carpetas en las que se ha descartado la /init sugerencia. Administrado automáticamente por /init suppress. | | updateTerminalTitle | boolean | true | Mostrar la intención actual en el título del terminal. |

Configuración del repositorio (.github/copilot/settings.json)

La configuración del repositorio se aplica a todos los usuarios que trabajan en el repositorio. Solo se admiten las claves enumeradas en la tabla siguiente en el nivel de repositorio. Cualquier otra clave, incluidas las claves válidas en el archivo de configuración de usuario, se omiten silenciosamente.

KeyTipoComportamiento de fusiónDescripción
companyAnnouncementsstring[]Reemplazado: el repositorio tiene prioridadMensajes mostrados aleatoriamente durante el inicio.
disableAllHooksbooleanEl repositorio tiene prioridadDeshabilite todos los ganchos.
enabledPluginsRecord<string, boolean>Combinado: el repositorio invalida al usuario para la misma clave.Instalación automática del complemento declarativo.
extraKnownMarketplacesRecord<string, {...}>Combinado: el repositorio invalida al usuario para la misma clave.Mercados de plugins disponibles en este repositorio.
hooksobjectConcatenado: los enlaces de repositorio se ejecutan después de los enlaces de usuarioDefiniciones de ganchos definidos para este repositorio. Consulte Referencia de enlaces.
mergeStrategy
          `"rebase"`
          \|
          `"merge"`
         | El repositorio tiene prioridad | Estrategia de resolución de conflictos para `/pr fix conflicts`. |

Configuración local (.github/copilot/settings.local.json)

Cree .github/copilot/settings.local.json en el repositorio, para anulaciones personales que no se deben confirmar. Agregue este archivo a .gitignore.

El archivo de configuración local usa el mismo esquema que el archivo de configuración del repositorio (.github/copilot/settings.json) y tiene prioridad sobre él.

Inicialización del proyecto para Copilot

Cuando usas el comando copilot init o el comando de barra inclinada /init dentro de una sesión interactiva, Copilot analiza tu código base y escribe o actualiza un archivo .github/copilot-instructions.md en el repositorio. Este archivo de instrucciones personalizado contiene instrucciones específicas del proyecto que mejorarán las sesiones futuras de la CLI.

Normalmente, usará copilot init, o /init, cuando inicie un nuevo proyecto o cuando empiece a usar CLI de Copilot en un repositorio existente.

El copilot-instructions.md archivo que se crea o actualiza normalmente documenta:

  • Compilar, probar y ejecutar comandos lint.
  • Arquitectura de alto nivel.
  • Convenciones específicas del código base.

Si el archivo ya existe, Copilot sugiere mejoras que puede optar por aplicar o rechazar.

La CLI busca el copilot-instructions.md archivo al iniciarse y, si falta, muestra el mensaje:

          💡 No se encontraron instrucciones de copilot. Ejecute /init para generar un archivo copilot-instructions.md para este proyecto.

Si no desea crear este archivo, puede ocultar permanentemente este mensaje de inicio mediante el /init suppress comando de barra diagonal, que agrega una suppress_init_folders configuración para este repositorio al Copilot archivo de configuración.

Para obtener más información, vea Agregar instrucciones personalizadas del repositorio para GitHub Copilot.

Referencia de enlaces

Los enlaces son comandos externos que se ejecutan en puntos de ciclo de vida específicos durante una sesión, lo que permite la automatización personalizada, los controles de seguridad y las integraciones. Los archivos de configuración de hook se cargan automáticamente desde .github/hooks/*.json de tu repositorio.

Formato de configuración de gancho

Los archivos de configuración de enlace usan el formato JSON con la versión 1.

Ganchos de comando

Los ganchos de comando ejecutan scripts de shell y son compatibles con todos los tipos de gancho.

{
  "version": 1,
  "hooks": {
    "preToolUse": [
      {
        "type": "command",
        "bash": "your-bash-command",
        "powershell": "your-powershell-command",
        "cwd": "optional/working/directory",
        "env": { "VAR": "value" },
        "timeoutSec": 30
      }
    ]
  }
}
CampoTipoObligatorioDescripción
type"command"Debe ser "command".
bashcuerda / cadenaUno de bash/powershellComando shell para Unix.
powershellcuerda / cadenaUno de bash/powershellComando shell para Windows.
cwdcuerda / cadenaNoDirectorio de trabajo para el comando (relativo a la raíz del repositorio o absoluto).
envobjetoNoVariables de entorno que se van a establecer (admite la expansión de variables).
timeoutSecnúmeroNoTiempo de expiración en segundos. Predeterminado: 30.

Enlaces de solicitudes

Los ganchos de solicitud envían automáticamente texto como si lo hubiera escrito el usuario. Solo se admiten en sessionStart y se ejecutan antes de que se pase cualquier mensaje inicial a través de --prompt. El texto puede ser una solicitud en lenguaje natural o un comando de barra.

{
  "version": 1,
  "hooks": {
    "sessionStart": [
      {
        "type": "prompt",
        "prompt": "Your prompt text or /slash-command"
      }
    ]
  }
}
CampoTipoObligatorioDescripción
type"prompt"Debe ser "prompt".
promptcuerda / cadenaTexto que se va a enviar: puede ser un mensaje en lenguaje natural o un comando de barra.

Eventos de enlace

EventSe activa cuandoSalida procesada
sessionStartComienza una sesión nueva o reanudada.No
sessionEndLa sesión finaliza.No
userPromptSubmittedEl usuario envía una sugerencia.No
preToolUseAntes de que se ejecute cada herramienta.Sí: puede permitir, denegar o modificar.
postToolUseUna vez que cada herramienta haya completado su tarea correctamente.Sí: puede reemplazar el resultado exitoso (solo hooks programáticos del SDK).
postToolUseFailureDespués de que una herramienta finalice con un error.Sí — puede proporcionar instrucciones de recuperación a través de additionalContext (código 2 de salida para ganchos de comandos).
agentStopEl agente principal finaliza un turno.Sí: puede bloquear y forzar la continuación.
subagentStopSe completa un subagente.Sí: puede bloquear y forzar la continuación.
subagentStartSe genera un subagente (antes de que se ejecute). Devuelve additionalContext antepuesto al mensaje del subagente. Admite matcher para filtrar por nombre del agente.No: no se puede bloquear la creación.
preCompactLa compactación de contexto está a punto de comenzar (manual o automática). Admite matcher para filtrar por desencadenador ("manual" o "auto").No: solo notificación.
permissionRequestAntes de mostrar un cuadro de diálogo de permisos al usuario, después de que las comprobaciones basadas en reglas no encuentren ninguna regla de permiso o denegación coincidente. Admite matcher regex en toolName.Sí: puede permitir o denegar mediante programación.
errorOccurredSe produce un error durante la ejecución.No
notificationSe desencadena de forma asincrónica cuando la CLI emite una notificación del sistema (finalización del shell, finalización del agente o inactividad, notificaciones de permisos, diálogos de solicitud). Fire-and-forget: nunca bloquea la sesión. Admite matcher regex en notification_type.Opcional: puede insertar additionalContext en la sesión.

Cargas de entrada de eventos de enlace

Cada evento de enlace entrega una carga JSON al controlador de enlace. Se admiten dos formatos de carga, seleccionados por el nombre de evento usado en la configuración del enlace:

  • formato camelCase : configure el nombre del evento en camelCase (por ejemplo, sessionStart). Los campos emplean el formato camelCase.

          VS Code formato compatible** : configure el nombre del evento en PascalCase (por ejemplo, `SessionStart`). Los campos usan snake_case para coincidir con el formato de extensión VS CodeCopilot.

sessionStart / SessionStart

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;      // Unix timestamp in milliseconds
    cwd: string;
    source: "startup" | "resume" | "new";
    initialPrompt?: string;
}
          **
          VS Code entrada compatible:**
{
    hook_event_name: "SessionStart";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    source: "startup" | "resume" | "new";
    initial_prompt?: string;
}

sessionEnd / SessionEnd

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}
          **
          VS Code entrada compatible:**
{
    hook_event_name: "SessionEnd";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}

userPromptSubmitted / UserPromptSubmit

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    prompt: string;
}
          **
          VS Code entrada compatible:**
{
    hook_event_name: "UserPromptSubmit";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    prompt: string;
}

preToolUse / PreToolUse

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
}
          **
          VS Code entrada compatible:**

Cuando se configura con el nombre del evento PreToolUse PascalCase, la carga utiliza nombres de campo snake_case para que coincidan con el formato de extensión VS CodeCopilot.

{
    hook_event_name: "PreToolUse";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;    // Tool arguments (parsed from JSON string when possible)
}

postToolUse / PostToolUse

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
    toolResult: {
        resultType: "success";
        textResultForLlm: string;
    }
}
          **
          VS Code entrada compatible:**
{
    hook_event_name: "PostToolUse";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;
    tool_result: {
        result_type: "success" | "failure" | "denied" | "error";
        text_result_for_llm: string;
    }
}

postToolUseFailure / PostToolUseFailure

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
    error: string;
}
          **
          VS Code entrada compatible:**
{
    hook_event_name: "PostToolUseFailure";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;
    error: string;
}

agentStop / Stop

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    stopReason: "end_turn";
}
          **
          VS Code entrada compatible:**
{
    hook_event_name: "Stop";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    stop_reason: "end_turn";
}

subagentStart

          **Entrada:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    agentName: string;
    agentDisplayName?: string;
    agentDescription?: string;
}

subagentStop / SubagentStop

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    agentName: string;
    agentDisplayName?: string;
    stopReason: "end_turn";
}
          **
          VS Code entrada compatible:**
{
    hook_event_name: "SubagentStop";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    agent_name: string;
    agent_display_name?: string;
    stop_reason: "end_turn";
}

errorOccurred / ErrorOccurred

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    error: {
        message: string;
        name: string;
        stack?: string;
    };
    errorContext: "model_call" | "tool_execution" | "system" | "user_input";
    recoverable: boolean;
}
          **
          VS Code entrada compatible:**
{
    hook_event_name: "ErrorOccurred";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    error: {
        message: string;
        name: string;
        stack?: string;
    };
    error_context: "model_call" | "tool_execution" | "system" | "user_input";
    recoverable: boolean;
}

preCompact / PreCompact

          **entrada CamelCase:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    trigger: "manual" | "auto";
    customInstructions: string;
}
          **
          VS Code entrada compatible:**
{
    hook_event_name: "PreCompact";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    trigger: "manual" | "auto";
    custom_instructions: string;
}

          `preToolUse` control de decisión

El gancho preToolUse puede controlar la ejecución de la herramienta escribiendo un objeto JSON en la salida estándar (stdout).

CampoValoresDescripción
permissionDecision
          `"allow"`, , `"deny"`, `"ask"` | Si se ejecuta la herramienta. La salida vacía usa el comportamiento predeterminado. |

| permissionDecisionReason | cuerda / cadena | Motivo que se muestra al agente. Obligatorio cuando la decisión es "deny". | | modifiedArgs | objeto | Sustituya los argumentos de la herramienta para usarlos en lugar de los originales. |

          `agentStop`
           / 
          `subagentStop` control de decisión
CampoValoresDescripción
decision
          `"block"`, `"allow"` | 
          `"block"` obliga a otro agente a realizar un turno usando `reason` como solicitud. |

| reason | cuerda / cadena | Solicite el siguiente turno cuando decision sea "block". |

          `permissionRequest` control de decisión

El permissionRequest gancho se activa cuando se va a mostrar un cuadro de diálogo de permisos de nivel de herramienta. Se activa después de que las comprobaciones de permisiones basadas en reglas no encuentran ninguna regla de permisión o denegación coincidente. Úselo para aprobar o denegar llamadas a herramientas mediante programación, especialmente útiles en el modo de canalización (-p) y entornos de CI en los que no haya ninguna solicitud interactiva disponible.

          **Comparador:** Expresión regular opcional probada en `toolName`. Cuando se establece, el gancho se activa solo para los nombres de herramientas coincidentes.

Genera JSON en stdout para controlar la decisión de permisos:

CampoValoresDescripción
behavior
          `"allow"`, `"deny"` | Aprobar o denegar la llamada a la herramienta. |

| message | cuerda / cadena | Motivo comunicado al LLM cuando se rechaza. | | interrupt | boolean | Cuando true se combina con "deny", detiene completamente el agente. |

Devuelve una salida vacía o {} para pasar al comportamiento predeterminado (mostrar el cuadro de diálogo al usuario o denegar en modo de canalización). El código 2 de salida se trata como denegación; si el enlace también genera JSON en stdout, esos campos se combinan con la decisión de denegación.

          `notification` gancho

El notification gancho se dispara de forma asincrónica cuando la CLI emite una notificación de sistema. Estos enlaces se activan y olvidan: nunca bloquean la sesión y se registran y omiten los errores.

          **Entrada:**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    hook_event_name: "Notification";
    message: string;           // Human-readable notification text
    title?: string;            // Short title (e.g., "Permission needed", "Shell completed")
    notification_type: string; // One of the types listed below
}
          **Tipos de notificación:**
TipoCuando se activa
shell_completedUn comando de shell en segundo plano (asincrónico) ha finalizado.
shell_detached_completedSe completa una sesión de shell desconectada
agent_completedUn subagente en segundo plano finaliza (completado o fallido)
agent_idleUn agente en segundo plano finaliza un turno y entra en estado inactivo (esperando write_agent)
permission_promptEl agente solicita permiso para ejecutar una herramienta.
elicitation_dialogEl agente solicita información adicional del usuario.
          **Salida:**
{
    additionalContext?: string; // Injected into the session as a user message
}

Si additionalContext se devuelve, el texto se inserta en la sesión como mensaje de usuario antepuesto. Esto puede desencadenar el procesamiento adicional del agente si la sesión está inactiva. Devuelve {} o una salida vacía para no realizar ninguna acción.

          **Buscador de coincidencias:** Regex opcional en `notification_type`. El patrón está anclado como `^(?:pattern)$`. 
          `matcher` Omitir para recibir todos los tipos de notificación.

Nombres de herramientas para la coincidencia de ganchos

Nombre de la herramientaDescripción
bashEjecute comandos de shell (Unix).
powershellEjecute comandos de shell (Windows).
viewLeer el contenido del archivo.
editModifique el contenido del archivo.
createCree nuevos archivos.
globBuscar archivos por patrón.
grepBuscar contenido del archivo.
web_fetchCapturar páginas web.
taskEjecutar tareas de subagentes.

Si se configuran varios ganchos del mismo tipo, se ejecutan en orden. Para preToolUse, si algún gancho devuelve "deny", la herramienta se bloquea. En postToolUseFailure el caso de los enlaces de comandos, salir con código 2 hace que stderr se devuelva como guía de recuperación para el asistente. Los errores de enlace (códigos de salida distintos de cero o tiempos de espera) se registran y omiten; nunca bloquean la ejecución del agente.

Configuración del servidor MCP

Los servidores MCP proporcionan herramientas adicionales al agente de la CLI. Configure servidores persistentes en ~/.copilot/mcp-config.json. Use --additional-mcp-config para agregar servidores para una sola sesión.

          `copilot mcp` subcomando

Use copilot mcp para administrar configuraciones de servidor MCP desde la línea de comandos sin iniciar una sesión interactiva.

SubcommandDescripción
list [--json]Enumere todos los servidores MCP configurados agrupados por origen.
get <name> [--json]Mostrar la configuración y las herramientas de un servidor específico.
add <name>Agregue un servidor a la configuración del usuario. Escribe en ~/.copilot/mcp-config.json.
remove <name>Quite un servidor de nivel de usuario. Los servidores del espacio de trabajo deben ser editados directamente en sus archivos de configuración.
          **
          `copilot mcp add` Opciones:**
OpciónDescripción
-- <command> [args...]Comandos y argumentos para servidores locales (stdio).
--url <url>Dirección URL de los servidores remotos.
--type <type>Tipo de transporte: local, stdio, httpo sse.
--env KEY=VALUEVariable de entorno (repetible).
--header KEY=VALUEEncabezado HTTP para servidores remotos (repetible).
--tools <tools>Filtro de herramientas: "*" para todos, una lista separada por comas o "" para ninguna.
--timeout <ms>Tiempo de espera en milisegundos.
--jsonLa salida agregó la configuración como JSON.
--show-secretsMostrar los valores completos de las variables de entorno y de los encabezados.
--config-dir <path>Ruta de acceso al directorio de configuración.

Precaución

          `--show-secrets` puede imprimir valores confidenciales de variables de entorno y encabezados en el terminal o los registros. Use solo esta opción en entornos de confianza y evite copiar, pegar o capturar la salida en registros o historial compartidos.

Tipos de transporte

TipoDescripciónCampos obligatorios
local / stdioProceso local que se comunica a través de stdin/stdout.
          `command`, `args` |

| http | Servidor remoto mediante transporte HTTP transmisible. | url | | sse | Servidor remoto mediante transporte de eventos enviados por el servidor. | url |

Campos de configuración del servidor local

CampoObligatorioDescripción
commandComando para iniciar el servidor.
argsArgumentos de comando (matriz).
toolsHerramientas que se van a habilitar: ["*"] para todos o una lista de nombres de herramientas específicos.
envNoVariables de entorno. Admite $VAR, ${VAR} y ${VAR:-default} expansión.
cwdNoDirectorio de trabajo para el servidor.
timeoutNoTiempo de espera en milisegundos para la llamada a herramienta.
typeNo
          `"local"` o `"stdio"`. Predeterminado: `"local"`. |

Campos de configuración de servidor remoto

CampoObligatorioDescripción
type
          `"http"` o `"sse"`. |

| url | Sí | Dirección URL del servidor. | | tools | Sí | Herramientas para habilitar. | | headers | No | Encabezados HTTP. Admite la expansión de variables. | | oauthClientId | No | Identificador de cliente de OAuth estático (omite el registro dinámico). | | oauthPublicClient | No | Si el cliente de OAuth es público. Predeterminado: true. | | oidc | No | Habilite la inserción de tokens OIDC. Cuando true, inserta una GITHUB_COPILOT_OIDC_MCP_TOKEN variable de entorno (servidores locales) o un Bearer``Authorization encabezado (servidores remotos). | | timeout | No | Tiempo de espera en milisegundos para la llamada a herramienta. |

Re-autenticación de OAuth

Los servidores MCP remotos que usan OAuth pueden mostrar un needs-auth estado cuando un token expira o cuando se requiere una cuenta diferente. Use /mcp auth <server-name> para desencadenar un flujo de OAuth nuevo. Se abre un mensaje de autenticación del explorador, lo que le permite iniciar sesión o cambiar de cuenta. Después de completar el flujo, el servidor se vuelve a conectar automáticamente.

Asignación de filtros

Controlar cómo se procesa la salida de la herramienta MCP mediante el filterMapping campo en la configuración de un servidor.

ModoDescripción
noneSin filtrado.
markdownDar formato a la salida como Markdown.
hidden_charactersQuite caracteres ocultos o de control. Predeterminado.

Servidores MCP integrados

La CLI incluye servidores MCP integrados que están disponibles sin configuración adicional.

ServidorDescripción
github-mcp-server
          GitHub Integración de API: problemas, solicitudes de incorporación de cambios, confirmaciones, búsqueda de código y GitHub Actions. |

| playwright | Automatización del explorador: navegue, haga clic, escriba, captura de pantalla y control de formularios. | | fetch | Solicitudes HTTP mediante la herramienta fetch. | | time | Utilidades de tiempo: get_current_time y convert_time. |

Use --disable-builtin-mcps para deshabilitar todos los servidores integrados o --disable-mcp-server SERVER-NAME para deshabilitar uno específico.

Niveles de confianza del servidor MCP

Los servidores MCP se cargan desde varios orígenes, cada uno con un nivel de confianza diferente.

FuenteNivel de confianzaRevisión necesaria
IntegradoAltoNo
Repositorio (.github/mcp.json)MedioRecomendado
Área de trabajo (.mcp.json)MedioRecomendado
Configuración del usuario (~/.copilot/mcp-config.json)User-definedResponsabilidad del usuario
Servidores remotosLowSiempre

Todas las invocaciones de la herramienta MCP requieren permiso explícito. Esto se aplica incluso a las operaciones de solo lectura en servicios externos.

Lista de autorización empresarial de MCP

          GitHub Enterprise las organizaciones pueden aplicar una lista blanca de servidores MCP permitidos. Cuando la CLI está activa, evalúa cada servidor no predeterminado según la política empresarial antes de establecer la conexión.

Cuando se detecta una GitHub Enterprise directiva del Registro (o la MCP_ENTERPRISE_ALLOWLIST marca de característica experimental está habilitada), la CLI:

  1. Calcula una huella digital para cada servidor no predeterminado configurado en función de su comando, argumentos y dirección URL remota.
  2. Envía las huellas digitales al punto de conexión de evaluación de lista de permitidos de empresa.
  3. Permite solo servidores cuyas huellas digitales están aprobadas; todos los demás se bloquean con un mensaje que menciona el nombre de la empresa.

Esta comprobación está cerrada por error: si el punto de conexión de evaluación no es accesible o devuelve un error, los servidores no predeterminados se bloquean hasta que se pueda comprobar la directiva.

Cuando un servidor está bloqueado por una lista de permitidos de empresa, la CLI muestra:

MCP server "SERVER-NAME" was blocked by your enterprise "ENTERPRISE-NAME".
Contact your enterprise administrator to add this server to the allowlist.

Los servidores predeterminados integrados siempre están exentos de la aplicación de la lista de permitidos.

Migración desde .vscode/mcp.json

Si el proyecto usa .vscode/mcp.json (formato de configuración MCP de VS Code), migre a .mcp.json para CLI de GitHub Copilot. La migración reasigna la servers tecla a mcpServers.

          **Intérpretes de comandos POSIX (bash, zsh, fish y otros):**
jq '{mcpServers: .servers}' .vscode/mcp.json > .mcp.json

Requiere jq.

          **PowerShell**:
pwsh -NoProfile -Command "`$json = Get-Content '.vscode/mcp.json' -Raw | ConvertFrom-Json; `$content = ([pscustomobject]@{ mcpServers = `$json.servers } | ConvertTo-Json -Depth 100); [System.IO.File]::WriteAllText('.mcp.json', `$content, (New-Object System.Text.UTF8Encoding `$false))"

En Windows, reemplace pwsh por powershell si usa Windows PowerShell en lugar de PowerShell Core.

Referencia sobre aptitudes

Las aptitudes son archivos markdown que amplían lo que puede hacer la CLI. Cada aptitud reside en su propio directorio que contiene un SKILL.md archivo. Cuando se invoca (a través de /SKILL-NAME o automáticamente por el agente), el contenido de la habilidad se inserta en la conversación.

Campos de texto preliminar de aptitudes

CampoTipoObligatorioDescripción
namecuerda / cadenaIdentificador único de la aptitud. Solo letras, números y guiones. Máximo de 64 caracteres.
descriptioncuerda / cadenaQué hace la aptitud y cuándo usarla. Máximo de 1024 caracteres.
allowed-tools"string" o "string[]"NoLista separada por comas o matriz YAML de herramientas que se permiten automáticamente cuando la aptitud está activa. Utilice "*" para todas las herramientas.
user-invocablebooleanNoSi los usuarios pueden invocar la aptitud con /SKILL-NAME. Predeterminado: true.
disable-model-invocationbooleanNoImpedir que el agente invoque automáticamente esta aptitud. Predeterminado: false.

Ubicaciones de habilidades

Las habilidades se cargan desde estas ubicaciones en orden de prioridad (la primera encontrada prevalece sobre nombres duplicados).

UbicaciónÁmbitoDescripción
.github/skills/ProyectoHabilidades específicas del proyecto.
.agents/skills/ProyectoUbicación alternativa del proyecto.
.claude/skills/ProyectoUbicación compatible con Claude.
Padre .github/skills/InheritedCompatibilidad con directorios primarios de un repositorio.
~/.copilot/skills/PersonalHabilidades personales para todos los proyectos.
~/.agents/skills/PersonalHabilidades del agente compartidas en todos los proyectos.
~/.claude/skills/PersonalUbicación personal compatible con Claude.
Directorios de complementosPluginAptitudes de complementos instalados.
COPILOT_SKILLS_DIRSPersonalizadaDirectorios adicionales (separados por comas).
(agrupado con la CLI)IntegradoFuncionalidades incluidas con la CLI. Prioridad más baja: invalidable por cualquier otro origen.

Comandos (formato de habilidad alternativo)

Los comandos son una alternativa a las habilidades almacenadas como archivos individuales .md en .claude/commands/. El nombre del comando se deriva del nombre de archivo. Los archivos de comandos usan un formato simplificado (sin name campo necesario) y admiten description, allowed-toolsy disable-model-invocation. Los comandos tienen menor prioridad que las aptitudes con el mismo nombre.

Referencia de agentes personalizados

Los agentes personalizados son agentes de IA especializados definidos en archivos Markdown. El nombre de archivo (sin la extensión) se convierte en el identificador del agente. Use .agent.md o .md como extensión de archivo.

Agentes integrados

AgenteModelo predeterminadoDescripción
code-reviewclaude-sonnet-4.5Revisión de código con alta relación señal a ruido. Analiza diferencias en el código para detectar fallos, problemas de seguridad y errores lógicos.
rubber-duckmodelo complementarioUtilice un modelo complementario para proporcionar una crítica constructiva de propuestas, diseños, implementaciones o pruebas. Identifica puntos débiles y sugiere mejoras. Solo está disponible en modo experimental.
exploreclaude-haiku-4.5Exploración rápida del código base. Busca archivos, lee código y responde preguntas. Devuelve respuestas centradas en menos de 300 palabras. Seguro para ejecutarse en paralelo.
general-purposeclaude-sonnet-4.5Agente de funcionalidad completa para tareas complejas de varios pasos. Se ejecuta en una ventana de contexto independiente.
researchclaude-sonnet-4.6Agente de investigación profundo. Genera un informe basado en la información de su código base, en repositorios pertinentes y en la web.
taskclaude-haiku-4.5Ejecución de comandos (pruebas, compilaciones, lints). Devuelve un breve resumen en caso de éxito y la salida completa en caso de fallo.

Campos de frontmatter del agente personalizado

CampoTipoObligatorioDescripción
descriptioncuerda / cadenaDescripción que se muestra en la lista del agente y en la herramienta task.
inferbooleanNoPermitir la delegación automática del agente principal. Predeterminado: true.
mcp-serversobjetoNoServidores MCP para conectarse. Usa el mismo esquema que ~/.copilot/mcp-config.json.
modelcuerda / cadenaNoModelo de IA para este agente. Cuando no se establece, hereda el modelo del agente externo. Cuando el modelo de sesión se establece en Auto (seleccionado por el servidor), los subagentes siempre heredan el modelo de sesión resuelto independientemente de este campo.
namecuerda / cadenaNoNombre para mostrar. El valor predeterminado es el nombre de archivo.
toolsstring[]NoHerramientas disponibles para el agente. Valor predeterminado: ["*"] (todas las herramientas).

Ubicaciones de agente personalizadas

ÁmbitoUbicación
Proyecto
          `.github/agents/` o `.claude/agents/` |

| Usuario | ~/.copilot/agents/ o ~/.claude/agents/ | | Plugin | <plugin>/agents/ |

Los agentes a nivel de proyecto tienen prioridad sobre los agentes a nivel de usuario. Los agentes de complementos tienen la prioridad más baja.

Límites de subagentes

La CLI aplica límites de profundidad y concurrencia para evitar la generación incontrolada de agentes.

LimitPredeterminadoVariable del entorno
Profundidad máxima6COPILOT_SUBAGENT_MAX_DEPTH
Número máximo de simultáneos32COPILOT_SUBAGENT_MAX_CONCURRENT
          **La profundidad** cuenta cuántos agentes se anidan entre sí. Cuando se alcanza el límite de profundidad, el agente más interno no puede generar más subagentes. 
          **Concurrencia** cuenta cuántos subagentes se ejecutan de manera simultánea en todo el árbol de sesión. Cuando se alcanza el límite, se rechazan las nuevas solicitudes de subagentes hasta que un agente activo finaliza su tarea. Los valores se limitan entre `1` y `256`.

Respuestas de aprobación de permisos

Cuando la CLI solicita permiso para ejecutar una operación, puede responder con las siguientes claves.

KeyEfecto
yPermitir esta solicitud específica una vez.
nDeniegue esta solicitud específica una vez.
!Permitir todas las solicitudes similares para el resto de la sesión.
#Deniegue todas las solicitudes similares para el resto de la sesión.
?Mostrar información detallada sobre la solicitud.

Las aprobaciones de sesión se restablecen al ejecutar /clear o iniciar una nueva sesión.

Supervisión de OpenTelemetry

          CLI de Copilot puede exportar seguimientos y métricas a través [de OpenTelemetry](https://opentelemetry.io/) (OTel), lo que proporciona visibilidad sobre las interacciones del agente, las llamadas LLM, las ejecuciones de herramientas y el uso de tokens. Todos los nombres y atributos de señal siguen las [convenciones semánticas de OTel GenAI](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/gen-ai/).

OTel está desactivado por defecto y no genera ninguna sobrecarga. Se activa cuando se cumple cualquiera de las condiciones siguientes:

  • COPILOT_OTEL_ENABLED=true
  • OTEL_EXPORTER_OTLP_ENDPOINT está establecido
  • COPILOT_OTEL_FILE_EXPORTER_PATH está establecido

Variables de entorno de OTel

VariablePredeterminadoDescripción
COPILOT_OTEL_ENABLEDfalseHabilite explícitamente OTel. No es necesario si OTEL_EXPORTER_OTLP_ENDPOINT está configurado.
OTEL_EXPORTER_OTLP_ENDPOINTDirección URL del punto de conexión de OTLP. Si se establece esta opción, se habilita automáticamente OTel.
COPILOT_OTEL_EXPORTER_TYPEotlp-httpTipo de exportador: otlp-http o file. Selecciona automáticamente file cuando COPILOT_OTEL_FILE_EXPORTER_PATH se establece.
OTEL_SERVICE_NAMEgithub-copilotNombre del servicio en los atributos de recursos.
OTEL_RESOURCE_ATTRIBUTESAtributos de recursos adicionales como pares separados por comas key=value . Utiliza la codificación de porcentaje para caracteres especiales.
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENTfalseCapturar el contenido completo del mensaje y de la respuesta. Consulte Captura de contenido.
OTEL_LOG_LEVELNivel de registro de diagnóstico de OTel: NONE, ERROR, WARN``INFO, DEBUG, , VERBOSE, ALL.
COPILOT_OTEL_FILE_EXPORTER_PATHEscriba todas las señales en este archivo como líneas JSON. Si se establece esta opción, se habilita automáticamente OTel.
COPILOT_OTEL_SOURCE_NAMEgithub.copilotNombre del ámbito de instrumentación para el rastreador y el medidor.
OTEL_EXPORTER_OTLP_HEADERSEncabezados de autenticación para el exportador de OTLP (por ejemplo, Authorization=Bearer token).

Huellas

El entorno de ejecución emite un árbol jerárquico de segmentos para cada interacción del agente. Cada árbol contiene un intervalo raíz invoke_agent, con intervalos secundarios chat y execute_tool.

          `invoke_agent` atributos de span

Envuelve la invocación completa del agente: todas las llamadas LLM y las ejecuciones de herramientas de un mensaje de usuario.

  • Las sesiones de nivel superior usan el tipo de traza CLIENT (invocación de servicio remoto) con server.address y server.port.
  • Las invocaciones de subagentes (por ejemplo, explorar, tarea) usan el tipo de intervalo INTERNAL (en proceso) sin atributos de servidor.
AtributoDescripciónTipo de intervalo
gen_ai.operation.nameinvoke_agentAmbas
gen_ai.provider.nameProveedor (por ejemplo, github, anthropic)Ambas
gen_ai.agent.idIdentificador de sesiónAmbas
gen_ai.agent.nameNombre del agente (cuando está disponible)Ambas
gen_ai.agent.descriptionDescripción del agente (cuando está disponible)Ambas
gen_ai.agent.versionVersión del entorno de ejecuciónAmbas
gen_ai.conversation.idIdentificador de sesiónAmbas
gen_ai.request.modelModelo solicitadoAmbas
gen_ai.response.finish_reasons
          `["stop"]` o `["error"]` | Ambas |

| gen_ai.usage.input_tokens | Total de tokens de entrada (todos los turnos) | Ambas | | gen_ai.usage.output_tokens | Total de tokens de salida (todos los turnos) | Ambas | | gen_ai.usage.cache_read.input_tokens | Lectura de tokens de entrada almacenados en caché | Ambas | | gen_ai.usage.cache_creation.input_tokens | Tokens de entrada creados y almacenados en caché | Ambas | | github.copilot.turn_count | Número de recorridos de ida y vuelta de LLM | Ambas | | github.copilot.cost | Costo monetario | Ambas | | github.copilot.aiu | Unidades de IA consumidas | Ambas | | server.address | Nombre de host del servidor | Solo CLIENT | | server.port | Puerto de servidor | Solo CLIENT | | error.type | Nombre de clase de error (en caso de error) | Ambas | | gen_ai.input.messages | Mensajes de entrada completos como JSON (solo captura de contenido) | Ambas | | gen_ai.output.messages | Mensajes de salida completos como JSON (solo captura de contenido) | Ambas | | gen_ai.system_instructions | Contenido del mensaje del sistema como JSON (captura solo de contenido) | Ambas | | gen_ai.tool.definitions | Esquemas de herramientas como JSON (solo captura de contenido) | Ambas |

          `chat` atributos de span

Un intervalo por solicitud de LLM. Tipo de intervalo: CLIENT.

AtributoDescripción
gen_ai.operation.namechat
gen_ai.provider.nameNombre del proveedor
gen_ai.request.modelModelo solicitado
gen_ai.conversation.idIdentificador de sesión
gen_ai.response.idID de respuesta
gen_ai.response.modelModelo resuelto
gen_ai.response.finish_reasonsMotivos de detención
gen_ai.usage.input_tokensTokens de entrada en este turno
gen_ai.usage.output_tokensTokens de salida este turno
gen_ai.usage.cache_read.input_tokensLectura de tokens almacenados en caché
gen_ai.usage.cache_creation.input_tokensTokens creados y almacenados en caché
github.copilot.costCosto de turnos
github.copilot.aiuUnidades de IA consumidas en este turno
github.copilot.server_durationDuración del lado servidor
github.copilot.initiatorIniciador de solicitudes
github.copilot.turn_idIdentificador de turno
github.copilot.interaction_idIdentificador de interacción
github.copilot.time_to_first_chunkTiempo para el primer fragmento de streaming, en segundos (solo streaming)
server.addressNombre de host del servidor
server.portPuerto de servidor
error.typeNombre de clase de error (en caso de error)
gen_ai.input.messagesMensajes de solicitud completos como JSON (solo captura de contenido)
gen_ai.output.messagesMensajes de respuesta completos como JSON (solo captura de contenido)
gen_ai.system_instructionsContenido del mensaje del sistema como JSON (captura solo de contenido)

          `execute_tool` atributos de span

Un intervalo por llamada a herramienta. Tipo de intervalo: INTERNAL.

AtributoDescripción
gen_ai.operation.nameexecute_tool
gen_ai.provider.nameNombre del proveedor (cuando está disponible)
gen_ai.tool.nameNombre de la herramienta (por ejemplo, readFile)
gen_ai.tool.typefunction
gen_ai.tool.call.idIdentificador de llamada de herramienta
gen_ai.tool.descriptionDescripción de la herramienta
error.typeNombre de clase de error (en caso de error)
gen_ai.tool.call.argumentsArgumentos de entrada de herramientas como JSON (solo captura de contenido)
gen_ai.tool.call.resultSalida de la herramienta como JSON (solo captura de contenido)

Métricas

Métricas de convención de GenAI

MétricaTipoUnidadDescripción
gen_ai.client.operation.durationHistogramasDuración de la llamada a la API de LLM y de la invocación del agente
gen_ai.client.token.usageHistogramatokensRecuentos de tokens por tipo (input/output)
gen_ai.client.operation.time_to_first_chunkHistogramasHora de recibir el primer fragmento de streaming
gen_ai.client.operation.time_per_output_chunkHistogramasLatencia entre fragmentos después del primer fragmento

Métricas específicas del proveedor

MétricaTipoUnidadDescripción
github.copilot.tool.call.countContadorllamadasInvocaciones de herramientas por gen_ai.tool.name y success
github.copilot.tool.call.durationHistogramasLatencia de ejecución de herramientas por gen_ai.tool.name
github.copilot.agent.turn.countHistogramaturnosRecorridos de ida y vuelta de LLM por cada invocación de agente

Eventos de intervalo

Eventos de ciclo de vida registrados en el intervalo activo chat o invoke_agent.

EventDescripciónAtributos clave
github.copilot.hook.startUn gancho comenzó a ejecutarse
          `github.copilot.hook.type`, `github.copilot.hook.invocation_id` |

| github.copilot.hook.end | Un enlace se ha completado correctamente | github.copilot.hook.type, github.copilot.hook.invocation_id | | github.copilot.hook.error | Error de enlace | github.copilot.hook.type, , github.copilot.hook.invocation_id, github.copilot.hook.error_message | | github.copilot.session.truncation | El historial de conversaciones se ha truncado | github.copilot.token_limit, github.copilot.pre_tokens, github.copilot.post_tokens, github.copilot.pre_messages, github.copilot.post_messages, github.copilot.tokens_removed, , github.copilot.messages_removed``github.copilot.performed_by | | github.copilot.session.compaction_start | Se inició la compactación de historia | Ninguno | | github.copilot.session.compaction_complete | Compactación del historial completada | github.copilot.success, github.copilot.pre_tokens, github.copilot.post_tokens, github.copilot.tokens_removed, , github.copilot.messages_removed( github.copilot.message solo captura de contenido) | | github.copilot.skill.invoked | Se invocó una habilidad | github.copilot.skill.name, github.copilot.skill.path, , github.copilot.skill.plugin_name, github.copilot.skill.plugin_version | | github.copilot.session.shutdown | La sesión se está cerrando | github.copilot.shutdown_type, github.copilot.total_premium_requests, github.copilot.lines_added, , github.copilot.lines_removed, github.copilot.files_modified_count | | github.copilot.session.abort | El usuario canceló la operación actual | github.copilot.abort_reason | | exception | Error de sesión | github.copilot.error_type, , github.copilot.error_status_code, github.copilot.error_provider_call_id |

Atributos del recurso

Todas las señales llevan estos atributos de recurso.

AtributoImportancia
service.name
          `github-copilot` (configurable a través de `OTEL_SERVICE_NAME`) |

| service.version | Versión del entorno de ejecución |

Captura de contenido

De forma predeterminada, no se captura ningún contenido de solicitud, respuestas o argumentos de herramienta, solo metadatos como nombres de modelo, recuentos de tokens y duraciones. Para capturar contenido completo, establezca OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true.

Advertencia

La captura de contenido puede incluir información confidencial, como el código, el contenido del archivo y las indicaciones del usuario. Habilite esto solo en entornos de confianza.

Cuando la captura de contenido está habilitada, se rellenan los atributos siguientes.

AtributoContenido
gen_ai.input.messagesMensajes de solicitud completos (JSON)
gen_ai.output.messagesMensajes de respuesta completos (JSON)
gen_ai.system_instructionsContenido del mensaje del sistema (JSON)
gen_ai.tool.definitionsEsquemas de herramientas (JSON)
gen_ai.tool.call.argumentsLos argumentos de entrada de la herramienta
gen_ai.tool.call.resultSalida de la herramienta

Lectura adicional