Skip to main content
Glama
README.md
<p align="center">
  <img src="docs/assets/kin-banner-2026.png" alt="Kin, a code repository for AI agents and the people who build with them" width="100%" />
</p>

<h3 align="center">A new foundation for code.</h3>

<p align="center">
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="Apache-2.0" /></a>
  <a href="https://github.com/kinlab-ai/kin/releases/latest"><img src="https://img.shields.io/badge/release-latest-6E56CF.svg" alt="Latest release" /></a>
</p>

**Kin is a graph-native code repository for AI agents and the people who build with them.** It stores source, recorded code relationships, and versioned history as repository state. The graph is the repository model, not a search index maintained beside another repository.

Functions, types, and the relationships between them are data you commit, branch, and merge. Exact source is preserved byte for byte, and filesystem projections let supported tools keep working with ordinary files.

**Public beta.** Try Kin on a real project you know well. Expect rough edges.

[Quickstart](#quickstart) · [Documentation](docs/quickstart.md) · [Browser demo](https://kinlab.ai/demo)

<p align="center">
  <img src="docs/assets/kin-impact-human-bytes.gif" alt="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" width="100%" />
</p>

A star helps other people find Kin, and [Discussions](https://github.com/kinlab-ai/kin/discussions) is where to bring a question about it.

## See what connects

Before changing a shared function, what else should you inspect? Kin lets you look up its recorded callers and explore related code. The CLI and MCP server query the same graph, so you and your agent can work from the same record.

<img src="docs/assets/kin-impact-ripgrep.png" alt="A recorded kin impact query on ripgrep, showing related entities for a signature change" width="100%" />

*Recorded on a prepared ripgrep graph at `e89fff89ac9af12e8d4ce9d5fd07beb408ca730f`. Raw run artifacts are not public. This illustrates a workflow, not a performance benchmark.*

## Use it from Claude Code, Codex or Cursor

For Claude Code:

```
/plugin marketplace add kinlab-ai/kin
/plugin install kin@kin
```

For [Codex](plugins/kin-codex/README.md#install), add the marketplace and install the plugin, or let `kin setup --intent agent` write the MCP server into `~/.codex/config.toml` for you.

For Cursor, add the MCP server by hand; see [plugins/kin-cursor](plugins/kin-cursor/README.md#install) for the exact snippet.

After installing, run `kin init .` in a fresh clone of a project you know well; the `kin-setup` skill walks you through the rest.

Kin is not published on crates.io. The `kin` crate there is an unrelated project.

## Quickstart

Start in a fresh, full clone of a project you know well. `kin init` reads your Git history without changing it or your tracked files. It keeps its store outside your checkout, in `~/.kin/stores`, and writes nothing into the repository; `kin store path` prints where a checkout's store is. By default it admits the checked-out commit first, so questions answer as soon as that tree is read, and then imports every commit your branches and tags reach in the background, at low priority; `kin init --history full` imports the whole history up front, and `--history none` never imports it. Importing history takes time, memory and disk that grow with history rather than with the size of the checkout. Before it starts, `kin init` checks memory and free disk and stops with the numbers when it can already tell the machine is short. **A shallow clone admits only its checked-out commit, and submodules and Git LFS are not supported**, and Git hooks, a sparse checkout or an unfinished merge or rebase also stop the import. `kin init` names the fix for each, and a fresh clone avoids most of them.

### 1. Install

On macOS, Linux and WSL2, one command installs Kin and connects the AI coding tools it
finds. It needs Node.js 20 or newer:

```sh
npx -y @kinlab/kin setup
```

On a machine without Node, run the installer instead. `get.kinlab.ai` and `get.kinlab.dev`
serve the same script:

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

Either way, reload your shell as a separate command, because the install puts `kin` in
`~/.kin/bin` and adds that directory to your shell profile for new sessions:

```sh
exec "$SHELL" -l
```

On native Windows x64, install from PowerShell with `irm https://get.kinlab.dev/install.ps1 | iex`.
It installs the `kin` CLI and does not connect AI coding tools, because WSL2 remains the
recommended path on Windows. The Windows entry under [Beta limits](#beta-limits)
says what works there. No native Windows ARM64 build is published. On an ARM64 machine, run
that line from x64 PowerShell to install the x86_64 build under emulation, or use WSL2.
The installer adds `kin` to your user PATH, so open a new PowerShell window in place of
`exec "$SHELL" -l` before the next step.

For other installers or troubleshooting, see the [full quickstart](docs/quickstart.md#1-install).

### 2. Initialize the repository

At the new prompt, clone a repository with Kin:

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

Or initialize one you already have, replacing the path below:

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

Both end with the next command to run, a `kin refs` question about a function in that
repository. They also connect Codex CLI and Grok CLI to it when you allowed that in setup,
because those clients keep one entry that names a repository.

Windows PowerShell 5.1 has no `&&`, so on native Windows run the same commands one at a
time and stop if one fails:

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

`kin overview` shows the entities Kin imported. `kin status` shows what was admitted and the working tree's state against it. `kin graph status` reports the daemon's live query graph and coverage. Uncommitted and untracked changes are not part of the imported Git history; `kin init` reports what it left out.

### 3. Ask a question you can check

Look for something you already know is in the code:

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

Replace `ExactEntityName` below with a symbol from the result:

```sh
kin refs ExactEntityName
kin trace ExactEntityName
kin impact ExactEntityName
```

`refs` returns recorded references, `trace` brings in nearby context, and `impact` explores potential effects through the graph. Check the results against the source.

### 4. Your AI coding tools and semantic search

`kin setup` already asked before connecting the AI coding tools it found, and connected them
if you said yes. There is no separate linking step. After you install another tool, run
`kin setup` again, and `kin setup status` shows what is connected. On Windows, connect AI
tools inside WSL2.

Graph and lexical retrieval work without a model. Embeddings and reranking are optional,
and their model providers default to `none`. Standard CLI and daemon builds include external
HTTP model support. Built-in models require a build with optional local inference enabled.

To build an embedding index using an OpenAI-compatible endpoint you operate:

```sh
KIN_MODEL_EMBEDDINGS_PROVIDER=external \
KIN_MODEL_EMBEDDINGS_BASE_URL=http://localhost:1234/v1 \
KIN_MODEL_EMBEDDINGS_MODEL=your-served-embedding-model kin embed
```

Model endpoints receive the selected entity text needed for their stage.
[Model settings](docs/env-vars.md) describe providers, model identities, and credential environment variable names.

Kin supports Claude Code, Codex, Cursor, Gemini, and other MCP clients. Use `kin setup --intent editor` for VS Code. Kin also includes `kin agent run` for local or hosted OpenAI-compatible model endpoints.

[Client configuration](docs/readme-reference.md#works-with-your-agent) · [MCP tools](docs/mcp-tools.md) · [Built-in agent](docs/cli-reference.md#kin-agent)

Local imports, storage, and graph queries run on your machine. Installing Kin needs network access; the default graph retrieval path needs no model download. When an embedding provider is selected, queries report its vector coverage and any gaps.

## Review a change

After running `kin init` on the Git branch you want to review, compare explicit commit SHAs against `main`:

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

The report returns `PASS`, `NEEDS ATTENTION`, or `WOULD BLOCK`, with graph-derived impact and supporting evidence. **It is advisory:** it does not block a merge or change graph state. Authorship is declared, not independently verified.

## Use Kin with or without Git

Kin has its own commits, branches, merges, diffs, and history, including in repositories with no Git underneath. Existing Git repositories can be imported, and supported workflows can export a new Git repository.

[Native version-control walkthrough](docs/readme-reference.md#version-control-without-git) · [Git interoperability and export limits](docs/readme-reference.md#how-kin-relates-to-git)

## Beta limits

**Coverage is incomplete.** Supported languages are parsed into entities and relationships; other files remain available as content and history. An empty result does not prove there are no callers or dependencies. Keep using your compiler, tests, and review. See [language support](docs/language-support.md).

**Compatibility varies.** Release archives do not include the deprecated `kin-vfs` filesystem projection, so there is no transparent projection to rely on. Check [platform notes](docs/readme-reference.md#platform-and-maturity) for what each platform supports.

**Back up Kin-only state.** Commits, branches, reviews and specs you record with Kin live in the repository's Kin store, not in Git. Deleting the store and re-importing from Git does not recover them, so run `kin backup create` first. `kin store prune` deletes stores only when you pass `--yes`, for the same reason. Read the [import, recovery, and upgrade notes](docs/readme-reference.md#what-is-real-today-and-what-is-beta).

**Windows.** Native Windows x86_64 support is early. Repository admission works: `kin init` imports a Git repository and publishes graph authority, and graph, lexical, and daemon-backed queries answer natively. The end-to-end install proof also runs agent setup on native Windows and gets graph-backed answers from the installed MCP server. Transparent filesystem projection is not shipped on Windows, and review workflows are not yet tested there, so WSL2 remains the recommended path for the full Kin experience.

## Why I built Kin

I kept watching coding agents piece together parts of a codebase we'd already worked through. Then I'd do a version of that work myself to review their changes. I started wondering why more of that structural understanding wasn't part of the repository itself.

That's what I'm building with Kin.

Troy

## Learn more and contribute

[CLI reference](docs/cli-reference.md) · [Architecture and detailed limits](docs/readme-reference.md) · [Contributing](CONTRIBUTING.md) · [Issues](https://github.com/kinlab-ai/kin/issues/new/choose) · [Security](SECURITY.md)

Kin and its local stack, including [kin-db](https://github.com/kinlab-ai/kin-db), are [Apache-2.0](LICENSE). [KinLab](https://kinlab.ai) is the separate proprietary hosted product. Public repository onboarding is still in development.

TDQS

B3.1/5.0

Scored across 22 tools

Disambiguation4/5

Tools cover distinct retrieval modes (lexical, semantic by name vs. meaning, trace flow vs. path, references vs. neighborhood) and descriptions explicitly cross-reference to guide selection. Some overlap remains among graph query tools and between kin_mutate and transaction staging, but boundaries are mostly clear.

Naming Consistency3/5

All names are snake_case, but prefixes and patterns are mixed: kin_* appears on session/transaction/init/mutate/status/provenance tools, while query tools use bare verb_noun or noun_noun forms. The set is readable but not fully consistent.

Tool Count3/5

22 tools is borderline heavy for a code-graph server. The scope spans read queries, write/session/transaction plumbing, provenance, init, and execution, so most tools earn their place, but the count is on the high side.

Completeness4/5

The surface covers graph querying, entity mutation with transaction support, sessions, provenance, initialization, execution, and direct source retrieval. Minor gaps like bulk entity listing or file-level operations exist, but core lifecycle appears complete.

Maintenance

ActivityActive
ResponsivenessUnresponsive