GitHits
O MCP GitHits dá aos agentes de IA acesso a busca de código aberto, documentação de pacotes, exemplos do mundo real, metadados de dependências, changelogs e contexto de vulnerabilidades para melhores decisões de desenvolvimento de software.
Documentação
GitHits CLI
A camada de contexto de código para agentes de codificação de IA.
Website · Documentação · Issues
O GitHits conecta agentes de codificação de IA a evidências de código aberto público em todo o ciclo de vida do desenvolvimento de software: descoberta, planejamento, pesquisa, implementação, depuração e manutenção.
A CLI executa um servidor MCP local que sua ferramenta de codificação inicia sob demanda. Os agentes podem então pesquisar código-fonte indexado de pacotes e repositórios, ler arquivos exatos e páginas de documentação, inspecionar a saúde dos pacotes, comparar atualizações de dependências e encontrar exemplos citados de código-fonte de projetos de código aberto reais quando o conhecimento do modelo e o contexto do repositório local não são suficientes.
Início Rápido
npx githits@latest init
init faz login, detecta ferramentas de codificação suportadas e configura o GitHits para as ferramentas selecionadas. Ele usa o MCP stdio local, exceto para o Cursor, cuja configuração direta usa o MCP remoto hospedado.
A configuração automática atualmente suporta 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 e Amazon Q CLI.
Após a configuração, abra seu agente de codificação e trabalhe normalmente. Muitos agentes chamam o GitHits quando precisam de contexto baseado em código-fonte. Se o seu agente começar a adivinhar, solicite-o diretamente:
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.
O que o GitHits Adiciona
O GitHits é projetado para o ponto em que um agente precisa de evidências do ecossistema de código aberto mais amplo, não apenas da memória do modelo ou do contexto do repositório local:
| Capacidade | Ferramentas MCP | Comandos CLI |
|---|---|---|
| Exemplos de código | get_example, search_language | githits example, githits languages |
| Navegação de código | search, search_status, code_files, code_read, code_grep | githits search, githits search-status, githits code ... |
| Acesso à documentação | docs_list, docs_read | githits docs ... |
| Inspeção de pacotes | pkg_info, pkg_vulns, pkg_deps, pkg_changelog, pkg_upgrade_review | githits pkg ... |
| Feedback | feedback | githits feedback |
Use o GitHits quando seu agente precisar de:
- descobrir, planejar ou pesquisar como projetos OSS resolvem um problema vago ou erro desconhecido
- encontrar artefatos anteriores amplos ou exemplos raros de agulha no palheiro em repositórios
- inspecionar código-fonte, testes, símbolos ou documentação de um pacote ou repositório conhecido
- verificar como uma dependência realmente se comporta antes de alterar o código
- depurar rastreamentos de pilha que apontam para código de terceiros
- revisar saúde do pacote, licenças, vulnerabilidades, dependências e changelogs
- comparar atualizações de dependências usando evidências factuais
Exemplos
Encontre artefatos anteriores em código aberto:
npx githits@latest example "HTTP retries with exponential backoff in Python"
Pesquise código, documentação e símbolos indexados para uma dependência:
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
Leia e pesquise o código-fonte da dependência sem 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
Inspecione a saúde do pacote e evidências de atualização:
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
Navegue e leia a documentação do pacote:
npx githits@latest docs list npm:express
npx githits@latest docs read <page-id> --lines 20-80
Ferramentas Experimentais
O GitHits 0.10 adiciona duas ferramentas locais opcionais para uso antecipado interno:
resolve_target/githits resolvetransforma um nome de pacote ou repositório vago ou ambíguo em alvos canônicos classificados.code_diff/githits code diffcompara árvores de repositório resolvidas a partir de versões exatas de pacotes ou refs públicos do GitHub.
Elas estão ocultas e desabilitadas por padrão. Estão disponíveis apenas através da CLI local githits e do servidor MCP stdio local; o MCP hospedado e as instalações de plugin ou extensão mantêm o conjunto estável de ferramentas. Habilite-as na configuração do host do GitHits e reinicie o agente de codificação para que ele reinicie o servidor MCP local:
# macOS/Linux: ~/.config/githits/config.toml
# Windows: %APPDATA%\githits\config.toml
[experimental]
tools = true
Consulte Ferramentas experimentais para descoberta de configuração específica da plataforma, exemplos de CLI, relatórios opcionais de problemas, limitações e como desabilitar as ferramentas.
Fontes Suportadas
O GitHits funciona com alvos de pacotes e repositórios, como:
- especificações de pacotes:
npm:react,npm:react@18.2.0,pypi:requests,crates:serde - repositórios GitHub:
https://github.com/expressjs/express,github:expressjs/express#main
A inspeção de pacotes suporta npm, PyPI, Hex, Crates, NuGet, Maven, Packagist, RubyGems, Go, Swift, vcpkg e Zig. Dados de aviso não estão disponíveis para vcpkg e Zig; o suporte a gráfico de dependências varia por registro.
Filtragem de Licença
A pesquisa de exemplos de código suporta filtragem de licença:
stricté o padrão e filtra repositórios com licenças copyleft ou não declaradascustomusa sua lista de bloqueio de conta configurada em githits.comyolodesabilita a filtragem de licença
npx githits@latest example "async file reading" --lang python --license strict
Autenticação
A configuração local normal é tratada por:
npx githits@latest init
Para login manual:
npx githits@latest login
O OAuth de navegador é recomendado para desenvolvimento local. As credenciais são armazenadas no chaveiro do sistema por padrão e atualizadas automaticamente. Flags úteis:
init --no-browseroulogin --no-browserimprime a URL de login em vez de abrir um navegadorinit --port <port>oulogin --port <port>corrige a porta de retorno de chamada de loopbacklogin --forcereautentica mesmo se você já estiver logado
O retorno de chamada OAuth sempre escuta na máquina onde o GitHits está em execução. Quando o GitHits é executado via SSH e o navegador é executado localmente, encaminhe a porta selecionada da máquina do navegador:
ssh -N -L 8765:127.0.0.1:8765 user@remote-host
Com esse túnel aberto, execute o GitHits na máquina remota usando a mesma porta:
npx githits@latest init --no-browser --port 8765
Abra a URL impressa pelo GitHits no navegador local. Substitua user@remote-host pelo destino SSH que você normalmente usa. As mesmas flags funcionam com githits login após a configuração.
O OAuth de navegador é interativo. Para CI e outros ambientes não supervisionados, forneça GITHITS_API_TOKEN através do gerenciador de segredos do ambiente.
Prompts do Chaveiro e Armazenamento de Arquivos
O GitHits usa o chaveiro do sistema por padrão porque as credenciais OAuth incluem um token de atualização. No macOS, isso significa Acesso ao Chaveiro; no Windows, Gerenciador de Credenciais; no Linux, o backend de Serviço Secreto ou keyring disponível.
Se o macOS mostrar um prompt como "githits deseja acessar ... no seu chaveiro", escolha Sempre Permitir quando confiar na CLI githits instalada. O GitHits não pode personalizar esse prompt do sistema operacional; ele é gerado pelo macOS.
O GitHits também grava um pequeno arquivo de metadados não secretos para que verificações recentes de inicialização não precisem ler o chaveiro. O chaveiro só é lido quando o GitHits precisa do token, por exemplo, durante uma chamada de ferramenta, atualização de token, githits auth status ou uma verificação de login após metadados desatualizados ou expirados.
Se o seu agente continuar mostrando prompts do chaveiro mesmo após Sempre Permitir, alterne o armazenamento OAuth para o modo de arquivo:
# macOS/Linux: ~/.config/githits/config.toml, or $XDG_CONFIG_HOME/githits/config.toml
# Windows: %APPDATA%\githits\config.toml
[auth]
storage = "file"
O diretório de configuração pode estar vazio até você criar config.toml ou o GitHits gravar metadados de autenticação. Instalações mais antigas do macOS podem ter usado ~/Library/Application Support/githits; o GitHits ainda lê esse local para migração, mas a nova configuração de autenticação e o armazenamento de arquivos usam ~/.config/githits.
Você também pode optar por um processo:
GITHITS_AUTH_STORAGE=file githits login --force
O modo de arquivo armazena credenciais OAuth como arquivos JSON no diretório de configuração do GitHits. Os arquivos são gravados com permissões privadas onde a plataforma suporta, mas não são criptografados. Qualquer processo que possa ler arquivos como seu usuário do sistema operacional pode ser capaz de ler os tokens.
Use o modo de arquivo apenas em máquinas onde você confia no acesso local da conta de usuário. Para CI e automação, prefira GITHITS_API_TOKEN em vez de OAuth de navegador.
Inspecione o estado de autenticação e tempo de execução com:
npx githits@latest auth status
npx githits@latest doctor
Consulte a documentação de autenticação para comportamento do chaveiro, modo de armazenamento de arquivos, configuração de CI e solução de problemas.
Configuração Manual do MCP
Se sua ferramenta de codificação não for configurada automaticamente por init, adicione o GitHits à sua configuração MCP manualmente:
{
"mcpServers": {
"githits": {
"command": "npx",
"args": ["-y", "githits@latest", "mcp", "start"]
}
}
}
Sua ferramenta executa este comando via stdio. Nenhum daemon em segundo plano ou instalação global é necessária.
Para remover a configuração gravada por init:
npx githits@latest init uninstall
Isso remove a configuração MCP do GitHits e preserva as credenciais armazenadas. Execute npx githits@latest logout separadamente para remover as credenciais.
Configuração do Projeto
Para configuração MCP local do projeto, execute:
npx githits@latest init --project
A configuração do projeto está disponível apenas para ferramentas com suporte MCP local do projeto verificado. A configuração do projeto não contém segredos, mas pode ser commitada como qualquer outra configuração de ferramenta, então revise os arquivos gerados antes de adicioná-los ao controle de versão.
A configuração não interativa segura para agentes usa descoberta em etapas e instalação explícita:
npx githits@latest init --detect-agents --json
npx githits@latest init --install-agents cursor,codex
Empacotamento de Plugins e Extensões
O repositório e o pacote publicado fornecem os ativos de plugin e extensão usados por hosts compatíveis. Instalações baseadas em Git também mantêm os symlinks de arquivos de contexto (CLAUDE.md e GEMINI.md) para o 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/
A árvore de habilidades raiz é compartilhada por todos os hosts suportados. Cada instalação de plugin e extensão usa o MCP remoto hospedado, incluindo Claude, Codex, Cursor, Gemini CLI, Google Antigravity e VS Code/GitHub Copilot OpenPlugin. A configuração direta do githits init é um caminho separado: ela instala configurações stdio locais para ferramentas suportadas, exceto o Cursor, que permanece apenas remoto. A raiz do repositório é um plugin nativo do Antigravity através de plugin.json, mcp_config.json e da árvore compartilhada skills/. Os manifestos gerados são atualizados com bun run plugins:generate e validados com bun run plugins:check.
Para instalações do marketplace do Claude Code:
claude plugin marketplace add githits-com/githits-cli
claude plugin install githits@githits-plugins
Para instalações de extensão do Gemini CLI:
gemini extensions install https://github.com/githits-com/githits-cli
Referência 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
Referência completa da CLI: https://docs.githits.com/cli/commands
Variáveis de Ambiente
A maioria dos usuários não precisa de variáveis de ambiente. Estas são as substituições comuns para CI, armazenamento de autenticação e diagnósticos locais:
| Variável | Propósito | Padrão |
|---|---|---|
GITHITS_API_TOKEN | Token de API para autenticação | não definido |
GITHITS_AUTH_STORAGE | Substituir o modo de armazenamento OAuth: keychain ou file | keychain |
GITHITS_DISABLE_UPDATE_CHECK | Desabilitar avisos de atualização de versão mais recente do npm | não definido |
GITHITS_TELEMETRY | Emitir diagnósticos de tempo locais para stderr | não definido |
Referência completa: https://docs.githits.com/cli/environment-variables
Estrutura do Código-Fonte
Este repositório contém a CLI do GitHits e o pacote MCP reutilizável:
src/- Comandos da CLI, autenticação local, fluxos de configuração e inicialização do MCP stdio localpackages/mcp/- pacote público@githits/mcppara APIs de servidor MCP neutras em transporte, registro de ferramentas, instruções e auxiliares de teste de fumaçapackages/core-internal/- implementação de workspace compartilhada usada pela CLI e pelo pacote MCPdocs/- notas de implementação e diretrizes para contribuidoresscripts/- validação de pacotes, testes de fumaça e utilitários de desenvolvimento
Consulte CHANGELOG.md para alterações lançadas, trabalho pendente e o impacto atual da versão do pacote.
Desenvolvimento
Requisitos:
- Node.js
^20.18.1 || >=22.13.0 - Bun
Comandos comuns:
bun install
bun run dev --help
bun test
bun run typecheck
bun run build
Ao alterar ferramentas MCP, comandos CLI, formatadores compartilhados, envelopes de autenticação/erro ou comportamento de paridade MCP/CLI, execute também os conjuntos de testes de fumaça relevantes:
bun run smoke:mcp
bun run smoke:cli
O CI também verifica o produto compilado sem credenciais ou chamadas de backend ao vivo. Execute
as mesmas verificações localmente após bun run build:
bun run smoke:cli:built
bun run smoke:mcp:built
O harness permanece no Bun, enquanto os subprocessos do produto executam dist/cli.js
com node de PATH. O CI provisiona esse runtime a partir de .node-version.
Ao alterar instruções MCP, descrições de ferramentas ou comportamento voltado ao agente,
use as avaliações de agente direcionadas descritas em eval/agentic/README.md:
bun run agent:e2e
Licença
Apache-2.0