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 con IA.
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:
| Capacidad | Herramientas MCP | Comandos CLI |
|---|---|---|
| Ejemplos de código | get_example, search_language | githits example, githits languages |
| Navegación de código | search, search_status, code_files, code_read, code_grep | githits search, githits search-status, githits code ... |
| Acceso a documentación | docs_list, docs_read | githits docs ... |
| Inspección de paquetes | pkg_info, pkg_vulns, pkg_deps, pkg_changelog, pkg_upgrade_review | githits pkg ... |
| Retroalimentación | feedback | githits 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 resolveconvierte un nombre de paquete o repositorio difuso o ambiguo en objetivos canónicos clasificados.code_diff/githits code diffcompara á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:
strictes el valor predeterminado y filtra repositorios con licencias copyleft o no declaradascustomusa la lista de bloqueo de tu cuenta configurada en githits.comyolodeshabilita 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 loopbacklogin --forcere-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.jsongemini-extension.jsonplugin.json(Google Antigravity)mcp_config.json(Google Antigravity)AGENTS.mdCLAUDE.mdGEMINI.mdskills/
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:
| Variable | Propósito | Predeterminado |
|---|---|---|
GITHITS_API_TOKEN | Token de API para autenticación | sin establecer |
GITHITS_AUTH_STORAGE | Anula el modo de almacenamiento de OAuth: keychain o file | keychain |
GITHITS_DISABLE_UPDATE_CHECK | Deshabilita los avisos de actualización de la última versión de npm | sin establecer |
GITHITS_TELEMETRY | Emite diagnósticos de tiempo 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 CLI, autenticación local, flujos de configuración e inicio de MCP stdio localpackages/mcp/- paquete público@githits/mcppara APIs de servidor MCP independientes del transporte, registro de herramientas, instrucciones y ayudas de pruebas de humopackages/core-internal/- implementación del 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 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