Kin

Recuperação semântica de código sobre um grafo de entidades, relacionamentos, alterações e proveniência. Localize, busque, pacotes de contexto, rastreamento de fluxo de dados e análise de impacto sem busca bruta em arquivos.

Documentação

Kin, a code repository for people and AI agents

Uma nova base para código.

Apache-2.0 Latest release

Kin é um repositório de código nativo de grafos para pessoas e agentes de IA. Ele armazena código-fonte, relacionamentos de código registrados e histórico versionado como estado do repositório. O grafo é o modelo do repositório, não um índice de busca mantido ao lado de outro repositório.

Funções, tipos e os relacionamentos entre eles são dados que você faz commit, cria branches e faz merge. O código-fonte exato é preservado byte a byte, e projeções de sistema de arquivos permitem que ferramentas compatíveis continuem funcionando com arquivos comuns.

Beta público. Experimente Kin em um projeto real que você conhece bem. Espere arestas a serem polidas.

Início rápido · Documentação · Demonstração no navegador

kin impact human_bytes --file crates/kin-cli/src/commands/cache.rs --kind function --depth 1, showing its direct callers in Kin's own codebase next to a git grep search for the same name

Uma estrela ajuda outras pessoas a encontrar o Kin, e Discussões é o lugar para trazer uma pergunta sobre ele.

Veja o que se conecta

Antes de alterar uma função compartilhada, o que mais você deve inspecionar? O Kin permite que você consulte seus chamadores registrados e explore código relacionado. A CLI e o servidor MCP consultam o mesmo grafo, então você e seu agente podem trabalhar a partir do mesmo registro.

A recorded kin impact query on ripgrep, showing related entities for a signature change

Registrado em um grafo ripgrep preparado em e89fff89ac9af12e8d4ce9d5fd07beb408ca730f. Artefatos brutos de execução não são públicos. Isso ilustra um fluxo de trabalho, não um benchmark de desempenho.

Use com Claude Code, Codex ou Cursor

Para Claude Code:

/plugin marketplace add firelock-ai/kin
/plugin install kin@kin

Para Codex, adicione o marketplace e instale o plugin, ou deixe kin setup --intent agent escrever o servidor MCP em ~/.codex/config.toml para você.

Para Cursor, adicione o servidor MCP manualmente; veja plugins/kin-cursor para o trecho exato.

Após instalar, execute kin init . em um clone novo de um projeto que você conhece bem; a habilidade kin-setup orienta você pelo restante.

O Kin não é publicado no crates.io. O crate kin lá é um projeto não relacionado.

Início rápido

Comece em um clone novo e completo de um projeto que você conhece bem. kin init lê seu histórico do Git sem alterá-lo ou alterar seus arquivos rastreados. Ele adiciona um diretório .kin e uma linha em .git/info/exclude. A importação cobre todos os commits que suas branches e tags alcançam, então tempo, memória e disco crescem com o histórico, e não com o tamanho do checkout. Antes de começar, kin init verifica memória e disco livre e para com os números quando já pode dizer que a máquina está com recursos insuficientes. Clones rasos, submódulos e Git LFS não são suportados, e hooks do Git, checkout esparso ou um merge ou rebase inacabado também interrompem a importação. kin init nomeia a correção para cada um, e um clone novo evita a maioria deles.

1. Instalar

No macOS, Linux e WSL2, um comando instala o Kin e conecta as ferramentas de codificação de IA que ele encontra. Ele precisa do Node.js 20 ou mais recente:

npx -y @kinlab/kin setup

Em uma máquina sem Node, execute o instalador. get.kinlab.ai e get.kinlab.dev servem o mesmo script:

curl -fsSL https://get.kinlab.dev/install | sh

De qualquer forma, recarregue seu shell como um comando separado, porque a instalação coloca kin em ~/.kin/bin e adiciona esse diretório ao seu perfil de shell para novas sessões:

exec "$SHELL" -l

No Windows x64 nativo, instale do PowerShell com irm https://get.kinlab.dev/install.ps1 | iex. Ele instala a CLI kin e não conecta ferramentas de codificação de IA, porque WSL2 continua sendo o caminho recomendado no Windows. A entrada do Windows em Limites beta diz o que funciona lá. Nenhuma compilação ARM64 nativa do Windows é publicada. Em uma máquina ARM64, execute essa linha do PowerShell x64 para instalar a compilação x86_64 sob emulação, ou use WSL2. O instalador adiciona kin ao seu PATH de usuário, então abra uma nova janela do PowerShell no lugar de exec "$SHELL" -l antes do próximo passo.

Para outros instaladores ou solução de problemas, veja o início rápido completo.

2. Inicializar o repositório

No novo prompt, clone um repositório com Kin:

kin clone https://github.com/pallets/itsdangerous

Ou inicialize um que você já tem, substituindo o caminho abaixo:

cd /path/to/your/repository &&
kin init . &&
kin overview &&
kin status

Ambos terminam com o próximo comando a executar, uma pergunta kin refs sobre uma função nesse repositório. Eles também conectam Codex CLI e Grok CLI a ele quando você permitiu isso na configuração, porque esses clientes mantêm uma entrada que nomeia um repositório.

O Windows PowerShell 5.1 não tem &&, então no Windows nativo execute os mesmos comandos um de cada vez e pare se um falhar:

cd C:\path\to\your\repository
kin init .
kin overview
kin status

kin overview mostra as entidades que o Kin importou. kin status mostra o que foi admitido e o estado da árvore de trabalho em relação a isso. kin graph status relata o grafo de consulta ao vivo do daemon e a cobertura. Alterações não commitadas e não rastreadas não fazem parte do histórico do Git importado; kin init relata o que deixou de fora.

3. Faça uma pergunta que você pode verificar

Procure algo que você já sabe que está no código:

kin locate "<something you already know is in this repository>"

Substitua ExactEntityName abaixo por um símbolo do resultado:

kin refs ExactEntityName
kin trace ExactEntityName
kin impact ExactEntityName

refs retorna referências registradas, trace traz contexto próximo, e impact explora efeitos potenciais através do grafo. Verifique os resultados contra o código-fonte.

4. Suas ferramentas de codificação de IA e busca semântica

kin setup já perguntou antes de conectar as ferramentas de codificação de IA que encontrou, e as conectou se você disse sim. Não há etapa de vinculação separada. Depois de instalar outra ferramenta, execute kin setup novamente, e kin setup status mostra o que está conectado. No Windows, conecte ferramentas de IA dentro do WSL2.

A busca semântica roda em um modelo local de cerca de 523 MB, e a configuração pergunta antes de qualquer download. Se você disse não, ou kin init diz que o índice de busca está esperando o modelo, isso baixa o modelo e constrói o índice:

kin embed

O Kin suporta Claude Code, Codex, Cursor, Gemini e outros clientes MCP. Use kin setup --intent editor para VS Code. O Kin também inclui kin agent run para endpoints de modelos compatíveis com OpenAI locais ou hospedados.

Configuração do cliente · Ferramentas MCP · Agente integrado

Importações, armazenamento e consultas locais rodam na sua máquina. A instalação e o download inicial do modelo de embeddings precisam de acesso à rede. Antes que os embeddings estejam prontos, kin locate usa sinais lexicais e de grafo e relata a cobertura vetorial ausente.

Revise uma alteração

Depois de executar kin init na branch do Git que você quer revisar, compare SHAs de commit explícitos contra main:

kin review shadow "$(git rev-parse main)..$(git rev-parse HEAD)"

O relatório retorna PASS, NEEDS ATTENTION ou WOULD BLOCK, com impacto derivado do grafo e evidências de apoio. É consultivo: não bloqueia um merge nem altera o estado do grafo. A autoria é declarada, não verificada de forma independente.

Use Kin com ou sem Git

O Kin tem seus próprios commits, branches, merges, diffs e histórico, inclusive em repositórios sem Git por baixo. Repositórios Git existentes podem ser importados, e fluxos de trabalho suportados podem exportar um novo repositório Git.

Passo a passo de controle de versão nativo · Interoperabilidade com Git e limites de exportação

Limites beta

A cobertura é incompleta. Linguagens suportadas são analisadas em entidades e relacionamentos; outros arquivos permanecem disponíveis como conteúdo e histórico. Um resultado vazio não prova que não há chamadores ou dependências. Continue usando seu compilador, testes e revisão. Veja suporte a linguagens.

A compatibilidade varia. Os arquivos de lançamento não incluem a projeção de sistema de arquivos kin-vfs obsoleta, então não há projeção transparente em que confiar. Verifique notas de plataforma para o que cada plataforma suporta.

Faça backup do estado exclusivo do Kin. Commits, branches, revisões e especificações que você registra com o Kin vivem em .kin, não no Git. Excluir .kin e reimportar do Git não os recupera, então execute kin backup create primeiro. Leia as notas de importação, recuperação e atualização.

Windows. O suporte nativo a Windows x86_64 é inicial. A admissão de repositórios funciona: kin init importa um repositório Git e publica autoridade de grafo, e consultas baseadas em grafo, lexicais e apoiadas por daemon respondem nativamente. A prova de instalação de ponta a ponta também executa a configuração do agente no Windows nativo e obtém respostas baseadas em grafo do servidor MCP instalado. A projeção transparente de sistema de arquivos não é enviada no Windows, e fluxos de trabalho de revisão ainda não são testados lá, então WSL2 continua sendo o caminho recomendado para a experiência completa do Kin.

Por que construí o Kin

Eu continuava vendo agentes de codificação juntando partes de uma base de código que já tínhamos trabalhado. Então eu fazia uma versão desse trabalho eu mesmo para revisar as alterações deles. Comecei a me perguntar por que mais desse entendimento estrutural não fazia parte do próprio repositório.

É isso que estou construindo com o Kin.

Troy

Saiba mais e contribua

Referência da CLI · Arquitetura e limites detalhados · Contribuindo · Problemas · Segurança

O Kin e sua pilha local, incluindo kin-db, são Apache-2.0. KinLab é o produto hospedado proprietário separado. A integração de repositórios públicos ainda está em desenvolvimento.