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 de IA.

GitHits index status

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

Sitio web · Documentación · Problemas

GitHits conecta agentes de codificación de IA con 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 paquetes, comparar actualizaciones de dependencias y encontrar ejemplos citados de fuentes de proyectos reales de código abierto cuando el conocimiento del modelo y el contexto del repositorio local no son suficientes.

¿Quieres usar GitHits como parte de tu infraestructura de agentes o fábrica de software? Consulta nuestra documentación de API pública.

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, cuyo configuración directa utiliza el MCP remoto alojado.

La configuración automática actualmente es compatible con 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
Orientación de herramientasquick_start—
Ejemplos de códigoget_examplegithits example
Navegación de inventariolistgithits list
Búsqueda de código y documentaciónsearch, search_status, grepgithits search, githits search-status, githits grep
Leer archivos fuente o secciones de documentaciónreadgithits read <target> [path]
Inspección de paquetespkg_info, pkg_vulns, pkg_deps, pkg_changelog, pkg_upgrade_reviewgithits pkg ...

Usa GitHits cuando tu agente necesite:

  • descubrir, planificar o investigar cómo los proyectos OSS resuelven un problema vago o un error desconocido
  • encontrar arte previo amplio 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 el código
  • depurar trazas de pila que apuntan a código de terceros
  • revisar la salud del paquete, licencias, vulnerabilidades, dependencias y registros de cambios
  • comparar actualizaciones de dependencias usando evidencia factual

Ejemplos

Encuentra arte previo 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 grep 'router\.use' npm:express --path-prefix lib/

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 <docs-read-target> --lines 20-80

Diferencias de código fuente

githits code diff y la herramienta pública MCP code_diff están disponibles por defecto. Compara versiones exactas de paquetes o referencias de repositorios públicos, por ejemplo:

githits code diff npm:express 5.2.0..5.2.1 --stat
githits code diff npm:express 5.2.0..5.2.1 --patch -- 'lib/**/*.js'

Las diferencias de paquetes abarcan todo el repositorio a menos que se limiten con un patrón de ruta explícito. Las diferencias sin procesar no prueban la seguridad de la actualización. Consulta diferencia de código fuente para conocer los límites, la seguridad de los parches y el direccionamiento compatible. La disponibilidad del MCP alojado requiere la adopción del paquete @githits/mcp publicado y su implementación.

Resolución de objetivos

resolve_target / githits resolve convierte un nombre de paquete público, repositorio o sitio de documentación difuso, mal escrito o ambiguo en objetivos canónicos clasificados. Está disponible por defecto en la CLI, el MCP local y el paquete MCP público. Los objetivos canónicos omiten la resolución; la identidad incierta requiere una elección explícita. Consulta resolución de objetivos para conocer las reglas de continuación y los límites. El MCP alojado y los complementos lo reciben después de que el paquete publicado se adopte e implemente.

Herramientas experimentales

research / githits research (alias githits ask) responde preguntas fundamentadas con fuentes. Está oculta y deshabilitada por defecto y está disponible a través de la CLI local y el MCP stdio local después de la aceptación de configuración del host:

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

Reinicia el agente de codificación después de cambiar la configuración. Consulta Herramientas experimentales para la configuración y el uso.

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 es compatible con npm, PyPI, Hex, Crates, NuGet, Maven, Packagist, RubyGems, Go, Swift, vcpkg y Zig. Los datos de asesoramiento 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 predeterminado y filtra repositorios con licencias copyleft o no declaradas
  • custom usa tu lista de bloqueo de cuenta configurada en githits.com
  • yolo desactiva 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 bucle invertido
  • login --force re-autentica incluso si ya has iniciado sesión

La devolución de llamada 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 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; es generada por macOS.

GitHits también escribe un pequeño archivo de metadatos no secreto 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 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 las credenciales 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, agrega GitHits a su configuración 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 demonio en segundo plano ni una instalación global.

Para eliminar la configuración escrita por init:

npx githits@latest uninstall

Esto elimina la configuración MCP de GitHits y la guía escrita por init, mientras preserva las credenciales almacenadas. Ejecuta npx githits@latest logout por separado para eliminar las credenciales. La forma de compatibilidad npx githits@latest init uninstall acepta las mismas opciones --yes, --project y --keep-guidance.

Configuración del proyecto

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

npx githits@latest init --project

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

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

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

Empaquetado de complementos y extensiones

El repositorio y el paquete publicado proporcionan los activos de complementos y extensiones utilizados por los 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 es compartido por todos los hosts compatibles. Cada instalación de complemento 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 complemento 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.

La instalación guiada de init instala las cuatro habilidades canónicas (githits-code, githits-mcp, githits-onboarding y githits-package) solo para agentes seleccionados. Los agentes compartidos con capacidad de habilidades usan ~/.agents/skills/ en el ámbito de usuario o .agents/skills/ en el ámbito del proyecto; los agentes solo nativos usan su directorio de habilidades nativas verificado. Los agentes compatibles que leen una raíz compartida pueden descubrir esas habilidades. Una ejecución guiada posterior repara las habilidades faltantes, y la migración elimina solo el githits-mcp/SKILL.md histórico de Cline o Junie después de que se verifique el conjunto compartido completo.

Para instalaciones de 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 uninstall        Remove GitHits MCP configuration and guidance
githits init uninstall   Compatibility alias for `githits uninstall`
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 doctor           Diagnose configuration and auth state
githits resolve          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 diff 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 la 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_STORAGEAnular el modo de almacenamiento de OAuth: keychain o filekeychain
GITHITS_DISABLE_UPDATE_CHECKDeshabilitar avisos de actualización de la última versión de npmsin establecer
GITHITS_TELEMETRYEmitir diagnósticos de temporización 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 de la CLI, autenticación local, flujos de configuración e inicio de MCP stdio local
  • packages/mcp/ - Paquete público @githits/mcp para API de servidor MCP independientes del transporte, registro de herramientas, instrucciones y ayudantes de pruebas de humo
  • packages/core-internal/ - Implementación de 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 ver los cambios publicados, el trabajo pendiente y el impacto actual de la versión del paquete.

Desarrollo

Requisitos:

  • Node.js ^20.18.1 || >=22.13.0
  • Bun
  • Python 3.11 o posterior para las pruebas del puntuador de actualización de dependencias (python en Windows, python3 en otros lugares)

Comandos comunes:

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

Al cambiar herramientas MCP, comandos de la CLI, formateadores compartidos, envoltorios de autenticación/errores 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 comprobaciones localmente después de bun run build:

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

El entorno de pruebas permanece en Bun, mientras que los subprocesos del producto ejecutan dist/cli.js con node de PATH. CI aprovisiona ese tiempo de ejecución 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