{"meta":{"title":"Ejecución GitHub Copilot CLI de forma programática","intro":"Use Copilot CLI en el terminal, en scripts o en flujos de trabajo de acciones.","product":"GitHub Copilot","breadcrumbs":[{"href":"/es/copilot","title":"GitHub Copilot"},{"href":"/es/copilot/how-tos","title":"Procedimientos"},{"href":"/es/copilot/how-tos/copilot-cli","title":"Copilot CLI"},{"href":"/es/copilot/how-tos/copilot-cli/automate-copilot-cli","title":"Automatización con la CLI de Copilot"},{"href":"/es/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically","title":"Ejecución de la CLI mediante programación"}],"documentType":"article"},"body":"# Ejecución GitHub Copilot CLI de forma programática\n\nUse Copilot CLI en el terminal, en scripts o en flujos de trabajo de acciones.\n\n## Introducción\n\nPuede pasar una indicación directamente a Copilot CLI en un solo comando, sin iniciar una sesión interactiva. Esto le permite usar Copilot directamente desde el terminal, pero también permite usar la CLI mediante programación en scripts, canalizaciones de CI/CD y flujos de trabajo de automatización.\n\nPara usar Copilot CLI mediante programación, puede hacer una de las siguientes acciones.\n\n* Use el comando `copilot` con la opción de línea de comandos `-p` o `--prompt`, seguido de la instrucción:\n\n  ```shell copy\n  copilot -p \"Explain this file: ./complex.ts\"\n  ```\n\n* Redirija una instrucción al comando `copilot`.\n\n  ```shell copy\n  echo \"Explain this file: ./complex.ts\" | copilot\n  ```\n\n  > \\[!NOTE]\n  > La entrada dirigida se ignora si también indica una instrucción con la opción `-p` o `--prompt`.\n\n## Sugerencias para usar Copilot CLI mediante programación\n\n* **Proporcionar indicaciones precisas** : instrucciones claras e inequívocas producen mejores resultados que solicitudes vagas. Cuanto más contexto proporcione (nombres de archivo, nombres de función, el cambio exacto), menos adivinación Copilot tiene que hacer.\n* **Cite las instrucciones con cuidado**: use comillas simples alrededor del mensaje si desea evitar que el entorno de shell interprete caracteres especiales.\n* **Conceda siempre permisos mínimos** : use las `--allow-tool=[TOOLS...]` opciones de línea de comandos y `--allow-url=[URLs...]` para conceder Copilot permiso para usar solo las herramientas y el acceso necesarios para completar la tarea. Evite usar opciones demasiado permisivas (como `--allow-all`) a menos que trabaje en un entorno de pruebas. Para obtener más información, vea [Acerca de los espacios aislados locales y en la nube para GitHub Copilot](/es/copilot/concepts/about-cloud-and-local-sandboxes).\n* **Use `-s` (silencioso)** al capturar la salida. Esto suprime los metadatos de la sesión para obtener texto limpio.\n* **Uso `--no-ask-user`** para evitar que el agente intente formular preguntas aclarando.\n* **Establezca un modelo explícitamente** con `--model` para un comportamiento coherente entre entornos.\n\nConsulte [Referencia programática de la CLI de GitHub Copilot](/es/copilot/reference/copilot-cli-reference/cli-programmatic-reference) para ver las opciones que son especialmente útiles al ejecutarse Copilot CLI mediante programación.\n\n## Integración de CI/CD\n\nUn caso común de uso de la ejecución de Copilot CLI programáticamente es incluir un comando CLI en un paso de flujo de trabajo de CI/CD.\n\nEsta extracción de un GitHub Actions flujo de trabajo muestra un ejemplo sencillo de ejecutar un Copilot CLI comando.\n\n```yaml\n# Workflow step using Copilot CLI\n- name: Generate test coverage report\n  env:\n    COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}\n  run: |\n    copilot -p \"Run the test suite and produce a coverage summary\" \\\n      -s --allow-tool='shell(npm:*), write' --no-ask-user\n```\n\nPara obtener más información, vea [Automatización de tareas con Copilot CLI y Acciones de GitHub](/es/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions).\n\n## Ejemplos de uso mediante programación\n\n### Generación de un mensaje de confirmación\n\n```bash copy\ncopilot -p 'Write a commit message in plain text for the staged changes' -s \\\n  --allow-tool='shell(git:*)'\n```\n\n### Resumir un archivo\n\n```bash copy\ncopilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s\n```\n\n### Escritura de pruebas para un módulo\n\n```bash copy\ncopilot -p 'Write unit tests for src/utils/validators.ts' \\\n  --allow-tool='write, shell(npm:*), shell(npx:*)'\n```\n\n### Corrección de errores de lint\n\n```bash copy\ncopilot -p 'Fix all ESLint errors in this project' \\\n  --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'\n```\n\n### Explicar una diferencia\n\n```bash copy\ncopilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s\n```\n\n### Revisión de código en una rama\n\nUse el comando con barra diagonal `/review` para que el agente `code-review` incorporado revise los cambios del código en la rama actual.\n\n```bash copy\ncopilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \\\n  -s --allow-tool='shell(git:*)'\n```\n\n### Generación de documentación\n\n```bash copy\ncopilot -p 'Generate JSDoc comments for all exported functions in src/api/' \\\n  --allow-tool=write\n```\n\n### Exportar una sesión\n\nGuarde la transcripción de sesión completa en un archivo Markdown en el sistema de archivos local.\n\n```bash copy\ncopilot -p \"Audit this project's dependencies for vulnerabilities\" \\\n  --allow-tool='shell(npm:*), shell(npx:*)' \\\n  --share='./audit-report.md'\n```\n\nGuarde la transcripción de sesión en un gist en GitHub.com para facilitar el uso compartido.\n\n```bash copy\ncopilot -p 'Summarize the architecture of this project' --share-gist\n```\n\n> \\[!NOTE]\n> Los Gists no están disponibles para Enterprise Managed Users, o si usa GitHub Enterprise Cloud con residencia de datos (\\*.ghe.com).\n\n## Patrones de scripts en shell\n\n### Captura la salida de Copilot en una variable\n\n```bash copy\nresult=$(copilot -p 'What version of Node.js does this project require? \\\n  Give the number only. No other text.' -s)\necho \"Required Node version: $result\"\n```\n\n### Uso en un condicional\n\n```bash copy\nif copilot -p 'Does this project have any TypeScript errors? Reply only YES or NO.' -s \\\n  | grep -qi \"no\"; then\n  echo \"No type errors found.\"\nelse\n  echo \"Type errors detected.\"\nfi\n```\n\n### Procesar varios archivos\n\n```bash copy\nfor file in src/api/*.ts; do\n  echo \"--- Reviewing $file ---\" | tee -a review-results.md\n  copilot -p \"Review $file for error handling issues\" -s --allow-all-tools | tee -a review-results.md\ndone\n```\n\n## Lectura adicional\n\n* [GitHub Copilot CLI](/es/copilot/how-tos/copilot-cli)\n* [Referencia programática de la CLI de GitHub Copilot](/es/copilot/reference/copilot-cli-reference/cli-programmatic-reference)\n* [Referencia de comandos de la CLI de GitHub Copilot](/es/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)"}