Skip to main content

Understand Kin

How Kin keeps code connected.

Kin keeps code, the connections it finds and their change history together. People and AI can inspect that record while supported tools still work with familiar files. Explore the parts below.

How this works in Kin

Kin stores source, code entities, relationships and versioned history as repository state. Its native operations work on that record, while the CLI, MCP server and supported filesystem projections provide different ways to use it. The graph is the repository model, not a search index maintained beside another repository.

What each part owns

Explore the components
  • The graph

    Repository identity, tree state, history, refs and semantic relations, once kin init has imported the reachable Git history. Filesystem and Git views are projections of it.

  • The daemon

    Holds the graph for a repository and answers queries. It discovers language servers once at startup, enriches the graph with resolved edges where one is wired, and runs embedding in the background under its own memory allowance.

  • The CLI

    One caller of the daemon. kin locate, kin refs, kin trace and kin impact ask it questions; kin commit, kin branch, kin merge, kin blame and kin stash change and read the ledger; kin doctor grades the install.

  • The MCP server

    The same graph, exposed to any agent client that reads a standard MCP config. kin setup writes the entry; kin mcp start serves it.

  • Kin's own agent

    kin agent run drives any OpenAI-compatible endpoint over that same MCP server, with Kin's tools plus edit_file and write_file and nothing else.

  • The filesystem projection

    kin-vfs serves graph content as ordinary files so compilers, editors and shells need no change. Four modes: an injected shim, an NFS mount, a FUSE mount and Windows ProjFS.

  • The Git export

    kin git export writes a new bare Git repository from one generation of the graph. It reads no working files and no ambient .git store.

  • KinLab

    The hosted product for teams, in development. It is a separate product over the same model and is not part of the local release claim.

History, and what a checkpoint misses

Compare history and checkpoints

Some coding tools save a checkpoint of your working files on a timer, so you can roll back to any minute of the afternoon. That is useful, and Kin does not replace it. A checkpoint restores text. It cannot tell you which other code uses the piece you just changed, because it never recorded that.

Kin records history per entity rather than per file, and it records semantic changes rather than snapshots, so a change carries what it did to the graph: which entities were added or modified, how a signature moved, which relations appeared. That is what makes kin history answer about a function and kin blame answer with the signature at each revision. It is also why a change committed with Git alone does not appear in either: Kin history is built from semantic changes, and a Git commit does not create one.

Run both. A checkpoint tool and Kin answer different questions, and neither one covers for the other. The history page walks the recording path end to end.

Follow a recorded change

Kin works beside Git

Read the Git compatibility details

Admission reads a Git repository and builds Kin authority from it, keeping the origin of every change, and Git keeps working the whole time: recording a change in Kin does not move Git, and export writes a new Git repository back out from graph truth. That is a coexistence path today rather than a replacement, which is what kin capabilities says about itself.

The Git page walks that path with the commands run and the output they printed, including what git status and git log report while Kin holds a change.

Try Kin alongside Git

Familiar files for other tools

Supported tools can read a file view of code held by Kin. The details below explain that boundary and include an illustration of the read path.

Explore the filesystem projection and diagram

Compilers, linters and editors expect a raw filesystem; none of them know what a code graph is. Rather than write a FUSE mount driver, kin-vfs's default mode achieves transparent filesystem projection through dynamic library interposition: a shim injected with LD_PRELOAD on Linux or DYLD_INSERT_LIBRARIES on macOS intercepts low-level libc calls such as open(), openat() and read().

No raw file search in Kin's answer path

Reads through the shim resolve from AST nodes and slices in the graph. Kin never answers a repository question by grepping your files.

Transparent daemon routing

The shim intercepts the file read path, routes the query to the local running kin-daemon over a Unix domain socket, and materializes a semantic view of the file.

Transparent local disk fallback

A path outside Kin's database boundaries, such as node_modules or a compiler configuration file, bypasses interception and falls back directly to the local disk.

IllustrationHow interception works

Compiler / IDErequests open()libc Interceptorlibkin_vfs_shimkin-daemonlocal processPhysical diskraw file fallbackSemantic graphkin-db
Worked example

How a read travels through the shim

Click any node above to read its role in the projection path. A worked example, not live data.

Exercised system capabilities

Read which workflows the tests cover

Kin's test suites and benchmarks evaluate core repository subsystems through reproducible runs:

  • The native CLI and daemon on new projects, imported Git repositories, and complete version-control sessions.
  • Model Context Protocol (MCP) tool integration: connecting AI coding agents to graph status, references, and focused context queries.
  • Native branching, merging, conflict resolution, multiple undo tiers, and semantic history inspection.
  • Git export integrity: full tree export where working-tree files match their exported copy by SHA-256 across multiple independent runs.
  • Local network transport: HTTP-based clone, push and pull between distinct repositories, preserving history and file contents byte for byte.

Active engineering boundaries

Kin makes explicit what is supported in current public alpha releases and what remains in active development:

  • Filesystem projection (kin-vfs). The interceptor library ships in Linux and macOS release archives. Evaluation tooling primarily targets direct CLI and MCP surfaces while kernel and shim integrations progress through developer preview.
  • Multi-user hosted collaboration. Local clone, push and pull protocols operate over HTTP. Hosted team permissions and shared repository state belong to KinLab, which is in development.
  • Native Windows filesystem projection and large-scale monorepos. POSIX platforms (Linux and macOS) are the tier 1 targets for the public alpha. Windows ProjFS support and monorepo scaling are scheduled milestones.
  • Hosted KinLab platform. Evaluation scope, team governance, and hosted services are developed in collaboration with design partners.

See it on your own machine

Every part above reports on itself. kin doctor grades the binary, the daemon, the repository, the projection and every detected client; kin graph status reports what the graph holds and how much of it is indexed; kin capabilities says which command surfaces are ready and which are bounded. Those three were run on Kin v0.7.6 on 2026-09-09 for the pages in this section. Current release: v0.7.19.

Open source and licensing

Kin's core repository engine is open source on GitHub at firelock-ai/kin. The repository format, the CLI, the daemon, the MCP server, and the core libraries under the kin workspace are published under Apache-2.0. Supporting packages, including the virtual filesystem shim and language server boundaries, are open under MIT and Apache-2.0.

Local Kin

Open source repo format, CLI, daemon, MCP server, and projections run entirely on your local machine with zero network dependencies.

Hosted KinLab

Proprietary hosted team service in active development, providing shared organizational memory and governance.

Next action

Open the component you care about.

The repository map carries each part as its own page with its boundary and its source, and most of them are public under Apache-2.0.

The repository map