OpenLore
공식에이전트 네이티브 지식 서버. SSH와 MCP를 통해 AI 에이전트에 문서를 제공하며, ID 범위 기반 뷰, 관리형 쓰기, 구조화된 메타데이터를 지원합니다. 단일 바이너리, 설정 불필요.
OpenLore MCP(으)로 무엇을 할 수 있나요?
-
공유 지식 베이스 제공 — OpenLore를 Markdown 폴더에 연결하고 MCP 또는 SSH를 통해 모든 에이전트가
cat,grep,find같은 친숙한 도구를 사용하여 동일한 파일을 읽을 수 있게 합니다. -
신원별 접근 범위 지정 — 각 개인이나 에이전트에게 특정 문서 세트에 대한 읽기 전용, 게시 또는 읽기-쓰기 액세스를 부여하고, 개인 홈 디렉터리와 경로 별칭을 제공합니다.
-
관리되는 받은 편지함에 게시 — 에이전트가 기존 콘텐츠를 편집하지 못하게 하면서 받은 편지함에 새 문서를 기여할 수 있게 하고, 원자적이고 충돌 인식 쓰기를 지원합니다.
-
구조화된 메타데이터 쿼리 —
lore meta로 frontmatter를 NDJSON으로 검사하고jq로 필터링하여 메타데이터로 문서를 찾습니다. -
휴대용 바이너리에 문서 포함 — 문서가 포함된 독립 실행형 실행 파일을 빌드하고,
/docs에서 읽기 전용으로 제공하여 모든 팀에 배포할 수 있습니다.
문서
OpenLore를 Markdown 폴더에 연결하면 Claude Code, Codex, Cursor 또는 CI 작업 등 팀의 모든 에이전트가 동일한 파일을 읽습니다. 에이전트는 이미 알고 있는 도구(예: cat, grep, find)를 사용합니다. 누가 무엇을 보고 변경할 수 있는지는 사용자가 결정합니다.
원클릭 호스팅 서버. Render에 OpenLore 배포를 참조하세요.
빠른 시작
폴더를 설치하고 제공:
brew install --cask aakarim/tap/lore
openlore ./docs
SSH는 포트 2222에서 실행됩니다. 웹 보기와 MCP는 포트 8080를 공유합니다. ./docs의 내용은 /에 표시됩니다.
에이전트 연결:
# Claude Code
claude mcp add --transport http openlore http://localhost:8080/mcp
# Codex
codex mcp add openlore --url http://localhost:8080/mcp
# Anything with a shell
ssh -p 2222 localhost "grep -r 'retry' /"
에이전트에게 사용 시점을 알려주세요:
ssh -p 2222 localhost agents >> AGENTS.md
또는 에이전트가 전체 설정을 수행하도록 하세요:
ssh openlore.sh teach | claude
Homebrew를 사용하지 않나요? Linux 및 Windows용 빠른 시작을 참조하세요.
저장소에 Markdown을 유지하지 않는 이유는 무엇인가요?
단일 저장소의 단일 에이전트라면 그렇게 하세요.
OpenLore는 여러 에이전트, 저장소 또는 사람들이 동일한 지식을 필요로 하고, 누가 무엇을 읽고, 쓰고, 게시할 수 있는지 지정해야 할 때 사용합니다. 파일을 한 번 업데이트하면 모든 에이전트가 다음 읽기에서 새 버전을 확인합니다.
벡터 데이터베이스, 수집 파이프라인 또는 SDK가 없습니다. 지식은 일반 Markdown으로 유지됩니다.
가이드
- OpenLore란 무엇인가
- Claude Code
- Codex
- Cursor
- OpenCode
- SSH를 통한 모든 에이전트
- 에이전트가 받은 편지함에 게시하도록 허용
- Render에 배포
- 모든 문서
기능
- 에이전트 네이티브 검색 — 에이전트는 맞춤형 검색 API를 배우는 대신 이미 이해하고 있는 셸 도구와 구성 패턴을 사용합니다.
- 하나의 지식 표면, 여러 전송 방식 — 동일한 가상 파일 시스템을 SSH, SFTP/SSHFS(VS Code 직접 탐색 및 편집 포함), MCP 및 사람 친화적인 웹 보기를 통해 제공합니다.
- 실시간, 관리되는 지식 — 콘텐츠를 읽기 전용으로 유지하거나, 범위가 제한된 게시를 허용하거나, 문서 세트별로 전체 쓰기를 활성화합니다. 쓰기는 원자적이며, 충돌을 인식하고, 커밋 전에 검증됩니다.
- ID 범위 보기 — 각 사람이나 에이전트에게 필요한 문서 세트만 제공하며, 역할 기반
ro,publish,rw권한, 경로 별칭 및 개인 홈 디렉터리를 제공합니다. - 구조적으로 안전 — 셸은 실제 운영 체제 셸이 아닌 메모리 내 Go 인터프리터입니다. 일반 세션에서는 셸 이스케이프, 임의 프로세스 실행 또는 주변 네트워크 액세스가 없습니다.
- 휴대용 지식 번들 — 문서를 자체 포함 바이너리에 포함하고, GitHub Action으로 크로스 플랫폼 번들을 빌드하거나, 데스크톱 MCP 확장으로 패키징합니다.
- 새 쿼리 언어 없이 구조화된 지식 —
lore meta로 frontmatter를 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 데스크톱 확장으로 배포합니다.
- 검증된 지식 카탈로그 — frontmatter 및 번들 규칙을 적용하고, 메타데이터를 저렴하게 검사하며, 잘못된 지식을 수용 시점에 차단합니다.
작동 방식
OpenLore는 SSH 전송을 위해 Wish를 기반으로 구축되었습니다. 연결은 가상 파일 시스템에 대해 완전히 처리됩니다:
- 인증 — 키 없이 연결하거나 SSH 키, 인증서, 패스키 또는 OAuth 로그인을 ID로 해석합니다.
- 보기 구성 — 해당 ID에 부여된 문서 세트와 경로만 마운트합니다.
- 탐색 — 해당 보기에 대해 순수 Go 함수로 구현된 셸 명령을 실행하거나 동등한 MCP
shell도구를 사용합니다. - 안전하게 기여 — 쓰기가 활성화된 경우 원자적으로 커밋하기 전에 전체 파일 변경을 승인하고 검증합니다.
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
쓰기는 전체 객체 원자적 교체입니다. 비교 및 교체 보호는 기본적으로 오래된 편집을 거부하고, 문서 세트 권한은 대상을 제한하며, 플러그인은 커밋 전에 쓰기를 검증하거나 연기할 수 있습니다.
사용자 대상 설정은 쓰기 및 게시를, 구현 모델은 쓰기 시스템 내부를 참조하세요.
설치
Homebrew, Linux 및 Windows 릴리스와 대시보드가 포함된 설치에 대해서는 빠른 시작을 참조하세요. OpenLore를 직접 빌드하려면 소스에서 빌드를 참조하세요.
바이너리에 문서 포함
assets/lore/에 문서를 배치하고 빌드합니다. 결과 바이너리에는 문서가 포함되며 디렉터리 인수 없이 실행하면 /docs에서 읽기 전용으로 제공합니다:
make dashboard-build # optional: include the web UI
go build -o my-docs ./cmd/openlore
GitHub Action으로 빌드
문서가 포함된 크로스 플랫폼 바이너리 생성:
- uses: aakarim/openlore@v1
with:
docs-dir: ./docs
config: ./openlore.yml
VS Code 직접 편집, MCP stdio, MCPB 데스크톱 패키징, SSHFS 및 Go 라이브러리 사용에 대해서는 OpenLore 사용 방법을 참조하세요.
맞춤형 배포 생성
번들된 setup 스킬을 사용하여 <team>-lore를 생성합니다. 이는 openlore.yml를 포함하는 소규모 고객 소유 저장소로, 공식 OpenLore 릴리스에 고정된 얇은 Containerfile 및 배포 아티팩트를 포함합니다. 배포 전에 작동하는 로컬 서버를 빌드하고 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.yml 및 lore.json을 영구 구성 디렉터리에 배치하고 다음을 실행해야 합니다:
./out --config /var/lib/openlore/config/openlore.yml
이렇게 하면 구성을 독립적으로 배포할 수 있습니다: 간단한 배포는 openlore.yml을 볼륨에 복사할 수 있고, Kubernetes는 ConfigMap에서 동일한 파일을 프로젝션할 수 있습니다. Fly.io, Railway, AWS, Google Cloud, Azure, DigitalOcean 또는 맞춤형 인프라에는 deploy 스킬을 사용하세요. 저장소의 Railpack 및 Fly 파일은 이미지, 영구 볼륨 및 포트 연결을 제공합니다. 프로세스 시작 시 구성을 시드하거나 변경하지 않습니다.
맞춤형 저장소 없이 빠른 호스팅 서버를 원하면 Render에 배포 버튼을 사용하세요. Railpack 및 Fly 파일과 달리 시작 스크립트는 첫 부팅 시 빈 디스크에 시작용 openlore.yml 및 lore.json을 작성합니다. Render는 HTTPS, MCP 및 웹 보기만 제공합니다. OpenLore SSH용 공용 TCP 인그레스가 없습니다.
Railway는 SSH TCP 프록시에 공용 호스트 이름과 포트를 할당합니다. 표준 SSH 포트 22에는 외부 원시 TCP 로드 밸런서가 필요합니다. Fly.io는 전용 주소로 공용 포트 22를 OpenLore 내부 포트 2222에 매핑할 수 있습니다. 원시 SSH에는 호스트 이름 또는 SNI 라우팅이 없으므로 하나의 리스너가 포트 22에서 여러 도메인을 라우팅할 수 없습니다.
컨테이너 워크플로는 main에서 latest를 게시합니다. 릴리스는 VERSION, vVERSION, major 및 minor 이미지 태그도 게시합니다.
문서
동일한 페이지가 동일한 그룹으로 openlore.sh/docs에 게시됩니다.
소개
| 페이지 | 내용 |
|---|---|
| OpenLore란 무엇인가 | 한 페이지에서 제공, 연결, 범위 지정, 관리 및 관찰 |
| 변경 로그 | 현재 버전, 릴리스 노트, 호환성 노트 및 버전별 문서 |
시작하기
| 페이지 | 내용 |
|---|---|
| 빠른 시작 | OpenLore 설치, 폴더 제공, 에이전트 연결 |
| Claude Code | MCP를 통해 Claude Code를 연결하고 에이전트가 볼 수 있는 범위를 제한 |
| Codex | MCP를 통해 Codex 연결 |
| Cursor | MCP를 통해 Cursor 연결 |
| OpenCode | MCP를 통해 OpenCode 연결 |
| SSH를 통한 모든 에이전트 | SSH를 통해 코딩 에이전트 또는 CI 작업을 연결하고 신원을 부여 |
개념
OpenLore의 작동 방식: 문서 세트, 전송, 신원, 쓰기, 규칙 및 관찰.
| 페이지 | 내용 |
|---|---|
| 문서 세트 | 문서 세트가 무엇인지, 액세스가 문서 세트를 중심으로 구성되는 이유, 중첩, 권한 부여, 별칭 및 실패 시 폐쇄 검증이 작동하는 방식 |
| 전송 | SSH, SFTP, MCP, JSON API 및 웹이 하나의 파일 시스템, MCP 도구, 명령 결과, 세션 및 명령어를 공유하는 방식 |
| 인증 | 인증 태세, SSH 키, 인증서, 패스키, OAuth 토큰 및 받은 편지함 자격 증명이 신원, 역할, 문서 세트, 별칭, 홈 및 워크로드 신원 페더레이션으로 해석되는 방식 |
| 쓰기 및 게시 | 쓰기 모드, 받은 편지함, 충돌 처리, 성공적인 쓰기가 확인하는 것과 확인하지 않는 것, 작업 |
| 폴더 규칙 | .lore/config.yaml 및 lore.json 규칙, 계층, 권한, 거부 메시지 및 증가 제한 |
| 플러그인 및 형식 | 공급자 인터페이스, Open Knowledge Format 검증, lore validate, lore meta 및 Agent Skills 플러그인 |
| 대시보드 및 지표 | 대시보드 인증, 사실 대 활동, 파일 뷰어 |
방법
작업별 안내.
| 페이지 | 내용 |
|---|---|
| OpenLore 사용 방법 | SSH, HTTP 및 stdio를 통한 MCP, 웹 보기, SSHFS, 임베디드 바이너리, GitHub Action, MCPB 및 라이브러리 사용 설정 |
| 서버 구성 | openlore.yml 생성, 임베디드 구성 및 플래그보다 우선 순위, 분석 및 디버그 로깅 |
| 에이전트가 받은 편지함에 게시하도록 허용 | 에이전트가 다른 항목을 편집하지 못하게 하면서 기여를 수락 |
| 편집기에서 탐색 및 편집 | 로컬 프로젝트 미러 없이 VS Code 및 SFTP 편집기 직접 설정 |
| headlong / shellm 실행 | headlong의 shellm 엔진에서 SSH를 통해 OpenLore 사용, 하우스키핑 스킬 포함 |
| 소스에서 빌드 | 웹 UI 및 바이너리를 직접 빌드하거나 웹 UI 없이 빌드 |
| Render에 OpenLore 배포 | 원클릭 Render 배포, 첫 패스키 로그인, 업그레이드 및 사용자 지정 도메인 |
참조
조회 자료: 명령, 키, 엔드포인트, 인터페이스 및 내부 구조.
| 페이지 | 내용 |
|---|---|
| 명령 참조 | 완전한 셸, 내부 조사, 게시, 구문, CLI 명령 및 플래그 참조 |
| openlore.yml 참조 | openlore.yml이 수락하는 모든 키에 대한 생성된 참조 |
| 규칙 표준 라이브러리 | 컴파일된 규칙 멤버 및 해당 매개변수에 대한 생성된 참조 |
| HTTP 받은 편지함 API | 베어러 또는 HMAC 자격 증명이 있는 POST /inbox/{docset} 및 토큰 엔드포인트 |
| OAuth 클라이언트 | CIMD 클라이언트 신원, private_key_jwt, mTLS 확인 및 서명 키 회전 |
| 쓰기 시스템 내부 구조 | 파일 시스템 계층, 쓰기 경계, 승인 미들웨어 및 비동기 작업 |
| 대시보드 빌드 | 프론트엔드 빌드 및 백엔드 전용 Go 빌드 |
| 보안 평가 | 위협 모델 및 보안 속성 |
보안
- 명령은
os/exec가 아닌 순수 Go 인터프리터에서 실행됩니다. - 가상 파일 시스템은 경로를 정리하고 문서 세트 경계를 강제합니다.
- 허용된 파일 패턴과 무시된 디렉터리는 보기에서 비밀을 차단합니다.
- RBAC는 읽기, 게시, 쓰기, 승인 및 신뢰할 수 있는 기능을 제어합니다.
- 웹 엔드포인트는 TLS를 통해 SSH 호스트 키를 게시하여 첫 사용 시 맹목적 신뢰를 방지할 수 있습니다. SSH 사용자 및 호스트 인증서도 지원됩니다.
전체 보안 평가는 SECURITY.md를 참조하세요.
라이선스
Apache License 2.0 — 저작권 © 2026 Adil Karim
OpenLore는 타사 오픈소스 구성 요소를 번들로 포함합니다. 해당 라이선스 및 필수 고지 사항은
assets/legal/THIRD_PARTY_NOTICES.md에 나열되어 있으며,
전체 라이선스 텍스트는 assets/legal/licenses/에 있습니다. 이들은
바이너리에 포함되어 실행 중인 서비스가 /legal에서 제공합니다.