memory.wiki는 어떤 AI도 읽을 수 있는 개인 지식 wiki입니다. 이 페이지는 URL 계약, retrieval API, llms.txt 매니페스트, bundle digest를 문서화합니다 — memory.wiki 레퍼런스 구현이 오늘 ship하는 같은 primitives. 다른 도구도 이 스펙을 구현해서 플랫폼 lock-in 없이 interop 가능합니다.
모든 AI 개발 도구 — Claude Code, Cursor, Codex, Gemini CLI, Windsurf, Aider — 가 프로젝트별 컨텍스트를 원합니다. 오늘 사용자는 CLAUDE.md / AGENTS.md / .cursor/rules에 그 컨텍스트를 손으로 큐레이션하고, 한 주 안에 stale해집니다. memory.wiki는 큐레이션 단계를 AI-readable URL로 대체합니다 — 한 사람의 지식 그래프를 구조화한 표현을 반환. 이 스펙을 따르는 어떤 도구든 같은 payload를 fetch해서 동기화 유지 가능.
스펙은 의도적으로 미니멀합니다. 콘텐츠는 마크다운, 주소는 URL, 토큰-경제 노브는 쿼리 파라미터. 특수 스키마 없음, SDK lock-in 없음. 이건 의도된 것 — 스펙이 adoption을 얻는 유일한 방법은 구현 비용이 싼 것.
01
URL 계약
세 가지 스코프, 각각 주소 지정 가능, 각각 AI-readable.
memory.wiki/{id} — 단일 문서. 토큰 비용 최소; 한 노트, 한 결정.
memory.wiki/b/{id} — 큐레이션된 문서 묶음 + 사전 계산된 그래프 분석 (themes, insights, concept relations). 프로젝트 레벨 도구 설정의 권장 스코프.
memory.wiki/@{user} — 전체 hub. 넓은 컨텍스트, hub-wide concept index 포함. 사용 자제.
02
Raw 마크다운 변형
모든 공개 URL은 /raw/...에서 clean-markdown sibling을 제공:
http
GET /raw/{docId}
GET /raw/b/{bundleId}
GET /raw/hub/{slug}
GET /raw/hub/{slug}/c/{concept}
응답은 text/markdown, UTF-8. Frontmatter(YAML)는 AI가 attribute하고 재사용하는 데 필요한 정보를 담음 — title, canonical URL, updated ISO, source, 그리고 추출된 tags + concept/relation 카운트:
{"hub":{"slug":"you","display_name":"..."},"results":[{"id":"abc123","title":"React hooks crash course","url":"https://memory.wiki/abc123","snippet":"...react hooks let you...","distance":0.13,"updated_at":"2026-04-10T..."}]}
k 최대 20. distance는 cosine — 낮을수록 관련성 높음. level=chunk는 paragraph 레벨 매치 + doc id + heading path. level=bundle은 번들 title + description 대상.
07
Concept index
Hub-wide concept index는 손으로 박는 카테고리/태그의 AI 시대 대체. Bundle 분석 파이프라인이 incremental하게 구축 — Analyze 실행마다 LLM이 그 번들의 docs에서 추출한 concept upsert.
공개 surface:
http
GET /hub/{slug}/c/{concept} # 렌더된 컨셉 페이지 (HTML)
GET /raw/hub/{slug}/c/{concept} # 같은 내용, raw 마크다운
컨셉 페이지 반환: canonical label, description, source documents, neighbour concepts. Neighbours는 concept_relations의 타입 엣지 (supports / elaborates / contradicts / exemplifies / contains)에서. 번들 캔버스가 쓰는 같은 엣지 vocabulary.
08
프라이버시 게이트
세 가지 상태, doc / bundle / hub에 균일하게 적용.
Public — 퍼블리시 됨; allowed_emails 없음. 익명 AI fetch 성공.
Restricted — 퍼블리시 됨; allowed_emails 설정. fetcher가 owner JWT의 Authorization: Bearer <token> 또는 허용 주소와 매치되는 X-User-Email 전달 필요. 아니면 403/404.
Private — 퍼블리시 안 됨. Owner JWT만 가능.
모든 게이팅 결정은 서버 사이드 raw-fetch 라우트에서 일어남 — URL이 렌더된 viewer가 안 보여주는 콘텐츠를 leak할 경로 없음. allowed_emails 회수는 다음 fetch부터 적용.
09
왜 [[wikilink]] 없는가
전통 wiki (Wikipedia, Roam, Obsidian)는 사람이 [[other page]]를 타이핑해서 그래프를 구축. memory.wiki는 그 syntax를 ship하지 않음. 의도된 omission.
[[wikilink]]는 AI의 부재를 보완하기 위한 2003년 메커니즘. 사용자가 [[React Hooks]]를 타이핑하는 건 시스템에게 “이 페이지들은 관련이 있다”라고 알리는 것. 2026년에는 AI가 묻지 않아도 그 작업을 함: concept_index가 의미 있게 다루는 모든 doc에서 "React Hooks"를 컨셉으로 추출, concept_relations가 그 컨셉을 이웃과 타입 엣지로 연결.
사용자 facing 대체는 모든 공개 doc 아래 렌더링되는 Related in this hub 패널 — 현재 doc와 컨셉을 공유하는 다른 docs, AI의 분석이 surfaced. 전통 backlinks가 줬을 같은 정보, 사람이 링크를 박을 필요 없음.
링킹은 AI가 한다. 사용자는 글을 쓴다.
10
이 스펙 구현하기
세 가지 통합 경로, 모두 안정적.
URL paste. memory.wiki URL을 어떤 AI 채팅에든 drop. 모델이 raw variant를 자동 fetch. Zero config, Claude / ChatGPT / Cursor / Gemini에서 오늘 동작.
컨텍스트 파일 reference.AGENTS.md / CLAUDE.md / .cursor/rules에 URL 추가. AI 개발 도구가 매 세션 부팅마다 fetch. 도구별 스니펫: /ko/docs/integrate.
API 통합. 정밀 retrieval을 위해 POST /api/hub/{slug}/recall 직접 호출. SDK 불필요 — plain HTTP. Endpoint는 hub-public, API 키 불필요.