Guía de Contribución

Nos encantaría aceptar tus parches y contribuciones a este proyecto. Aprende cómo empezar y hacer tu primera contribución.

Antes de Comenzar

Requisitos importantes antes de contribuir

Sign the CLA

Contributions must be accompanied by a Contributor License Agreement (CLA). You retain the copyright to your contribution.

Sign the CLA →

Community Guidelines

This project follows Google's Open Source Community Guidelines. Please review them before contributing.

Read Guidelines →

Formas de Contribuir

Hay muchas formas de contribuir al proyecto Gemini CLI

Contribuciones de Código

Fix bugs, add features, improve performance

  • Correcciones de bugs y parches
  • Nuevos comandos CLI
  • Optimizaciones de rendimiento
  • Refactorización de código
  • Mejoras de pruebas
  • Mejoras en manejo de errores

Documentación

Improve docs, add examples, create tutorials

  • Corregir errores de documentación
  • Agregar ejemplos de uso
  • Mejorar documentación API
  • Crear tutoriales y guías
  • Actualizar archivos README
  • Agregar comentarios de código

Reporte de Problemas

Report bugs, suggest features, provide feedback

  • Reportes de bugs con pasos de reproducción
  • Solicitudes de características y propuestas
  • Reportes de problemas de rendimiento
  • Reportes de vulnerabilidades de seguridad
  • Retroalimentación de experiencia de usuario
  • Problemas de compatibilidad

Soporte Comunitario

Help users, participate in discussions

  • Responder preguntas en issues
  • Ayudar con solución de problemas
  • Revisar pull requests
  • Probar versiones beta
  • Compartir ejemplos de uso
  • Mentorear nuevos contribuidores

Pautas de Pull Request

Sigue estas pautas para ayudarnos a revisar y fusionar tus PR rápidamente

1

Enlazar a un Issue Existente

All PRs should be linked to an existing issue. For bug fixes, link to the bug report. For features, link to an approved feature request.

2

Manténlo Pequeño y Enfocado

Create small, atomic PRs that address a single issue. Don't bundle multiple unrelated changes.

3

Usa PR Borrador para Trabajo en Progreso

Use GitHub's Draft Pull Request feature for early feedback before formal review.

4

Asegúrate de que Todas las Verificaciones Pasen

Run npm run preflight before submitting to ensure all tests, linting, and style checks pass.

5

Actualizar Documentación

If your PR introduces user-facing changes, update the relevant documentation in the /docs directory.

6

Escribir Mensajes de Commit Claros

Follow Conventional Commits standard for your commit messages and PR descriptions.

Configuración del Entorno de Desarrollo

Guía paso a paso para configurar tu entorno de desarrollo

1

Prerrequisitos

Set up your development environment

# Install Node.js ~20.19.0 (required for development)
# Use nvm to manage Node.js versions
nvm install 20.19.0
nvm use 20.19.0
2

Clone and Setup

Get the source code and install dependencies

git clone https://github.com/google-gemini/gemini-cli.git
cd gemini-cli
npm install
npm run build
3

Enable Sandboxing (Optional)

Set up sandboxing for enhanced security

# Add to your ~/.env file
echo "GEMINI_SANDBOX=true" >> ~/.env
# Build with sandbox container
npm run build:all
4

Run and Test

Start the CLI and run tests

# Start Gemini CLI from source
npm start
# Run all tests
npm run test
# Run integration tests
npm run test:e2e
5

Quality Checks

Ensure code quality before submitting

# Run all quality checks
npm run preflight
# Format code
npm run format
# Lint code
npm run lint

Depuración y Pruebas

Herramientas y técnicas para depurar y probar tus contribuciones

Depuración VS Code

Depura el CLI de forma interactiva en VS Code con F5 o usa la configuración de depuración.

# Iniciar en modo depuración
npm run debug

# O usa la tecla F5 de VS Code
# con configuración "Attach"

React DevTools

Depura la interfaz de usuario basada en React del CLI usando React DevTools versión 4.x.

# Iniciar en modo desarrollo
DEV=true npm start

# Instalar React DevTools
npm install -g react-devtools@4.28.5
react-devtools

Depuración Sandbox

Depura dentro del contenedor sandbox para desarrollo relacionado con seguridad.

# Depurar dentro del sandbox
DEBUG=1 gemini

# Habilitar depuración sandbox
GEMINI_SANDBOX=true npm start

Tipos de Pruebas

Ejecuta diferentes tipos de pruebas para asegurar que tus cambios funcionen correctamente.

# Pruebas unitarias
npm run test

# Pruebas de integración
npm run test:e2e

# Todas las verificaciones de calidad
npm run preflight

¿Listo para Contribuir?

Comienza tu viaje de contribución con estos recursos

Recursos Adicionales

Enlaces útiles y documentación para contribuidores

Documentación de Arquitectura

Aprende sobre la estructura y arquitectura del proyecto

Leer Arquitectura →

Pruebas de Integración

Aprende sobre el framework de pruebas de integración

Guía de Pruebas →

Desarrollo de IA

Pautas para desarrollo asistido por IA

GEMINI.md →