OpenLore

공식

에이전트 네이티브 지식 서버. SSH와 MCP를 통해 AI 에이전트에 문서를 제공하며, ID 범위 기반 뷰, 관리형 쓰기, 구조화된 메타데이터를 지원합니다. 단일 바이너리, 설정 불필요.

OpenLore MCP(으)로 무엇을 할 수 있나요?

  • SSH로 문서 탐색 — 어시스턴트에게 OpenLore에 ssh로 접속해 ls, cat, grep 같은 익숙한 명령어로 Markdown 문서를 검색하고 읽도록 요청하세요.

  • 문서 메타데이터 조회lore meta 명령어로 frontmatter를 NDJSON으로 검사하고, jq로 결과를 필터링해 구조화된 지식 검색을 수행하세요.

  • 승인 절차를 거쳐 콘텐츠 게시 — 어시스턴트가 publish, patch, 또는 sed -i를 사용해 Markdown 파일을 작성하거나 업데이트하도록 하되, 원자적 교체와 민감한 경로에 대한 선택적 인간 검토를 적용하세요.

  • ID 범위 접근 관리 — docset, 역할, 권한을 구성해 각 에이전트나 사용자가 승인된 지식 베이스와 경로만 볼 수 있도록 하세요.

  • 지식 번들 검증lore validate를 실행해 Google의 Open Knowledge Format(OKF) 준수 여부를 확인하고, 잘못된 frontmatter가 커밋되기 전에 잡아내세요.

문서

📜 OpenLore

Release Go Reference

후원: Oiya

SSH를 통해 문서를 AI 에이전트에 제공하세요.

OpenLore는 공유 컨텍스트를 최신 상태로 유지하고 검사 가능하게 만드는 최소한의 확장 가능한 에이전트 네이티브 지식 베이스입니다.


소개

AI 코딩 에이전트는 이미 ls, cat, grep, find, 파이프, 셸 루프로 파일을 탐색하는 방법을 알고 있습니다. OpenLore는 실제 머신 대신 문서를 기반으로 SSH를 통해 동일한 인터페이스를 제공합니다.

Agent ──SSH or MCP──▶ OpenLore ──▶ docs, knowledge, and artifacts

단일 바이너리, 제로 구성, 읽기 전용 문서 서버로 시작합니다. 라이브 지식 베이스가 필요할 때 에이전트가 콘텐츠를 읽거나 탐색하는 방식을 변경하지 않고도 ID 범위 액세스, 제어된 게시, 원자적 쓰기, 검증, 인간 승인을 추가할 수 있습니다.

Markdown 저장 및 검색

문서, 런북, 프로젝트 컨텍스트 또는 에이전트가 작성한 메모를 일반 Markdown 파일에 넣으세요. 수집 파이프라인이 없습니다. OpenLore를 디렉터리에 지정하면 기존 계층 구조를 직접 제공합니다. 폴더로 문서를 구성하고, 표준 Markdown 링크로 연결하고, 서로 다른 사람이나 에이전트가 서로 다른 액세스 권한이 필요할 때 문서 세트로 그룹화하세요. OpenLore는 기본적으로 읽기 전용입니다. 에이전트가 Markdown도 생성하고 업데이트하도록 하려면 쓰기를 활성화하세요.

OpenLore Skills import demo

빠른 시작

가장 빠른 방법은 에이전트가 OpenLore를 설정하도록 하는 것입니다:

# Teach your agent how to install, configure, and bundle OpenLore
ssh openlore.sh teach | your-agent-cli

# Add documentation access instructions to AGENTS.md
ssh openlore.sh agents >> AGENTS.md

또는 직접 설치하고 실행하세요:

go install github.com/aakarim/go-openlore/cmd/openlore@latest

openlore ./docs

ssh -p 2222 localhost
ssh -p 2222 localhost "grep -r 'authentication' /docs"

기본적으로 다음이 시작됩니다:

  • localhost:2222에서 SSH
  • http://localhost:8080에서 인간용 웹 보기
  • http://localhost:8080/mcp에서 HTTP를 통한 MCP

OpenLore를 설치하고 패키징하는 더 많은 방법은 설치를 참조하세요.

기능

  • 에이전트 네이티브 검색 — 에이전트는 특별한 검색 API를 배우는 대신 이미 이해하는 셸 도구와 구성 패턴을 사용합니다.
  • 하나의 지식 표면, 여러 전송 방식 — SSH, SFTP/SSHFS, MCP, 인간 친화적인 웹 보기를 통해 동일한 가상 파일 시스템을 제공합니다.
  • 라이브, 관리되는 지식 — 콘텐츠를 읽기 전용으로 유지하거나, 범위가 지정된 게시를 허용하거나, 문서 세트별로 전체 쓰기를 활성화하세요. 쓰기는 원자적이고 충돌을 인식하며 인간 승인이 필요할 수 있습니다.
  • ID 범위 보기 — 각 사람이나 에이전트에게 필요한 문서 세트만 역할 기반 ro, publish, rw 권한, 경로 별칭, 개인 홈 디렉터리와 함께 제공하세요.
  • 구조적으로 안전 — 셸은 실제 운영 체제 셸이 아닌 인메모리 Go 인터프리터입니다. 일반 세션에서는 셸 이스케이프, 임의 프로세스 실행, 주변 네트워크 액세스가 없습니다.
  • 휴대용 지식 번들 — 문서를 자체 포함 바이너리에 포함하고, GitHub Action으로 크로스 플랫폼 번들을 빌드하거나, 데스크톱 MCP 확장으로 패키징하세요.
  • 새 쿼리 언어 없는 구조화된 지식lore meta로 프론트매터를 NDJSON으로 검사하고, jq로 쿼리하며, Google의 Open Knowledge Format (OKF) 번들과 Agent Skills를 쓰기 경로 근처에서 검증하세요.
  • 확장 가능한 정책 및 처리 — 플러그인은 동일한 파일 시스템 인터페이스를 유지하면서 검증, 권한, 읽기/쓰기 미들웨어, 메타데이터, 커밋 후 처리를 추가할 수 있습니다.

사용 사례

  • 지속적 학습 저장소 — 세션과 학습 내용을 하나의 공유 서버에 저장하세요. 최적화할 수 있도록 메트릭을 추가하세요. 사용자 격리를 유지하면서 에이전트가 서로 학습 내용을 공유할 수 있게 하세요.
  • 팀 아티팩트 저장소 — 액세스 제어를 유지하면서 만든 Markdown, HTML, JSON, Excel 등의 문서를 공유하세요. git보다 훨씬 자연스럽고 Confluence/Notion보다 에이전트 네이티브합니다.
  • 코딩 에이전트용 문서 — 내부 API 문서, 런북, 제품 컨텍스트, 아키텍처 노트를 익숙하고 검색 가능한 인터페이스 뒤에 배치하세요.
  • 에이전트 팀을 위한 공유 라이브 메모리 — 에이전트에게 분리되거나 공유된 문서 세트를 제공하여 발견 사항을 게시하고, 작업을 인계하고, 세션 간에 지속적인 컨텍스트를 축적할 수 있게 하세요.
  • 공개 문서 사이트 — 공개 문서 세트에 파일을 추가하고 공개 액세스를 활성화하면 사이트를 방문하는 모든 에이전트에게 표시됩니다. 기존 문서를 편집할 필요 없이 AEO/GEO를 개선합니다.
  • 스킬 공유 — Agent Skills를 공유 컬렉션에 게시하여 모든 권한 있는 에이전트가 동일한 관리 절차를 발견하고 사용할 수 있게 하세요.
  • 에이전트 플러그인 저장소 — GitHub에서 Agent Plugins 저장소를 버전 고정하고 팀의 에이전트에게 제공하세요. 공개 표준으로 패키징된 스킬은 자동으로 최신 상태를 유지합니다.
  • 관리되는 지식 기여 — 기여자가 받은 편지함에 게시할 수 있게 하면서 승인자를 위해 민감한 경로를 예약하고 우발적 덮어쓰기를 방지하세요.
  • 에이전트 아티팩트 원격 검토 — 사용자 지정 아티팩트 뷰어를 구축하거나 에이전트 머신에 대한 액세스 권한을 부여하지 않고 브라우저나 SSH를 통해 보고서, 로그, 스크린샷, 생성된 파일을 노출하세요.
  • ID별 작업 공간 — 하나의 서버와 하나의 권한 부여 모델을 통해 각 에이전트의 개인 홈과 공유 팀 지식을 마운트하세요.
  • 휴대용 고객 또는 프로젝트 지식 — 관련 문서가 포함된 버전 관리 실행 파일을 제공하거나 동일한 지식을 MCPB 데스크톱 확장으로 배포하세요.
  • 검증된 지식 카탈로그 — 프론트매터 및 번들 규칙을 적용하고, 메타데이터를 저렴하게 검사하며, 잘못된 지식을 수용 시점에 차단하세요.

작동 방식

OpenLore는 SSH 전송을 위해 Wish를 기반으로 구축되었습니다. 연결은 가상 파일 시스템에 대해 완전히 처리됩니다:

  1. 인증 — 키 없이 연결하거나 SSH 키, 인증서, 패스키 또는 OAuth 로그인을 ID로 해석합니다.
  2. 보기 구성 — 해당 ID에 부여된 문서 세트와 경로만 마운트합니다.
  3. 탐색 — 해당 보기에 대해 순수 Go 함수로 구현된 셸 명령을 실행하거나 동등한 MCP shell 도구를 사용하세요.
  4. 안전하게 기여 — 쓰기가 활성화된 경우 원자적으로 커밋하거나 승인을 위해 라우팅하기 전에 전체 파일 변경을 승인하고 검증하세요.

OAuth 클라이언트는 위임된 ID를 사용하므로 지속적인 쓰기 출처는 adil의 직접 작업과 adil/claude@claude.ai로 수행된 작업을 구분합니다. 위임자는 교장보다 더 많은 권한을 상속할 수 없으며 문서 세트 및 기능 거부 목록으로 좁힐 수 있습니다. CIMD 클라이언트는 추가로 공급업체 호스팅 메타데이터와 private_key_jwt로 인증할 수 있습니다. 인증된 OAuth 클라이언트를 참조하세요.

일반 셸은 bash, exec, curl 또는 임의 호스트 프로세스를 호출할 수 없습니다. 포함된 문서는 항상 읽기 전용입니다. 명시적으로 신뢰된 ID는 spawn 기능을 통해 좁은 범위의 비동기 처리를 부여받을 수 있습니다.

관리되는 쓰기

OpenLore는 기본적으로 읽기 전용입니다. 쓰기 가능한 배포는 리디렉션, 추가, tee, patch, sed -i, 파일 이동, 게시, 승인된 외부 작업을 위한 단일 정책 제어 쓰기 경로를 유지합니다.

echo "# Research" | publish backend findings.md
cat change.diff | patch /backend/api.md
sed -i 's/old/new/g' /backend/runbook.md

쓰기는 전체 객체 원자적 교체입니다. 비교 및 교체 보호는 기본적으로 오래된 편집을 거부하고, 문서 세트 권한은 대상을 제한하며, 선택된 경로는 직접 커밋하는 대신 /requests에서 검토 가능한 변경 세트를 생성할 수 있습니다.

사용자용 설정은 쓰기 및 게시를, 구현 모델은 쓰기 시스템 내부를 참조하세요.

설치

Go로 설치

Go 1.26 이상 필요:

go install github.com/aakarim/go-openlore/cmd/openlore@latest

소스에서 빌드

git clone https://github.com/aakarim/go-openlore.git
cd go-openlore
go build -o openlore ./cmd/openlore

바이너리에 문서 포함

assets/lore/에 문서를 배치하고 빌드하세요. 결과 바이너리는 문서를 포함하며 디렉터리 인수 없이 실행할 때 /docs에서 읽기 전용으로 제공합니다:

go build -o my-docs ./cmd/openlore

GitHub Action으로 빌드

문서가 포함된 크로스 플랫폼 바이너리 생성:

- uses: aakarim/openlore@v1
  with:
    docs-dir: ./docs
    config: ./openlore.yml

MCP stdio, MCPB 데스크톱 패키징, SSHFS, Go 라이브러리 사용은 OpenLore 사용 방법을 참조하세요.

사용자 지정 배포 생성

번들된 setup 스킬을 사용하여 <team>-lore를 생성하세요. 이는 공식 OpenLore 릴리스에 고정된 얇은 Containerfile, openlore.yml을 포함하는 작은 고객 소유 저장소입니다. 배포 전에 작동하는 로컬 서버를 빌드하고 HTTP, MCP, 인증된 SSH, 쓰기, 지속성을 검증합니다:

ssh openlore.sh setup | amp

생성된 저장소는 초기 lore.json 정책과 SSH 표시 파일을 gitignore된 .local/ 아래에 유지합니다. 첫 번째 배포는 해당 상태에서 빈 영구 볼륨을 초기화합니다. 루트 openlore.yml은 Git/IaC 권한으로 남아 있으며 /var/lib/openlore/config/openlore.yml에 별도로 배포됩니다. 이미지에 포함되지 않습니다. 이후 서버의 lore.json 및 파일 시스템 편집은 권위적이며 이미지 업데이트로 덮어쓰지 않습니다.

추가 명령은 전체 수명 주기를 지원합니다:

  • onboarding은 로컬에서 초기 ID, 역할, 홈, 폴더를 추가합니다;
  • deploy는 Fly.io, Railway, AWS, Google Cloud, Azure, DigitalOcean 또는 사용자 지정 배포를 선택하고 공유 지속성/네트워킹 계약을 검증합니다;
  • upgrade는 기존 CD가 배포할 수 있도록 고정된 기본 이미지 버전 변경만 준비합니다.

공급자 배포에는 HTTPS/MCP, 인증된 OpenLore SSH, 관리 셸 액세스, 영구 /var/lib/openlore 볼륨이 필요합니다. 공급자가 지원하는 경우 배포는 공개 포트 22를 OpenLore 포트 2222로 전달하도록 구성합니다. 그렇지 않으면 할당된 포트를 보고하고 외부 TCP 전달 시스템을 권장합니다.

게시된 컨테이너에는 OpenLore만 포함됩니다. 의도적으로 온보딩 정책이나 서버 구성이 포함되지 않습니다. 서비스가 시작되기 전에 배포는 영구 구성 디렉터리에 openlore.ymllore.json을 배치하고 다음을 실행해야 합니다:

./out --config /var/lib/openlore/config/openlore.yml

이렇게 하면 구성을 독립적으로 배포할 수 있습니다: 간단한 배포는 openlore.yml를 볼륨에 복사할 수 있고, Kubernetes는 ConfigMap에서 동일한 파일을 프로젝션할 수 있습니다. Fly.io, Railway, AWS, Google Cloud, Azure, DigitalOcean 또는 사용자 지정 인프라에는 deploy 스킬을 사용하세요. 저장소의 Railpack 및 Fly 파일은 이미지, 영구 볼륨, 포트 연결을 제공합니다. 프로세스 시작 시 구성을 시드하거나 변경하지 않습니다.

Railway는 SSH TCP 프록시에 공개 호스트 이름과 포트를 할당합니다. 표준 SSH 포트 22는 외부 원시 TCP 로드 밸런서가 필요합니다. Fly.io는 전용 주소로 공개 포트 22를 OpenLore의 내부 포트 2222에 매핑할 수 있습니다. 원시 SSH에는 호스트 이름이나 SNI 라우팅이 없으므로 하나의 리스너가 포트 22에서 여러 도메인을 라우팅할 수 없습니다.

컨테이너 워크플로는 main에서 latest을 게시합니다. 릴리스는 VERSION, vVERSION, 메이저 및 마이너 이미지 태그도 게시합니다.

HTTP 받은 편지함 업로드

문서 세트 inbox와 해당 publish 권한이 있는 역할을 구성한 다음 기존 ID에 대한 자격 증명을 생성하세요(서버 구성은 CLI가 검증할 수 있도록 auth_file을 지정해야 합니다):

openlore inbox token create --identity alice --label webhook --config openlore.yml
curl -H 'Authorization: Bearer olin_ID_SECRET' -H 'Content-Type: text/markdown' \
  --data-binary @note.md 'https://docs.example.com/inbox/docs?name=note.md'

POST /inbox/{docset}은 베어러 자격 증명 또는 X-OpenLore-Token-IdX-OpenLore-Signature을 사용한 정확한 본문 HMAC을 허용합니다. OAuth 액세스 토큰은 POST/GET /inbox/tokensDELETE /inbox/tokens/{id}에만 사용됩니다. 받은 편지함 자격 증명은 별개이며 취소 가능합니다. 구성 및 ID를 참조하세요.

문서

가이드내용
OpenLore 사용 방법SSH, MCP, 웹, SSHFS, 임베디드 바이너리, GitHub Action, MCPB 및 라이브러리 사용
명령어 참조셸, 내부 조사, 게시, 구문, CLI 명령 및 플래그 전체 참조
구성 및 신원openlore.yml, 인증, 역할, 문서 세트, 별칭, 홈 및 호스트 검증
워크로드 신원 연합단기 외부 신원 토큰으로 CI 및 에이전트 인증
작성 및 게시쓰기 모드, 받은 편지함, 충돌 처리, 승인 및 작업
플러그인 및 지식 형식플러그인 설치, 인터페이스, OKF 검증, lore validatelore meta
쓰기 시스템 내부파일 시스템 계층, 쓰기 경계, 변경 집합, 후크 및 비동기 작업
보안 평가위협 모델 및 보안 속성

보안

  • 명령은 os/exec을 통하지 않고 순수 Go 인터프리터에서 실행됩니다.
  • 가상 파일 시스템은 경로를 정리하고 문서 세트 경계를 강제합니다.
  • 허용된 파일 패턴과 무시된 디렉터리는 비밀을 보기에서 제외합니다.
  • RBAC는 읽기, 게시, 쓰기, 승인 및 신뢰할 수 있는 기능을 제어합니다.
  • 웹 엔드포인트는 최초 사용 시 맹목적 신뢰를 피하기 위해 TLS를 통해 SSH 호스트 키를 게시할 수 있습니다. SSH 사용자 및 호스트 인증서도 지원됩니다.

전체 보안 평가는 SECURITY.md를 참조하세요.

라이선스

MIT — Adil Karim

OpenLore는 타사 오픈 소스 구성 요소를 번들로 포함합니다. 해당 라이선스 및 필수 고지 사항은 assets/legal/THIRD_PARTY_NOTICES.md에 나열되어 있으며, 전체 라이선스 텍스트는 assets/legal/licenses/에 있습니다. 이들은 바이너리에 포함되어 실행 중인 서비스가 /legal에서 제공합니다.