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 CLI
La capa de contexto de código para agentes de codificación de IA.
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:
| Capacidad | Herramientas MCP | Comandos CLI |
|---|---|---|
| Orientación de herramientas | quick_start | — |
| Ejemplos de código | get_example | githits example |
| Navegación de inventario | list | githits list |
| Búsqueda de código y documentación | search, search_status, grep | githits search, githits search-status, githits grep |
| Leer archivos fuente o secciones de documentación | read | githits read <target> [path] |
| Inspección de paquetes | pkg_info, pkg_vulns, pkg_deps, pkg_changelog, pkg_upgrade_review | githits 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:
strictes el predeterminado y filtra repositorios con licencias copyleft o no declaradascustomusa tu lista de bloqueo de cuenta configurada en githits.comyolodesactiva 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-browserologin --no-browserimprime la URL de inicio de sesión en lugar de abrir un navegadorinit --port <port>ologin --port <port>corrige el puerto de devolución de llamada de bucle invertidologin --forcere-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.jsongemini-extension.jsonplugin.json(Google Antigravity)mcp_config.json(Google Antigravity)AGENTS.mdCLAUDE.mdGEMINI.mdskills/
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:
| Variable | Propósito | Predeterminado |
|---|---|---|
GITHITS_API_TOKEN | Token de API para autenticación | sin establecer |
GITHITS_AUTH_STORAGE | Anular el modo de almacenamiento de OAuth: keychain o file | keychain |
GITHITS_DISABLE_UPDATE_CHECK | Deshabilitar avisos de actualización de la última versión de npm | sin establecer |
GITHITS_TELEMETRY | Emitir diagnósticos de temporización locales a stderr | sin 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 localpackages/mcp/- Paquete público@githits/mcppara API de servidor MCP independientes del transporte, registro de herramientas, instrucciones y ayudantes de pruebas de humopackages/core-internal/- Implementación de espacio de trabajo compartido utilizada por la CLI y el paquete MCPdocs/- Notas de implementación y pautas para colaboradoresscripts/- 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 (
pythonen Windows,python3en 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