- Category
- Developer Tools
- Rank
- No. 3937Tools index
Previous survey · No. 3039 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Coding
- Interfaces
- CLI
- GitHub
- 68 stars
- Latest release
- v0.8.7
- Date
About
Kin is an open-source, graph-native code repository that stores functions, types, relationships and change history as committable graph data alongside Git. It lets developers and AI agents run commands like 'kin impact' to see what a code change affects before compiling, avoiding the need to rebuild context from scratch each session.
What it does
Kin swaps the usual pile of text files and line diffs for a code graph as the thing you version. A parser pass turns supported source into entities such as functions and classes, plus the calls, imports and inheritance between them, and records that graph with its own commits, branches and merges. It imports an existing Git history on setup, runs a local background daemon, and answers questions through a command line tool and a Model Context Protocol (MCP) server that coding agents call. Files stay byte-exact, so compilers and editors keep working.
Why it's ranked here
The case rests on honesty about its own answers more than on the graph idea. Every MCP response names which store answered, how fresh it is and whether coverage was complete, and an empty result carries a verdict separating "not present" from "not indexed yet". The security notes list every network exit: by default source, graph and queries stay on the machine, with no telemetry upload. The local stack is Apache 2.0. Against that, it is a self-declared public beta with incomplete language coverage and a large command surface to learn.
What's good
The documentation states limits with numbers and commands rather than adjectives. Setup asks before downloading the roughly 523 MB local search model, and search falls back to name and graph signals until it arrives. Language support is spelled out per language: fourteen get full entity and relation extraction, while type-resolved cross-file links come only for Rust, Python, TypeScript, JavaScript and Go with their language servers installed. Installers verify SHA-256 checksums before installing. Change review returns a pass, attention or block verdict with graph-derived impact, and is labelled advisory rather than a merge gate.
Tradeoffs
Import walks every commit reachable from branches and tags, so time, memory and disk grow with history. Shallow clones, submodules and Git LFS are not supported, and hooks or an unfinished rebase stop the import. Commits, branches and reviews recorded only in Kin live outside Git and are lost if its store is deleted, unless you run its backup command first. Writes are not enforced yet: ordinary tools edit files freely and the graph catches up afterwards. Native Windows is early, and Scala, Lua, Haskell and several other languages get no semantic extraction.
How to use it well
Suits a developer who points an agent such as Claude Code, Codex or Cursor at a large codebase in a supported language and wants caller and impact lookups instead of repeated grep passes. Start in a fresh full clone of a project you know, ask about a symbol whose callers you already know, and check the answer against the source. Install the language server for your language, since without one cross-file links fall back to name matching. Keep your compiler, tests and human review: an empty result does not prove there are no callers.
Technical notes+
Cargo.toml declares a Rust workspace of kin-* crates (kin-db, kin-parser, kin-mcp, kin-daemon, kin-cli, kin-review and others) with tree-sitter grammars for each supported language, a vendored TypeScript grammar because upstream cannot parse two constructs tsc accepts, gix for Git interop, and axum for the HTTP surface; kin-search is pinned to the exact version kin-db tokenizes with, since skew would silently lose recall. crates/kin-mcp/src/server.rs defaults McpServerConfig to SessionAuthorityMode::DaemonRequired, so the product server never falls back to a local registry, and separates an agent belt profile (trimmed descriptions) from benchmark profiles whose bytes stay fixed. docs/mcp-tools.md documents the versioned _kin envelope (runtime, graph_as_of, semantic_coverage, durability, degraded flags) and a single verdict where the most pessimistic input wins. docs/write-authority-model.md describes the current permissive write path with asynchronous reconcile, and docs/language-support.md lists LSP enrichment wired only for Rust, Python, TypeScript, JavaScript and Go. docs/security/what-leaves-the-machine.md names remote embedding and agent runs as the only opt-in paths that send source-derived text off the host; crates/kin-cli/src/main.rs groups the CLI's large command set into nine help categories.
Observed
- License
- Apache-2.0 for Kin and its local stack; hosted KinLab is separate and proprietary
- Language
- Rust (Cargo workspace)
- Interfaces
- CLI, local daemon, MCP server, built-in agent runner for OpenAI-compatible endpoints
- Install
- npx @kinlab/kin setup (Node.js 20+), shell and PowerShell installers, Homebrew tap, release archives; not on crates.io
- Platforms
- macOS, Linux, WSL2; native Windows x64 early; no native Windows ARM64 build
- Git import limits
- Shallow clones, submodules and Git LFS not supported
- Semantic search
- Local embedding model by default, downloaded only with consent; remote providers opt-in
- Telemetry
- None uploaded; opt-in locate telemetry stays in a local spool
- Full semantic languages
- TypeScript, JavaScript, Python, Go, Java, Rust, C, C++, Kotlin, C#, Ruby, Swift, PHP, HCL
- Maturity
- Self-described public beta
Read from README.md, Cargo.toml, docs/thesis.md, docs/mcp-tools.md, docs/quickstart.md, docs/write-authority-model.md, docs/security/what-leaves-the-machine.md, crates/kin-mcp/src/server.rs, crates/kin-core/src/lib.rs, crates/kin-cli/src/main.rs, docs/language-support.md.
What it can do
Show what a code change affects before compiling
Code change → Impact report
Store functions, types, relationships, and change history as committable graph data alongside Git
Source code → Graph data committed with Git history
Query the semantic graph to see what a change impacts before it merges
Git change/history → Impact query results
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.