
kin v0.3.4
Le système sémantique d'enregistrement pour les logiciels écrits par IA : un graphe d'entités et de relations, pas de différences de fichiers.
Une nouvelle fondation pour le code.
Kin est un dépôt de code natif graphe pour les agents IA et les personnes qui construisent avec eux. Il stocke le code source, les relations de code enregistrées et l'historique versionné en tant qu'état du dépôt. Le graphe est le modèle du dépôt, et non un index de recherche maintenu à côté d'un autre dépôt.
Les fonctions, les types et les relations entre eux sont des données que vous commitez, branchez et fusionnez. Le code source exact est préservé octet par octet, et des projections de système de fichiers permettent aux outils pris en charge de continuer à fonctionner avec des fichiers ordinaires.
Bêta publique. Essayez Kin sur un projet réel que vous connaissez bien. Attendez-vous à quelques aspérités.
Démarrage rapide · Documentation · Démo navigateur
Une étoile aide d'autres personnes à trouver Kin, et les Discussions sont l'endroit où poser une question à son sujet.
Voir ce qui est connecté
Avant de modifier une fonction partagée, que devriez-vous inspecter d'autre ? Kin vous permet de rechercher ses appelants enregistrés et d'explorer le code associé. La CLI et le serveur MCP interrogent le même graphe, afin que vous et votre agent puissiez travailler à partir du même enregistrement.
Enregistré sur un graphe ripgrep préparé à e89fff89ac9af12e8d4ce9d5fd07beb408ca730f. Les artefacts bruts d'exécution ne sont pas publics. Ceci illustre un flux de travail, et non un benchmark de performance.
Utilisez-le depuis Claude Code, Codex ou Cursor
Pour Claude Code :
/plugin marketplace add kinlab-ai/kin
/plugin install kin@kin
Pour Codex, ajoutez le marketplace et installez le plugin, ou laissez kin setup --intent agent écrire le serveur MCP dans ~/.codex/config.toml pour vous.
Pour Cursor, ajoutez le serveur MCP manuellement ; consultez plugins/kin-cursor pour l'extrait exact.
Après l'installation, exécutez kin init . dans un clone récent d'un projet que vous connaissez bien ; la compétence kin-setup vous guide pour le reste.
Kin n'est pas publié sur crates.io. La crate kin qui s'y trouve est un projet sans rapport.
Démarrage rapide
Commencez dans un clone récent et complet d'un projet que vous connaissez bien. kin init lit votre historique Git sans le modifier ni toucher à vos fichiers suivis. Il conserve son store en dehors de votre checkout, dans ~/.kin/stores, et n'écrit rien dans le dépôt ; kin store path affiche l'emplacement du store d'un checkout. Par défaut, il admet d'abord le commit extrait, de sorte que les questions obtiennent une réponse dès que cette arborescence est lue, puis importe en arrière-plan, à faible priorité, chaque commit atteint par vos branches et tags ; kin init --history full importe tout l'historique d'emblée, et --history none ne l'importe jamais. L'import de l'historique consomme du temps, de la mémoire et de l'espace disque qui augmentent avec l'historique plutôt qu'avec la taille du checkout. Avant de commencer, kin init vérifie la mémoire et l'espace disque libre et s'arrête en affichant les chiffres lorsqu'il peut déjà déterminer que la machine est à court de ressources. Un clone superficiel n'admet que son commit extrait, et les submodules et Git LFS ne sont pas pris en charge, et les hooks Git, un checkout partiel ou un merge ou rebase inachevé bloquent également l'import. kin init indique la correction pour chacun, et un clone récent évite la plupart d'entre eux.
1. Installation
Sur macOS, Linux et WSL2, une seule commande installe Kin et connecte les outils de codage IA qu'il détecte. Elle nécessite Node.js 20 ou une version plus récente :
npx -y @kinlab/kin setup
Sur une machine sans Node, exécutez plutôt l'installateur. get.kinlab.ai et get.kinlab.dev servent le même script :
curl -fsSL https://get.kinlab.dev/install | sh
Dans les deux cas, rechargez votre shell dans une commande séparée, car l'installation place kin dans
~/.kin/bin et ajoute ce répertoire à votre profil de shell pour les nouvelles sessions :
exec "$SHELL" -l
Sur Windows x64 natif, installez depuis PowerShell avec irm https://get.kinlab.dev/install.ps1 | iex.
Cela installe la CLI kin et ne connecte pas les outils de codage IA, car WSL2 reste le
chemin recommandé sous Windows. L'entrée Windows dans Limites de la bêta
indique ce qui y fonctionne. Aucune build native Windows ARM64 n'est publiée. Sur une machine ARM64, exécutez
cette ligne depuis PowerShell x64 pour installer la build x86_64 sous émulation, ou utilisez WSL2.
L'installateur ajoute kin à votre PATH utilisateur, donc ouvrez une nouvelle fenêtre PowerShell à la place de
exec "$SHELL" -l avant l'étape suivante.
Pour d'autres installateurs ou pour le dépannage, consultez le guide de démarrage complet.
2. Initialiser le dépôt
À la nouvelle invite, clonez un dépôt avec Kin :
kin clone https://github.com/pallets/itsdangerous
Ou initialisez-en un que vous possédez déjà, en remplaçant le chemin ci-dessous :
cd /path/to/your/repository &&
kin init . &&
kin overview &&
kin status
Les deux se terminent par la commande suivante à exécuter, une question kin refs sur une fonction de ce dépôt. Ils connectent également Codex CLI et Grok CLI à celui-ci lorsque vous l'avez autorisé lors de la configuration, car ces clients conservent une entrée qui nomme un dépôt.
Windows PowerShell 5.1 ne dispose pas de &&, donc sous Windows natif, exécutez les mêmes commandes une par une et arrêtez-vous si l'une échoue :
cd C:\path\to\your\repository
kin init .
kin overview
kin status
kin overview affiche les entités importées par Kin. kin status indique ce qui a été admis et l'état de l'arbre de travail par rapport à celui-ci. kin graph status rapporte le graphe de requêtes actif du démon et sa couverture. Les modifications non validées et non suivies ne font pas partie de l'historique Git importé ; kin init indique ce qui a été omis.
3. Posez une question que vous pouvez vérifier
Cherchez quelque chose dont vous savez déjà qu'il se trouve dans le code :
kin locate "<something you already know is in this repository>"
Remplacez ExactEntityName ci-dessous par un symbole issu du résultat :