
kin v0.3.6
AI로 작성된 소프트웨어를 위한 의미론적 기록 시스템: 파일 차이가 아닌 엔터티와 관계의 그래프.
AI 에이전트는 팀이 변경이 무엇에 닿는지, 이전 수정을 되돌리는지, 그 영향이 얼마나 멀리 미치는지 파악하기도 전에 변경을 작성할 수 있습니다. Git은 파일과 라인 이력을 기록합니다. Kin은 소프트웨어 자체를 엔티티, 관계, 변경, 출처(provenance)의 그래프로 기록한 다음, 인간과 에이전트에게 질의하고 검토할 수 있는 하나의 시맨틱 권위(semantic authority)를 제공합니다. 변경이 닿는 대상은 병합 전에 드러나며, 에이전트는 저장소를 다시 읽는 대신 정확한 컨텍스트에서 작업합니다.
Kin은 AI가 작성한 소프트웨어를 위한 시맨틱 시스템 오브 레코드입니다. 현재 공개 알파(public alpha) 단계로, 로컬 CLI, 데몬, MCP 서버, 리뷰 인터페이스, 그래프 기반 파일시스템 프로젝션으로 오늘 바로 사용할 수 있습니다. 1.0 이전 버전이므로 거친 부분과 파괴적 변경(breaking changes)이 있을 수 있습니다. 중요한 워크플로에 도입하기 전에 최신 안정 릴리스와 현재 제약 사항을 확인하세요.
실제 저장소에서 확인하기
ripgrep의 한 줄 서명(signature) 변경은 diff에서 무해해 보입니다. 컴파일러가 실행되기 전에 kin impact로 질의하면, 그 편집이 도달하는 대상을 명명합니다. 변경된 서명의 호출자(caller)가 먼저 나오고, 그 다음에는 해당 호출자들이 뒤에서 끌어오는 모든 것이 나옵니다.
ripgrep 커밋 e89fff89ac9af12e8d4ce9d5fd07beb408ca730f에서 준비된 그래프를 대상으로 기록되었습니다. 변경된 서명의 직접 호출자 3개를 포함하여 3홉 내에서 13개의 영향을 받는 엔티티가 있습니다. 그래프는 사전에 구축되었습니다. 컴파일러는 실행되지 않았습니다. 정확한 명령: kinlab.ai/proof. 원시 실행 디렉터리는 아직 공개되지 않았으므로, 이것은 감사할 수 있는 추적(trace)이 아니라 다시 실행할 수 있는 레시피입니다.
Kin은 변경 사항이 닿는 대상을 표면화합니다. 변경이 올바른지 여부는 컴파일러, 테스트, 리뷰의 몫으로 남습니다. 그래프는 kin init이 사전에 구축하며, 그래프 구축이 가장 비용이 많이 드는 부분입니다. 그 이후에는 영향(impact) 질문이 트리를 다시 읽는 것이 아니라 그래프 진실(graph truth)에서 답변됩니다.
스택
Kin은 몇 가지 명확한 공개 표면(surface)을 가진 하나의 시스템입니다:
| 표면(Surface) | 기능 |
|---|---|
| kin | 시맨틱 시스템 오브 레코드: CLI, 데몬, 그래프 수명주기, MCP, 리뷰, 출처(provenance), Git 공존. |
| kin-vfs | 그래프가 소유한 파일을 일반 파일시스템 호출을 통해 투영(project)하여 기존 도구가 계속 파일을 사용할 수 있게 합니다. |
| kin-editor | 엔티티 탐색기, 시맨틱 검색, 추적(trace), 리뷰, 이름 변경 표면에 대한 VS Code 접근. |
| Kin MCP | AI 에이전트용 타입 기반 그래프 도구로, kin에 번들되어 kin mcp start로 실행됩니다. |
| KinLab | 호스팅형 협업 및 컨트롤 플레인. 공개 저장소 연결은 아직 최초 실행(first-run) 흐름이 아닙니다. |
각 구성 요소가 맞물리는 방식
Kin은 AI가 작성한 소프트웨어를 위한 시맨틱 시스템 오브 레코드이며, 아래 지도의 모든 것은 그 권위에 도달하거나 이를 지원합니다. 인간과 AI 에이전트는 CLI, 번들된 MCP 서버, 또는 VS Code 확장을 통해 들어옵니다. 세 경로 모두 동일한 데몬에 질문하며, 데몬은 트리를 다시 읽는 대신 그래프 권위에서 답합니다. kin-vfs는 동일한 그래프를 일반 파일시스템 호출을 통해 다시 투영하므로 편집기, 컴파일러, 빌드 시스템은 계속 파일을 볼 수 있습니다. Git은 답변 경로가 아니라 가져오기/내보내기 경계로서 그래프 옆에 있으며, KinLab은 동일한 권위 위에 있는 호스팅 계층입니다.
flowchart TD
people["Humans and AI agents"]
subgraph surfaces["Access surfaces"]
cli["kin CLI"]
mcp["Kin MCP server"]
editor["kin-editor for VS Code"]
end
daemon["kin daemon"]
authority["Graph authority<br/>entities, relations, changes, provenance"]
db["kin-db<br/>graph storage, snapshots,<br/>index, text and vector search"]
prims["kin-model, kin-blobs, kin-search,<br/>kin-vector, kin-infer, kin-lsp"]
vfs["kin-vfs<br/>transparent file projection"]
tools["Editors, compilers, build systems"]
git["Git<br/>import and export boundary"]
kinlab["KinLab<br/>hosted collaboration and control plane"]
people --> cli
people --> mcp
people --> editor
cli --> daemon
mcp --> daemon
editor --> daemon
daemon --> authority
authority --> db
db --> prims
authority <-->|"kin init imports, kin git export"| git
authority -->|"publish and sync"| kinlab
authority --> vfs
vfs --> tools
이러한 표면 아래에는 시스템이 구축된 계층들이 있습니다:
| 계층(Layer) | 역할 |
|---|---|
| kin-db | 그래프 저장소, 스냅샷, 인덱싱, 텍스트 검색, 벡터 검색. |
| kin-model | 스택 전반에서 공유되는 표준 타입과 도메인 모델. |
| kin-blobs | 콘텐츠 주소 지정 가능(Content-addressable) 블롭 저장소. |
| kin-search | 어휘(lexical) 검색 프리미티브와 단계별 검색(staged retrieval). |
| kin-vector | 벡터 및 최근접 이웃(nearest-neighbor) 기반. |
| kin-infer | 추론(inference) 및 임베딩 기반. |
| kin-lsp | 시맨틱 계층에 공급되는 언어 서버 강화(language-server enrichment). |
이들은 새 사용자가 조립해야 하는 별도의 제품이 아니라, 하나의 시스템의 구현 계층입니다. 어느 것도 별도로 설치되지 않습니다.
오픈 소스와 Kin 생태계
Kin의 핵심은 Apache-2.0 라이선스로 공개된 오픈 소스입니다: kin, kin-db, kin-vfs, kin-editor, 그리고 지원 라이브러리인 kin-model, kin-blobs, kin-search, kin-vector, kin-infer, kin-lsp, kin-actions까지 포함합니다.
KinLab은 이 오픈 코어 위에 구축된 독점(proprietary) 제품으로, 앞서 설명한 호스팅형 협업 및 컨트롤 플레인 계층입니다.
동일한 경계가 벤치마크 작업의 공유 방식에도 적용됩니다. 벤치마크 사양과 독립형, 무의존성 번들 검증기(bundle verifier)는 공개되어 있어, 이를 생성한 시스템에 접근하지 않고도 주장(claim)을 검증할 수 있습니다. 봉인된 증거 번들(sealed evidence bundles)을 생성하는 러너와 증명 인프라(오케스트레이션, 고정 릴리스 증명 게이트, 호스팅 측정 환경)는 현재 비공개로 유지됩니다. 사양과 검증기가 먼저 공개되고, 러너는 나중에 공개될 수 있습니다.
가장 짧은 그래프 기반 경로
1. Kin 설치 및 구성
macOS 또는 Linux에서:
curl -fsSL https://get.kinlab.dev/install | sh
exec "$SHELL" -l
kin setup --intent agent
설치 프로그램은 최신 안정 릴리스를 확인하고, 공개된 SHA-256 체크섬을 검증한 뒤 관리형 바이너리를 ~/.kin 아래에 설치하고 셋업을 실행합니다. 명시적 agent 의도(intent)를 실행하면 감지된 지원 클라이언트에 대해 내장 MCP 서버가 구성됩니다. MCP 구성 없이 CLI 및 파일시스템 용도로는 --intent local을, VS Code 경로에는 --intent editor를 사용하세요.
셋업이 관리하는 통합 항목만 제거하려면 kin setup uninstall을 실행하세요. 기본 관리형 루트(~/.kin)의 경우, kin setup uninstall --all은 모든 Kin 데몬을 중지하고, 기존 레거시 설치 프로그램 PATH 블록을 정확히 제거하며, 관리형 설치 디렉터리를 재귀적으로 삭제합니다(--dry-run으로 미리 볼 수 있습니다). 사용자 정의 KIN_HOME은 재귀적으로 제거되지 않습니다: 먼저 원장 범위(ledger-scoped) 제거를 실행한 다음, 해당 디렉터리를 검토하고 명시적으로 제거하세요. 수정된 셋업 소유 조각(slice)은 --force를 추가하지 않으면 전체 제거를 차단하므로, 제거는 사용자가 편집한 클라이언트 또는 셸 구성을 조용히 덮어쓰지 않습니다. Windows에서 CLI는 실행 중인 프로세스가 종료된 직후 잠긴 설치 디렉터리를 삭제하도록 예약합니다. Windows는 의도적으로 현재 사용자 전용의 비활성(inert) 동료 권한 사이드카(sibling authority sidecar) 하나를 유지합니다. 이 잠금 식별자를 안정적으로 유지하면 충돌 또는 동시에 발생하는 향후 설치가 두 개의 독립적인 변경 권한(mutation authority)을 생성하는 것을 방지합니다. CLI와 JSON 결과는 잔여 바이트가 0이라고 주장하는 대신, 이 유지되는 조정 메타데이터를 공개합니다.
수동 설치의 경우 각 아카이브와 해당 .sha256 파일은 https://github.com/firelock-ai/kin/releases/latest/download/ 아래에 게시됩니다. 변경되는 에셋 이름은 kin-macos-aarch64, kin-macos-x86_64, kin-linux-aarch64, kin-linux-x86_64, kin-windows-x86_64입니다. 최신 릴리스 페이지에 표시된 Unix .tar.gz 또는 Windows .zip 접미사를 사용하세요.
npm 진입점은 동일한 공개 릴리스 채널을 사용합니다:
npm install -g @kinlab/kin@latest
Homebrew tap도 동일한 릴리스 채널을 추적합니다:
brew install firelock-ai/kin/kin
이 tap의 formula는 수동으로 유지되지 않고 생성됩니다. 버전과 플랫폼별 SHA-256은 tap 저장소의 update-formula.yml이 각 Kin 릴리스에서 다시 생성하며, 릴리스 자체가 보내는 디스패치(dispatch)에 따라 실행되고, 놓친 경우를 자가 복구하는 6시간 주기의 조정(reconcile)이 있습니다. 이것이 Homebrew가 검증하는 체크섬이 별도로 관리되는 사본이 아니라 아카이브 옆에 게시된 것과 동일한 이유입니다. 모든 설치 경로에서 그렇듯 kin --version으로 설치된 것을 확인하세요.
Windows에서는 PowerShell에서 irm https://get.kinlab.dev/install.ps1 | iex를 실행하세요. 네이티브 Windows x86_64 지원은 초기 단계입니다. 저장소 승인(admission)은 작동합니다: kin init은 Git 저장소를 가져와 그래프 권위를 게시하며, 그래프, 어휘, 데몬 기반 질의가 네이티브로 응답합니다. 투명한 파일시스템 프로젝션은 Windows에서 제공되지 않으며, 엔드투엔드 설치 증명이 아직 MCP 또는 리뷰 워크플로를 다루지 않으므로, 전체 Kin 경험을 위해서는 WSL2가 권장 경로로 남아 있습니다. Windows 설치 경로를 선택하기 전에 아래의 플랫폼 및 성숙도를 읽으세요.
2. 기존 저장소를 그래프 진실로 승인하기
cd /path/to/your/repository
kin init .
감지된 Git 저장소에서 kin init은 도달 가능한 전체 이력, refs, 원시 객체, 정확한 작업 트리, 승인 정책을 repository-v6 그래프 권위에 원자적으로(atomically) 승인합니다. 커밋되지 않은 편집, 스테이징된 변경, 또는 추적되지 않는 파일이 있는 작업 트리도 승인됩니다: kin init은 커밋된 상태를 승인하고 승인하지 않은 사항을 공개합니다. 정확한 HEAD 스냅샷이나 원시 파일시스템 시맨틱 재구축을 대신 사용하지 않습니다. 지원되는 저장소 로컬 원격 URL, refspec, 브랜치 추적, 푸시 기본값은 Kin의 Git 공존 구성에 봉인됩니다. 안전하지 않거나, 모호하거나, 지원되지 않는 전송 설정은 게시 전에 실패 시 폐쇄(fail closed)됩니다.
승인은 또한 해당 이력의 모든 지원되는 엔티티 소스 파일에 대해 시맨틱 엔티티 및 관계 계층을 파생하며, kin init은 커밋된 지속적이고 세대에 고정된(generation-bound) 개수를 보고합니다. kin status는 저장소 권위 뷰를 보고하고, kin graph status는 데몬의 변경 가능한 라이브 쿼리 그래프를 별도로 보고하며, 여기에는 이후 파생된 강화(enrichment)가 포함될 수 있습니다. 쿼리 표면은 그래프가 소유한 강화가 존재하면 이를 사용하고, 부재 시에는 그 공백을 원시 파일 검색 뒤에 숨기는 대신 부재를 보고합니다.
어떤 파일이 엔티티가 되는가
"지원되는 엔티티 소스 파일"이란 Kin의 언어 어댑터 중 하나가 소유권을 주장하는 파일을 의미합니다. 어댑터 레지스트리가 전체 집합이며, 저장소의 모든 파일은 이를 통해 결정됩니다:
| 언어 | 확장자 |
|---|---|
| TypeScript | .ts, .tsx |
| JavaScript | .js, .jsx, .mjs, .cjs |
| Python | .py, .pyi |
| Go | .go |
| Java | .java |
| Rust | .rs |
| C | .c, .h |
| C++ | .cpp, .hpp, .cc, .cxx |
| C# | .cs |
| Ruby | .rb |
| PHP | .php |
| Swift | .swift |
| Kotlin | .kt, .kts |
| HCL / Terraform | .tf, .tfvars |
.h 헤더는 내용이 C++임을 나타내면 C++로 읽히므로, C++ 프로젝트가 C 문법 때문에 네임스페이스와 템플릿을 잃지 않습니다.
그 외 모든 것은 콘텐츠로 승인되어 이력과 텍스트로는 질의 가능하게 유지되지만, 엔티티와 관계로 파싱되지는 않습니다. 여기에는 Markdown, HTML과 CSS, SQL, YAML, JSON과 TOML, 셸 스크립트, Objective-C, Scala, Elixir, Dart, Lua, R, Zig, Haskell, Nix가 포함됩니다. 사용자의 언어가 이 목록에 있다면, locate와 refs는 해당 언어에서 심볼을 찾지 못합니다.
3. 그래프에 실제 질문하기
kin locate "where are webhook retries handled"
kin refs ExactEntityName
kin trace ExactEntityName
ExactEntityName을 locate가 반환한 심볼로 바꾸세요. locate는 의도(intent)와 관련된 엔티티를 찾고, refs는 그래프가 소유한 호출자/임포터와 참조를 보여주며, trace는 초점 엔티티와 주변 시맨틱 컨텍스트를 반환합니다. 임베딩이 완료되면 구성된 AI 에이전트가 벡터 기반 semantic_locate 도구를 사용할 수 있습니다. get_context_pack, find_references, trace_data_flow는 그래프 주변부를 직접 노출합니다.
승인은 시맨틱 엔티티를 파생하지 벡터는 파생하지 않습니다. kin embed를 실행하여 엔티티에 로컬 벡터 유사도를 추가하고, kin graph status로 적용 범위를 확인하세요.
AI가 작성한 변경 검토
AI가 코드를 작성합니다. Kin이 무엇이 변경되었는지 증명합니다.
검토하려는 브랜치에서 kin init을 실행하여 관련 Git 이력이 그래프에 들어가게 한 다음, 명시적 커밋 SHA를 보고 전용(report-only) 섀도 게이트에 전달하세요:
kin review shadow "$(git rev-parse main)..$(git rev-parse HEAD)"
결과는 PASS, NEEDS ATTENTION, 또는 WOULD BLOCK이며, Kin이 그래프에서 파생한 영향, 이를 수리하는 데 필요한 컨텍스트, 그리고 둘 다의 근거가 함께 제공됩니다. 작성자(authorship)는 선언되며 검증되지는 않습니다. 이 명령은 병합을 차단하거나 그래프 상태를 변경하지 않습니다. 증거를 사람이나 CI 정책에 넘기고 거기서 멈춥니다.
Kin과 Git의 관계
오늘날에는 Git 옆에 있습니다. 시간이 지나면 저장소 권위가 됩니다. 브라운필드(brownfield) 도입 기간 동안 Git은 명시적인 가져오기/내보내기 상호운용 경계로 남습니다. Git은 Kin 런타임 질의에 답하거나 누락된 그래프 진실을 수리하지 않습니다.
kin init은 도달 가능한 전체 Git 이력과 정확한 부모 엣지(parent edges)를 가져옵니다. Kin은 의도적으로 부분 이력 또는 스냅샷 전용 초기화 모드가 없습니다.- 가져온 후에는 Kin의 그래프가 저장소 식별자, 트리 상태, 이력, refs, 시맨틱 관계를 소유합니다. 파일시스템 및 Git 뷰는 프로젝션입니다.
kin git export --output ../repo.git은 하나의 그래프 소유 권위 세대에서 새 베어(bare) Git 프로젝션을 작성합니다. 작업 파일이나 주변.git/객체 저장소를 참조하지 않으며, 기존 또는 저장소 내부 대상(destination)을 거부합니다. 객체, refs, 디렉터리는 교체 금지(no-replace) 대상 게시가 확인되기 전에 플러시됩니다. capability 기반(capability-anchored) 게시는 현재 Unix 호스트에서 사용할 수 있으며, 다른 호스트는 내보내기를 생성하기 전에 거부합니다.
이를 통해 팀은 Kin이 권위를 가지게 되는 동안에도 편집기, 컴파일러, 빌드 시스템, Git 상호운용성을 포기하지 않고 기존 저장소를 마이그레이션할 수 있습니다.
플랫폼 및 성숙도
핵심 런타임과 파일시스템 프로젝션은 서로 다른 지원 경계를 가집니다:
| 플랫폼 | 코어 Kin 런타임 | kin-vfs 프로젝션 |
|---|---|---|
| macOS, Apple Silicon 및 Intel | 네이티브 그래프, 벡터, 데몬, 셋업, MCP, 리뷰 표면이 릴리스 아카이브에 포함됩니다. | 두 아키텍처 모두에서 제공되고 테스트됩니다. DYLD_INSERT_LIBRARIES를 사용합니다. SIP 보호 또는 하드닝된 프로그램은 주입을 거부할 수 있습니다. |
| Linux x86_64 및 arm64 | kin과 kin-daemon은 glibc 및 musl 배포판에서 실행되도록 설계된 정적 musl 빌드입니다. | 공개 VFS 실행 파일과 shim은 musl 빌드가 아닌 GNU/glibc 빌드입니다. 현재 아티팩트는 glibc 2.39가 필요합니다. Alpine/musl 및 이전 glibc 배포판은 프로젝션 호스트로 지원되지 않습니다. arm64 릴리스 증명은 Ubuntu 24.04에서 실행됩니다. |
| 네이티브 Windows x86_64 | 초기 지원: 저장소가 승인되고 그래프 및 어휘 질의가 네이티브로 응답하지만, MCP 및 리뷰 워크플로는 아직 설치 증명으로 엔드투엔드가 보장되지 않습니다. 전체 Kin에는 WSL2가 권장 경로로 남아 있습니다. | 제공되지 않습니다. 프로젝션을 위해 glibc 경계를 충족하는 Linux 배포판과 함께 WSL2를 사용하세요. |
최초 인덱싱은 도달 가능한 전체 Git 이력을 읽으므로, 크거나 오래된 저장소에서는 임베딩이 시작되기 전에 kin init이 몇 초가 아니라 몇 분이 걸립니다. init이 반환된 후에도 데몬은 백그라운드에서 계속 준비하며, 큰 저장소에서는 첫 번째 에이전트 호출에 대한 응답이 눈에 띄게 더 오래 걸릴 수 있습니다.
제한된 arm64 테스트에서 핵심 그래프 및 어휘 경로는 512MB에서 사용 가능한 것으로 확인되었지만, 전체 임베딩은 약 522MB 모델을 다운로드하며 현재 안전한 운영 하한으로 2GB가 필요합니다. 1GB는 안전하지 않은 경계이고 512MB는 임베딩 중에 종료될 수 있습니다. 이는 관찰된 알파 제약 조건이지 보편적인 용량 약속이 아닙니다.
kin --version이 성공하는 것은 코어 바이너리가 실행된다는 것만 확인합니다. VFS 호환성이나 실제 그래프 기반 프로젝션이 작동한다는 것은 확인하지 않습니다. 지원되는 Unix 호스트에서는 kin setup status, kin-vfs status --workspace ., 그리고 실제 kin-vfs exec --workspace . -- <command> 실행을 사용하세요. VFS 런처에는 중간 삽입(interposition) 카나리(canary)가 포함되어 있으며 운영 체제가 shim을 제거할 때 이를 보고합니다. kin-vfs README에 전체 경계가 나와 있습니다.
릴리스 에셋은 체크섬과 함께 게시되며, 릴리스 워크플로는 지원되는 러너 매트릭스 전반에서 익명 설치, 데몬/MCP, 임베딩, 실제 그래프 기반 VFS 프로젝션 검사를 실행합니다. 워크플로 자체는 공개되어 있습니다: Install Proof. 녹색(green) 릴리스는 정확히 해당 아티팩트와 환경을 입증하며, 모든 배포판, 도구, 저장소 형태가 이미 지원된다는 주장은 아닙니다.
증명 태세
게시된 사전 등록(preregistered) Multi-SWE-Bench Go 증명 패키지는 이동하는 최신 릴리스가 아닌 이전 빌드에 고정되어 있으며, 광범위한 속도, 토큰 절감, 또는 카테고리 우승 주장을 입증하지 않습니다. 비교 결과는 독립 검증이 완료될 때까지 여기서 보류됩니다.
공개 증명 패키지에서 방법론, 작업 집합, 빌드 식별자, 아티팩트를 읽으세요. 측정 범위 밖의 주장은 고유한 재현 가능한 증명이 생길 때까지 가설로 취급하세요.
학습 및 기여
- 빠른 시작 및 고급 구성
- 저장소 크기와 그 결정 요인
- MCP 도구 참조
- 언어 지원 및 각 계층이 추출하는 내용
- 환경 변수 참조
- 그래프 우선 논제
- 쓰기 권한 모델과 그 전환 상태
- GitHub 토론
- 버그 보고 및 기능 요청
- 기여 가이드
- 비공개 보안 신고
라이선스
스스로를 기억하는 소프트웨어.