GitHits

GitHits MCP brinda a los agentes de IA acceso a búsqueda de código abierto, documentación de paquetes, ejemplos del mundo real, metadatos de dependencias, registros de cambios y contexto de vulnerabilidades para mejores decisiones en el desarrollo de software.

Documentación

GitHits

GitHits CLI

La capa de contexto de código para agentes de codificación con IA.

npm version npm downloads Main License: Apache-2.0 Node MCP skills.sh smithery badge githits-cli MCP server MCP Badge

Sitio web · Documentación · Problemas

GitHits conecta agentes de codificación con IA a evidencia de código abierto público en todo el ciclo de vida completo del desarrollo de software: descubrimiento, planificación, investigación, implementación, depuración y mantenimiento.

La CLI ejecuta un servidor MCP local que tu herramienta de codificación inicia bajo demanda. Los agentes pueden entonces buscar en el código fuente indexado de paquetes y repositorios, leer archivos exactos y páginas de documentación, inspeccionar la salud de los paquetes, comparar actualizaciones de dependencias y encontrar ejemplos citados de fuentes de proyectos de código abierto reales cuando el conocimiento del modelo y el contexto del repositorio local no son suficientes.

Inicio rápido

npx githits@latest init

init te inicia sesión, detecta herramientas de codificación compatibles y configura GitHits para las herramientas que selecciones. Utiliza el MCP stdio local, excepto para Cursor, cuya configuración directa utiliza el MCP remoto alojado.

La configuración automática actualmente admite Claude Code, Cursor, Windsurf, VS Code / Copilot, Cline, Claude Desktop, Codex CLI, Pi, Gemini CLI, Google Antigravity, OpenCode, Hermes Agent, Zed, Junie, Qwen Code, Kiro, Kilo Code, Factory Droid y Amazon Q CLI.

Después de la configuración, abre tu agente de codificación y trabaja con normalidad. Muchos agentes llaman a GitHits cuando necesitan contexto respaldado por fuentes. Si tu agente comienza a adivinar, pídele directamente:

Use GitHits Code Navigation to inspect npm:express. Find how middleware
errors are handled, read the relevant source, and explain the fix before
editing code.

Qué aporta GitHits

GitHits está diseñado para el punto donde un agente necesita evidencia del ecosistema de código abierto más amplio, no solo la memoria del modelo o el contexto del repositorio local:

CapacidadHerramientas MCPComandos CLI
Ejemplos de códigoget_example, search_languagegithits example, githits languages
Navegación de códigosearch, search_status, code_files, code_read, code_grepgithits search, githits search-status, githits code ...
Acceso a documentacióndocs_list, docs_readgithits docs ...
Inspección de paquetespkg_info, pkg_vulns, pkg_deps, pkg_changelog, pkg_upgrade_reviewgithits pkg ...
Retroalimentaciónfeedbackgithits feedback

Usa GitHits cuando tu agente necesite:

  • descubrir, planificar o investigar cómo los proyectos OSS resuelven un problema vago o un error desconocido
  • encontrar artefactos previos amplios o ejemplos raros de aguja en el pajar en repositorios
  • inspeccionar código fuente, pruebas, símbolos o documentación de un paquete o repositorio conocido
  • verificar cómo se comporta realmente una dependencia antes de cambiar código
  • depurar trazas de pila que apuntan a código de terceros
  • revisar la salud de paquetes, licencias, vulnerabilidades, dependencias y registros de cambios
  • comparar actualizaciones de dependencias usando evidencia factual

Ejemplos

Encuentra artefactos previos en código abierto:

npx githits@latest example "HTTP retries with exponential backoff in Python"

Busca código indexado, documentación y símbolos de una dependencia:

npx githits@latest search "router middleware" --in npm:express
npx githits@latest search '"body parser" OR multer' --in npm:express --source docs
npx githits@latest search "debounce" --in npm:lodash --source symbol

Lee y busca en el código fuente de dependencias sin clonar:

npx githits@latest code files npm:express lib
npx githits@latest code read npm:express lib/router/index.js --lines 120-200
npx githits@latest code grep npm:express "router.use" lib --regex

Inspecciona la salud del paquete y la evidencia de actualización:

npx githits@latest pkg info npm:express
npx githits@latest pkg vulns npm:lodash@4.17.20 --severity high
npx githits@latest pkg deps npm:express@4.18.2 --depth 2
npx githits@latest pkg changelog npm:express --from 4.18.2 --to 5.2.1
npx githits@latest pkg upgrade-review npm:zod@4.3.6 --to 4.4.3

Navega y lee la documentación del paquete:

npx githits@latest docs list npm:express
npx githits@latest docs read <page-id> --lines 20-80

Herramientas experimentales

GitHits 0.10 añade dos herramientas locales opcionales para pruebas tempranas:

  • resolve_target / githits resolve convierte un nombre de paquete o repositorio difuso o ambiguo en objetivos canónicos clasificados.
  • code_diff / githits code diff compara árboles de repositorios resueltos desde versiones exactas de paquetes o referencias públicas de GitHub.

Están ocultas y deshabilitadas por defecto. Solo están disponibles a través de la CLI local githits y el servidor MCP stdio local; el MCP alojado y las instalaciones de plugins o extensiones mantienen el conjunto de herramientas estable. Habilítalas en la configuración del host de GitHits y luego reinicia el agente de codificación para que reinicie el servidor MCP local:

# macOS/Linux: ~/.config/githits/config.toml
# Windows: %APPDATA%\githits\config.toml
[experimental]
tools = true

Consulta Herramientas experimentales para el descubrimiento de configuración específico de la plataforma, ejemplos de CLI, informes de problemas opcionales, limitaciones y cómo deshabilitar las herramientas.

Fuentes compatibles

GitHits funciona con objetivos de paquetes y repositorios como:

  • especificaciones de paquetes: npm:react, npm:react@18.2.0, pypi:requests, crates:serde
  • repositorios de GitHub: https://github.com/expressjs/express, github:expressjs/express#main

La inspección de paquetes admite npm, PyPI, Hex, Crates, NuGet, Maven, Packagist, RubyGems, Go, Swift, vcpkg y Zig. Los datos de avisos no están disponibles para vcpkg y Zig; el soporte del gráfico de dependencias varía según el registro.

Filtrado de licencias

La búsqueda de ejemplos de código admite el filtrado de licencias:

  • strict es el valor predeterminado y filtra repositorios con licencias copyleft o no declaradas
  • custom usa la lista de bloqueo de tu cuenta configurada en githits.com
  • yolo deshabilita el filtrado de licencias
npx githits@latest example "async file reading" --lang python --license strict

Autenticación

La configuración local normal se maneja con:

npx githits@latest init

Para inicio de sesión manual:

npx githits@latest login

Se recomienda OAuth del navegador para el desarrollo local. Las credenciales se almacenan en el llavero del sistema por defecto y se actualizan automáticamente. Banderas útiles:

  • init --no-browser o login --no-browser imprime la URL de inicio de sesión en lugar de abrir un navegador
  • init --port <port> o login --port <port> corrige el puerto de devolución de llamada de loopback
  • login --force re-autentica incluso si ya has iniciado sesión

La devolución de llamada de OAuth siempre escucha en la máquina donde se ejecuta GitHits. Cuando GitHits se ejecuta a través de SSH y el navegador se ejecuta localmente, reenvía el puerto seleccionado desde la máquina del navegador:

ssh -N -L 8765:127.0.0.1:8765 user@remote-host

Con ese túnel abierto, ejecuta GitHits en la máquina remota usando el mismo puerto:

npx githits@latest init --no-browser --port 8765

Abre la URL impresa por GitHits en el navegador local. Reemplaza user@remote-host con el destino SSH que usas normalmente. Las mismas banderas funcionan con githits login después de la configuración.

El OAuth del navegador es interactivo. Para CI y otros entornos sin supervisión, proporciona GITHITS_API_TOKEN a través del administrador de secretos del entorno.

Solicitudes del llavero y almacenamiento de archivos

GitHits usa el llavero del sistema por defecto porque las credenciales de OAuth incluyen un token de actualización. En macOS esto significa Acceso a llaveros; en Windows significa Administrador de credenciales; en Linux significa el Servicio secreto o backend de llavero disponible.

Si macOS muestra una solicitud como "githits quiere acceder a ... en tu llavero", elige Permitir siempre cuando confíes en la CLI githits instalada. GitHits no puede personalizar esa solicitud del sistema operativo; la genera macOS.

GitHits también escribe un pequeño archivo de metadatos no secretos para que las comprobaciones de inicio recientes no necesiten leer el llavero. El llavero solo se lee cuando GitHits necesita el token, por ejemplo durante una llamada de herramienta, actualización de token, githits auth status o una verificación de inicio de sesión después de que los metadatos estén obsoletos o caducados.

Si tu agente sigue mostrando solicitudes de llavero incluso después de Permitir siempre, cambia el almacenamiento de OAuth al modo de archivo:

# macOS/Linux: ~/.config/githits/config.toml, or $XDG_CONFIG_HOME/githits/config.toml
# Windows: %APPDATA%\githits\config.toml
[auth]
storage = "file"

El directorio de configuración puede estar vacío hasta que crees config.toml o GitHits escriba metadatos de autenticación. Las instalaciones antiguas de macOS pueden haber usado ~/Library/Application Support/githits; GitHits aún lee esa ubicación para la migración, pero la nueva configuración de autenticación y el almacenamiento de archivos usan ~/.config/githits.

También puedes optar por un solo proceso:

GITHITS_AUTH_STORAGE=file githits login --force

El modo de archivo almacena credenciales de OAuth como archivos JSON en el directorio de configuración de GitHits. Los archivos se escriben con permisos privados donde la plataforma lo admite, pero no están cifrados. Cualquier proceso que pueda leer archivos como tu usuario del sistema operativo puede leer los tokens.

Usa el modo de archivo solo en máquinas donde confíes en el acceso de cuentas de usuario locales. Para CI y automatización, prefiere GITHITS_API_TOKEN en lugar de OAuth del navegador.

Inspecciona el estado de autenticación y tiempo de ejecución con:

npx githits@latest auth status
npx githits@latest doctor

Consulta la documentación de autenticación para el comportamiento del llavero, el modo de almacenamiento de archivos, la configuración de CI y la resolución de problemas.

Configuración manual de MCP

Si tu herramienta de codificación no se configura automáticamente con init, añade GitHits a su configuración de MCP manualmente:

{
  "mcpServers": {
    "githits": {
      "command": "npx",
      "args": ["-y", "githits@latest", "mcp", "start"]
    }
  }
}

Tu herramienta ejecuta este comando a través de stdio. No se requiere un daemon en segundo plano ni una instalación global.

Para eliminar la configuración escrita por init:

npx githits@latest init uninstall

Esto elimina la configuración de MCP de GitHits y conserva las credenciales almacenadas. Ejecuta npx githits@latest logout por separado para eliminar las credenciales.

Configuración del proyecto

Para la configuración de MCP local del proyecto, ejecuta:

npx githits@latest init --project

La configuración del proyecto solo está disponible para herramientas con soporte verificado de MCP local del proyecto. La configuración del proyecto no contiene secretos, pero puede confirmarse como cualquier otra configuración de herramientas, así que revisa los archivos generados antes de añadirlos al control de fuentes.

La configuración no interactiva segura para agentes usa descubrimiento por etapas e instalación explícita:

npx githits@latest init --detect-agents --json
npx githits@latest init --install-agents cursor,codex

Empaquetado de plugins y extensiones

El repositorio y el paquete publicado proporcionan los activos de plugins y extensiones utilizados por hosts compatibles. Las instalaciones basadas en Git también conservan los enlaces simbólicos de archivos de contexto (CLAUDE.md y GEMINI.md) al AGENTS.md canónico:

  • .plugin/plugin.json
  • .claude-plugin/plugin.json
  • .claude-plugin/marketplace.json
  • .codex-plugin/plugin.json
  • .cursor-plugin/plugin.json
  • .mcp.json
  • gemini-extension.json
  • plugin.json (Google Antigravity)
  • mcp_config.json (Google Antigravity)
  • AGENTS.md
  • CLAUDE.md
  • GEMINI.md
  • skills/

El árbol de habilidades raíz se comparte entre todos los hosts compatibles. Cada instalación de plugin y extensión usa el MCP remoto alojado, incluidos Claude, Codex, Cursor, Gemini CLI, Google Antigravity y VS Code/GitHub Copilot OpenPlugin. La configuración directa de githits init es una ruta separada: instala configuraciones stdio locales para herramientas compatibles excepto Cursor, que permanece solo remoto. La raíz del repositorio es un plugin nativo de Antigravity a través de plugin.json, mcp_config.json y el árbol compartido skills/. Los manifiestos generados se actualizan con bun run plugins:generate y se validan con bun run plugins:check.

Para instalaciones del marketplace de Claude Code:

claude plugin marketplace add githits-com/githits-cli
claude plugin install githits@githits-plugins

Para instalaciones de extensiones de Gemini CLI:

gemini extensions install https://github.com/githits-com/githits-cli

Referencia de comandos

githits init             Connect GitHits to your coding agents
githits init uninstall   Remove GitHits MCP configuration
githits login            Sign in to your GitHits account
githits logout           Remove stored credentials
githits mcp              Show setup instructions or start the local MCP server
githits mcp start        Always start the local MCP server over stdio
githits example          Find real-world implementations from open source
githits languages        List or filter supported programming languages
githits feedback         Submit feedback about GitHits results
githits doctor           Diagnose configuration and auth state
githits resolve          Experimental: resolve a fuzzy name to canonical targets
githits settings         View and update preferences, privacy, and terms
githits search           Explore repository code, dependencies, docs, and symbols
githits search-status    Check the status of a previous indexed search
githits code             List, read, grep, or experimentally diff indexed source
githits pkg              Inspect package metadata, vulnerabilities, deps, and changelogs
githits docs             Browse and read package documentation
githits auth             Manage authentication
githits auth status      Show authentication status

Referencia completa de CLI: https://docs.githits.com/cli/commands

Variables de entorno

La mayoría de los usuarios no necesitan variables de entorno. Estas son las anulaciones comunes para CI, almacenamiento de autenticación y diagnósticos locales:

VariablePropósitoPredeterminado
GITHITS_API_TOKENToken de API para autenticaciónsin establecer
GITHITS_AUTH_STORAGEAnula el modo de almacenamiento de OAuth: keychain o filekeychain
GITHITS_DISABLE_UPDATE_CHECKDeshabilita los avisos de actualización de la última versión de npmsin establecer
GITHITS_TELEMETRYEmite diagnósticos de tiempo locales a stderrsin establecer

Referencia completa: https://docs.githits.com/cli/environment-variables

Estructura del código fuente

Este repositorio contiene la CLI de GitHits y el paquete MCP reutilizable:

  • src/ - comandos CLI, autenticación local, flujos de configuración e inicio de MCP stdio local
  • packages/mcp/ - paquete público @githits/mcp para APIs de servidor MCP independientes del transporte, registro de herramientas, instrucciones y ayudas de pruebas de humo
  • packages/core-internal/ - implementación del espacio de trabajo compartido utilizada por la CLI y el paquete MCP
  • docs/ - notas de implementación y pautas para colaboradores
  • scripts/ - validación de paquetes, pruebas de humo y utilidades de desarrollo

Consulta CHANGELOG.md para cambios publicados, trabajo pendiente y el impacto actual de la versión del paquete.

Desarrollo

Requisitos:

  • Node.js ^20.18.1 || >=22.13.0
  • Bun

Comandos comunes:

bun install
bun run dev --help
bun test
bun run typecheck
bun run build

Al cambiar herramientas MCP, comandos CLI, formateadores compartidos, envoltorios de autenticación/error o el comportamiento de paridad MCP/CLI, también ejecuta las suites de humo relevantes:

bun run smoke:mcp
bun run smoke:cli

CI también verifica el producto compilado sin credenciales ni llamadas de backend en vivo. Ejecuta las mismas verificaciones localmente después de bun run build:

bun run smoke:cli:built
bun run smoke:mcp:built

El harness permanece en Bun, mientras que los subprocesos del producto ejecutan dist/cli.js con node de PATH. CI aprovisiona ese runtime desde .node-version.

Al cambiar instrucciones de MCP, descripciones de herramientas o comportamiento orientado a agentes, usa las evaluaciones de agentes específicas descritas en eval/agentic/README.md:

bun run agent:e2e

Licencia

Apache-2.0