AI changed who writes code.
Kin changes what they build on.
kin-editor brings Kin's graph into Visual Studio Code: entity explorer,
natural-language semantic search, trace, go-to-definition, graph-backed review,
and semantic rename, with live daemon and graph health in the status bar.
The extension does not implement a second index. It delegates queries to the
local Kin runtime over MCP and falls back to the kin CLI when that connection
is unavailable. Start with Kin, a
graph-native code repository for people and AI agents.
On macOS or Linux:
curl -fsSL https://get.kinlab.dev/install | sh
exec "$SHELL" -l
cd /path/to/your/repository
kin init .
kin setup --intent editor
kin statuskin init is the slow step and the one everything else rests on. It admits your
Git history into the graph, and every panel in this extension reads that graph
rather than the files on disk. Run it before kin setup so setup has a
repository to check.
Natural-language semantic search additionally needs vectors, which admission
does not build. Add them with kin embed. The first run on a machine downloads
about 523 MB of embedding model before anything is indexed, so it is worth
starting deliberately rather than in the middle of the install. The entity
explorer, trace, and name search all answer before that finishes, and
kin status reports embedding coverage so you can see where it is.
Use the Kin quickstart for Homebrew, npm, Windows, installer options, and platform limitations.
Install from the VS Code Marketplace,
search for extension ID firelock.kin-editor, or run:
code --install-extension firelock.kin-editorThe same published extension is available from the Open VSX Registry. Open VSX is a distribution channel, not a claim that every editor fork is a supported client. The documented and tested editor surface here is Visual Studio Code 1.85 or newer.
To build a local VSIX from source:
npm install
npm run package:vsix
# In VS Code, run: Extensions: Install from VSIX...- Open the initialized repository in VS Code and reload the window after the
first
kin init. - Open the Command Palette and run Kin: Setup Workspace. The panel checks
the real
kin setup statushealth report rather than fabricating editor-only readiness. - Run Kin: Semantic Search (
Cmd+Shift+K Son macOS orCtrl+Shift+K Selsewhere). - Enter a question such as
where are webhook retries handledand choose a graph entity from the result picker. - Put the cursor on a returned symbol and run Kin: Trace Entity to inspect its related and calling entities.
Semantic Search calls Kin's semantic_locate MCP tool when the persistent MCP
connection is healthy. Its CLI fallback is graph-backed name-pattern search,
not equivalent vector/natural-language retrieval. The status surface labels the
active path as MCP or CLI, and the extension never searches files on its own.
- Graph Browser: the graph's entities grouped by namespace and kind, listed by name rather than by folder. An entity whose graph name carries no namespace is grouped under a row that says so instead of being filed under a directory.
- Entity documents (
kin://): open an entity and read its body as the graph serves it, with its kind and name in the tab and its signature, provenance and relations in the hover. Read-only for now, and the refusal to save says why. Nothing here reads a file: when the graph cannot answer, the viewer says which part could not rather than showing bytes the graph never served. - Graph diagnostics: what the daemon disclosed about the answer, on the
entity you are looking at. Degraded producers, a partial answer, call sites the
parser saw and the linker resolved into nothing, pending embeddings and the
standing fact that enrichment completion is never attested.
Set
kin.entityViewertofalsefor the older file-first Entity Explorer, which opens the projected file instead. - Semantic Search (
Cmd/Ctrl+Shift+K S): natural-language retrieval throughsemantic_locate, with results in a navigable picker. Workspace symbol search (Cmd/Ctrl+T) uses Kin's name-pattern graph search. - Trace (
Cmd/Ctrl+Shift+K T): focal entity and nearby semantic context. The same graph data supports go-to-definition (F12) and hover, which both need the MCP connection. See the runtime notes below. - Graph Overview (
Cmd/Ctrl+Shift+K O): entity count for the active workspace, plus edge, file, and entity-kind counts when the daemon reports them. States the graph can be in, such as unreachable or still indexing, are named rather than shown as zeros. - Review (
Cmd/Ctrl+Shift+K V): report-only Kin review surfaced as gutter decorations, diagnostics, and theKin Reviewoutput channel. - Rename (
F2): a Kin rename plan for the selected entity and its graph references. - Status Bar: indexed entity count, or an honest
not initializedorunavailablestate. Click it for the overview.Kin: Show Statusis what reports the active MCP or CLI path and the graph state. - Multi-root workspaces: commands resolve the active file's owning workspace before selecting its Kin client. The entity explorer and the status bar follow the first Kin-initialized folder in the workspace.
With kin.mcpEnabled at its default, the extension launches kin mcp start on
activation for each initialized workspace. That process starts or reuses the
repository daemon; there is no separate daemon-start step. Turning the setting
off runs one kin CLI subprocess per command instead, and either path needs the
local kin binary. If no workspace contains .kin/, every Kin command
still appears and guides the user to Kin: Initialize Repository or
Kin: Setup Workspace.
| Setting | Default | Purpose |
|---|---|---|
kin.binaryPath |
auto-detect | Absolute kin binary path. Empty checks ~/.kin/bin/kin and PATH. |
kin.mcpEnabled |
true |
Keep a persistent MCP connection; disable to use one CLI subprocess per command. |
Hover and go-to-definition are the exception to that fallback. They fire on
every word the cursor touches, so they run only over the MCP connection rather
than spawning a subprocess per lookup. With kin.mcpEnabled off, or before the
connection comes up, they return nothing and stay quiet. Search, trace,
overview, status, review, and rename all keep working over the CLI.
When neither path answers, the status bar reads Kin: unavailable and
Kin: Show Status says the runtime could not be reached. Neither surface
reports an unreachable daemon as an uninitialized repository.
The extension requires the local Kin CLI and daemon. It does not require a hosted KinLab login, and it does not make the still-upcoming hosted repository connection flow available early.
| Surface | Role |
|---|---|
| kin | Semantic system of record, CLI, daemon, MCP, review, and provenance |
| kin-vfs | Transparent graph-backed filesystem projection |
| kin-db | Graph storage, indexing, and retrieval substrate |
| KinLab | Hosted collaboration and control plane |
