OpenLore

resmi

Ajan-native bilgi sunucusu. AI ajanlarına SSH ve MCP üzerinden kimlik kapsamlı görünümler, yönetilen yazım ve yapılandırılmış meta verilerle dokümanlar sunar. Tek binary, sıfır yapılandırma.

OpenLore MCP ile neler yapabilirsiniz?

  • SSH ile dokümanları keşfedin — Asistanınızdan OpenLore'a ssh ile bağlanmasını ve Markdown dokümantasyonunu aramak ve okumak için ls, cat veya grep gibi bilinen komutları kullanmasını isteyin.

  • Doküman meta verilerini sorgulayın — Frontmatter'ı NDJSON olarak incelemek için lore meta komutunu kullanın ve yapılandırılmış bilgi erişimi için sonuçları jq ile filtreleyin.

  • Onayla içerik yayınlayın — Asistanınızın publish, patch veya sed -i kullanarak Markdown dosyaları yazmasını veya güncellemesini sağlayın; atomik değişimler ve hassas yollar için isteğe bağlı insan incelemesiyle.

  • Kimlik kapsamlı erişimi yönetin — Her aracının veya kullanıcının yalnızca erişim yetkisine sahip olduğu bilgi tabanlarını ve yolları görebilmesi için docset'leri, rolleri ve izinleri yapılandırın.

  • Bilgi paketlerini doğrulayın — Google'ın Açık Bilgi Formatı (OKF) uyumluluğunu kontrol etmek ve hatalı frontmatter'ı commit edilmeden önce yakalamak için lore validate komutunu çalıştırın.

Dokümantasyon

📜 OpenLore

Release Go Reference

Oiya tarafından desteklenmektedir

Dokümantasyonunuzu AI ajanlarına SSH üzerinden sunun.

OpenLore, paylaşılan bağlamı güncel ve incelenebilir tutan minimal, genişletilebilir, ajan-yerel bir bilgi tabanıdır.


Hakkında

AI kodlama ajanları dosyaları ls, cat, grep, find, borular ve kabuk döngüleriyle keşfetmeyi zaten biliyor. OpenLore onlara aynı arayüzü SSH üzerinden, gerçek bir makine yerine dokümantasyonunuzla desteklenen şekilde sunar.

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

Tek bir ikili dosya, sıfır yapılandırma, salt-okunur bir dokümantasyon sunucusu olarak başlar. Canlı bir bilgi tabanına ihtiyaç duyduğunuzda, ajanların içeriği okuma veya gezinme şeklini değiştirmeden kimlik kapsamlı erişim, kontrollü yayınlama, atomik yazma, doğrulama ve insan onayı ekleyebilirsiniz.

Markdown depolayın ve alın

Dokümantasyonu, çalıştırma kitaplarını, proje bağlamını veya ajan tarafından yazılmış notları sıradan Markdown dosyalarına koyun. Alım hattı yoktur: OpenLore'u bir dizine yönlendirin ve mevcut hiyerarşiyi doğrudan sunar. Belgeleri klasörlerle düzenleyin, standart Markdown bağlantılarıyla birbirine bağlayın ve farklı kişiler veya ajanlar farklı erişime ihtiyaç duyduğunda bunları docset'ler halinde gruplayın. OpenLore varsayılan olarak salt-okunurdur; ajanların da Markdown oluşturmasını ve güncellemesini istediğinizde yazmayı etkinleştirin.

OpenLore Skills import demo

Hızlı Başlangıç

En hızlı yol, ajanınızın OpenLore'u kurmasına izin vermektir:

# 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

Veya doğrudan kurun ve çalıştırın:

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

openlore ./docs

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

Varsayılan olarak bu şunları başlatır:

  • localhost:2222 üzerinde SSH
  • http://localhost:8080 üzerinde insan odaklı web görünümü
  • http://localhost:8080/mcp üzerinde HTTP üzerinden MCP

OpenLore'u kurmanın ve paketlemenin diğer yolları için Kurulum bölümüne bakın.

Özellikler

  • Ajan-yerel erişim — Ajanlar, özel bir erişim API'si öğrenmek yerine zaten anladıkları kabuk araçlarını ve kompozisyon desenlerini kullanır.
  • Tek bilgi yüzeyi, birden çok taşıma — Aynı sanal dosya sistemini SSH, SFTP/SSHFS, MCP ve insan dostu bir web görünümü üzerinden sunun.
  • Canlı, yönetilen bilgi — İçeriği salt-okunur tutun, kapsamlı yayınlamaya izin verin veya docset başına tam yazma etkinleştirin. Yazmalar atomiktir, çakışma farkındadır ve insan onayı gerektirebilir.
  • Kimlik kapsamlı görünümler — Her kişiye veya ajana yalnızca ihtiyaç duyduğu docset'leri, rol tabanlı ro, publish ve rw izinleri, yol takma adları ve özel ana dizinlerle verin.
  • Yapı gereği güvenli — Kabuk, gerçek bir işletim sistemi kabuğu değil, bellek içi bir Go yorumlayıcısıdır. Normal bir oturumda kabuk kaçışı, keyfi işlem yürütme veya ortam ağı erişimi yoktur.
  • Taşınabilir bilgi paketleri — Belgeleri kendi kendine yeten bir ikili dosyaya gömün, GitHub Action ile çapraz platform paketleri oluşturun veya bunları bir masaüstü MCP uzantısı olarak paketleyin.
  • Yeni bir sorgu dili olmadan yapılandırılmış bilgi — Ön maddeyi lore meta ile NDJSON olarak inceleyin, jq ile sorgulayın ve Google'ın Open Knowledge Format (OKF) paketlerini ve Agent Skills'i yazma yoluna yakın doğrulayın.
  • Genişletilebilir politika ve işleme — Eklentiler, aynı dosya sistemi arayüzünü korurken doğrulama, izinler, okuma/yazma ara katmanı, meta veri ve işleme sonrası işleme ekleyebilir.

Kullanım Durumları

  • Sürekli Öğrenme deposu — oturumları ve öğrenimleri tek bir paylaşılan sunucuda saklayın. Optimize edebilmeniz için metrikler ekleyin. Ajanların kullanıcı izolasyonunu korurken birbirleriyle öğrenim paylaşmasına izin verin.
  • Ekip Artefakt Deposu — erişim kontrollerini korurken oluşturduğunuz markdown, HTML, JSON, Excel vb. belgeleri paylaşın. Git'ten çok daha doğal, Confluence/Notion'dan daha ajan-yerel.
  • Kodlama ajanları için dokümantasyon — Dahili API belgelerini, çalıştırma kitaplarını, ürün bağlamını ve mimari notlarını tanıdık, aranabilir bir arayüzün arkasına koyun.
  • Ajan ekipleri için paylaşılan canlı bellek — Ajanlara ayrı veya paylaşılan docset'ler verin, böylece bulguları yayınlayabilir, işleri devredebilir ve oturumlar arasında kalıcı bağlam biriktirebilirler.
  • Genel dokümantasyon sitesi — genel docset'inize herhangi bir dosya ekleyin, genel erişimi etkinleştirin ve sitenize rastlayan herhangi bir ajana gösterilecektir. Mevcut dokümanlarınızı düzenlemenize gerek kalmadan AEO/GEO'yu iyileştirir.
  • Beceri paylaşımı — Agent Skills'i paylaşılan koleksiyonlara yayınlayın, böylece yetkili her ajan aynı yönetilen prosedürleri keşfedebilir ve kullanabilir.
  • Ajan Eklentileri deposu — GitHub'dan Agent Plugins depolarını sürüm sabitleyin ve ekip ajanlarınıza sunun. Açık standartta paketlenmiş beceriler otomatik olarak güncel kalır.
  • Yönetilen bilgi katkısı — Katkıda bulunanların gelen kutularına yayınlamasına izin verin, hassas yolları onaylayanlara ayırırken ve yanlışlıkla üzerine yazmaları önlerken.
  • Ajan artefaktlarının uzaktan incelenmesi — Özel bir artefakt görüntüleyici oluşturmadan veya ajanın makinesine erişim vermeden raporları, günlükleri, ekran görüntülerini ve oluşturulan dosyaları tarayıcı veya SSH üzerinden gösterin.
  • Kimliğe özel çalışma alanları — Her ajan için özel bir ana dizin ve paylaşılan ekip bilgisi bağlayın, tümü tek bir sunucu ve tek bir yetkilendirme modeli üzerinden.
  • Taşınabilir müşteri veya proje bilgisi — İlgili belgeleri gömmüş sürümlü bir yürütülebilir dosya gönderin veya aynı bilgiyi bir MCPB masaüstü uzantısı olarak dağıtın.
  • Doğrulanmış bilgi katalogları — Ön madde ve paket kurallarını zorunlu kılın, meta verileri ucuz bir şekilde inceleyin ve kabul anında hatalı bilgiyi durdurun.

Nasıl Çalışır

OpenLore, SSH taşıması için Wish üzerine kurulmuştur. Bir bağlantı tamamen sanal bir dosya sistemine karşı işlenir:

  1. Kimlik doğrulama — anahtarsız bağlanın veya bir SSH anahtarını, sertifikayı, parolayı veya OAuth girişini bir kimliğe çözün.
  2. Bir görünüm oluşturun — yalnızca o kimliğe verilen docset'leri ve yolları bağlayın.
  3. Keşfedin — bu görünüm üzerinde saf Go işlevleri olarak uygulanan kabuk komutlarını çalıştırın veya eşdeğer MCP shell aracını kullanın.
  4. Güvenle katkıda bulunun — yazma etkinse, atomik olarak işlemeden veya onaya yönlendirmeden önce tüm dosya değişikliğini yetkilendirin ve doğrulayın.

OAuth istemcileri devredilen kimlikler kullanır, bu nedenle kalıcı yazma kaynağı adil tarafından doğrudan çalışmayı adil/claude@claude.ai olarak gerçekleştirilen işten ayırır. Devredilenler asıl kişiden daha fazla yetki miras alamaz ve docset ve yetenek reddetme listeleriyle daraltılabilir. CIMD istemcileri ayrıca satıcı tarafından barındırılan meta veriler ve private_key_jwt ile kimlik doğrulayabilir; Kimliği Doğrulanmış OAuth İstemcileri bölümüne bakın.

Normal kabuk bash, exec, curl veya keyfi ana bilgisayar işlemlerini çağıramaz. Gömülü dokümantasyon her zaman salt-okunurdur. Açıkça güvenilen kimliklere spawn yeteneği aracılığıyla dar kapsamlı eşzamansız işleme verilebilir.

Yönetilen Yazma

OpenLore varsayılan olarak salt-okunurdur. Yazılabilir dağıtımlar, yönlendirmeler, ekleme, tee, patch, sed -i, dosya taşıma, yayınlama ve onaylanmış harici işler için tek, politika kontrollü bir yazma yolu tutar.

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

Yazmalar, tüm nesnenin atomik takaslarıdır. Karşılaştır-ve-takas koruması, varsayılan olarak eski düzenlemeleri reddeder, docset izinleri hedefi kısıtlar ve seçili yollar, doğrudan işlemek yerine /requests altında incelenebilir değişiklik setleri üretebilir.

Kullanıcı odaklı kurulum için Yazma ve yayınlama ve uygulama modeli için Yazma sistemi iç işleyişi bölümlerine bakın.

Kurulum

Go ile kurun

Go 1.26 veya sonrası gerekir:

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

Kaynaktan derleyin

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

Belgeleri bir ikili dosyaya gömün

Dokümantasyonu assets/lore/ içine yerleştirin ve derleyin. Ortaya çıkan ikili dosya belgeleri içerir ve dizin bağımsız değişkeni olmadan çalıştırıldığında /docs adresinde salt-okunur olarak sunar:

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

GitHub Action ile derleyin

Belgeleriniz gömülü çapraz platform ikili dosyaları üretin:

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

MCP stdio, MCPB masaüstü paketleme, SSHFS ve Go kitaplığı kullanımı için OpenLore'u kullanma yolları bölümüne bakın.

Özelleştirilmiş bir dağıtım oluşturun

setup becerisini kullanarak <team>-lore oluşturun; bu, openlore.yml içeren, resmi bir OpenLore sürümüne sabitlenmiş ince bir Containerfile ve dağıtım artefaktları içeren küçük, müşteriye ait bir depodur. Dağıtımdan önce çalışan bir yerel sunucu oluşturur ve HTTP, MCP, kimliği doğrulanmış SSH, yazma ve kalıcılığı doğrular:

ssh openlore.sh setup | amp

Oluşturulan depo, ilk lore.json politikasını ve SSH tarafından görülebilir dosyaları gitignore edilmiş .local/ altında tutar. İlk dağıtım, bu durumdan boş bir kalıcı birim başlatır. Kök openlore.yml, Git/IaC otoritesi olarak kalır ve /var/lib/openlore/config/openlore.yml öğesine ayrı olarak dağıtılır; görüntüye gömülmez. Sunucudaki sonraki lore.json ve dosya sistemi düzenlemeleri otoritatiftir ve görüntü güncellemeleri tarafından asla üzerine yazılmaz.

Ek talimat komutları tam yaşam döngüsünü destekler:

  • onboarding yerel olarak ilk kimlikleri, rolleri, ana dizinleri ve klasörleri ekler;
  • deploy Fly.io, Railway, AWS, Google Cloud, Azure, DigitalOcean veya özel bir dağıtım seçer ve paylaşılan bir kalıcılık/ağ sözleşmesini doğrular;
  • upgrade yalnızca sabitlenmiş temel görüntü sürümü değişikliğini hazırlar, böylece mevcut CD bunu dağıtabilir.

Sağlayıcı dağıtımları HTTPS/MCP, kimliği doğrulanmış OpenLore SSH, yönetim kabuğu erişimi ve kalıcı bir /var/lib/openlore birimi gerektirir. Sağlayıcı desteklediğinde, dağıtım genel bağlantı noktası 22'yi OpenLore bağlantı noktası 2222'ye iletmek üzere yapılandırır. Aksi takdirde atanan bağlantı noktasını bildirir ve harici bir TCP iletme sistemi önerir.

Yayınlanan kapsayıcı yalnızca OpenLore içerir. Bilinçli olarak hiçbir karşılama politikası veya sunucu yapılandırması içermez. Hizmet başlamadan önce, dağıtım openlore.yml ve lore.json öğelerini kalıcı yapılandırma dizinine koymalı ve şunu çalıştırmalıdır:

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

Bu, yapılandırmayı bağımsız olarak dağıtılabilir tutar: basit bir dağıtım openlore.yml öğesini birime kopyalayabilirken, Kubernetes aynı dosyayı bir ConfigMap'ten yansıtabilir. Fly.io, Railway, AWS, Google Cloud, Azure, DigitalOcean veya özel altyapı için deploy becerisini kullanın. Deponun Railpack ve Fly dosyaları görüntü, kalıcı birim ve bağlantı noktası kablolamasını sağlar; işlem başlangıcında yapılandırmayı tohumlamaz veya değiştirmez.

Railway, SSH TCP proxy'sine genel bir ana bilgisayar adı ve bağlantı noktası atar. Standart SSH bağlantı noktası 22, harici bir ham TCP yük dengeleyici gerektirir. Fly.io, genel bağlantı noktası 22'yi özel bir adresle OpenLore'un dahili bağlantı noktası 2222'ye eşleyebilir. Ham SSH'de ana bilgisayar adı veya SNI yönlendirmesi yoktur, bu nedenle tek bir dinleyici bağlantı noktası 22'de birden çok alan adını yönlendiremez.

Kapsayıcı iş akışı main öğesinden latest yayınlar; sürümler ayrıca VERSION, vVERSION, ana ve alt görüntü etiketlerini yayınlar.

HTTP gelen kutusu yüklemeleri

Bir docset inbox ve publish iznine sahip bir rol yapılandırın, ardından mevcut bir kimlik için bir kimlik bilgisi oluşturun (sunucu yapılandırması auth_file adlandırmalıdır, böylece CLI bunu doğrulayabilir):

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}, taşıyıcı kimlik bilgilerini veya X-OpenLore-Token-Id ve X-OpenLore-Signature kullanan tam gövdeli bir HMAC kabul eder. OAuth erişim belirteçleri yalnızca POST/GET /inbox/tokens ve DELETE /inbox/tokens/{id} için kullanılır; gelen kutusu kimlik bilgileri ayrıdır ve iptal edilebilir. Yapılandırma ve kimlik bölümüne bakın.

Dokümantasyon

Rehberİçerik
OpenLore kullanım yollarıSSH, MCP, web, SSHFS, gömülü ikili dosyalar, GitHub Action, MCPB ve kütüphane kullanımı
Komut referansıEksiksiz kabuk, içgözlem, yayınlama, sözdizimi, CLI komutu ve bayrak referansı
Yapılandırma ve kimlikopenlore.yml, kimlik doğrulama, roller, docset'ler, takma adlar, ev dizinleri ve ana bilgisayar doğrulaması
İş yükü kimlik federasyonuCI ve aracıları kısa ömürlü harici kimlik belirteçleriyle doğrula
Yazma ve yayınlamaYazma modları, gelen kutuları, çakışma işleme, onaylar ve işler
Eklentiler ve bilgi biçimleriEklenti kurulumu, arayüzler, OKF doğrulaması, lore validate ve lore meta
Yazma sistemi iç işleyişiDosya sistemi katmanlama, yazma dikişi, değişiklik kümeleri, kancalar ve zaman uyumsuz işler
Güvenlik değerlendirmesiTehdit modeli ve güvenlik özellikleri

Güvenlik

  • Komutlar, os/exec üzerinden değil, saf Go yorumlayıcısında çalışır.
  • Sanal dosya sistemi yolları temizler ve docset sınırlarını zorlar.
  • İzin verilen dosya desenleri ve yok sayılan dizinler, sırları görünümden uzak tutar.
  • RBAC; okuma, yayınlama, yazma, onaylar ve güvenilir yetenekleri kontrol eder.
  • Web uç noktası, ilk kullanımda kör güveni önlemek için SSH ana bilgisayar anahtarını TLS üzerinden yayınlayabilir; SSH kullanıcı ve ana bilgisayar sertifikaları da desteklenir.

Tam güvenlik değerlendirmesi için SECURITY.md dosyasına bakın.

Lisans

MIT — Adil Karim

OpenLore, üçüncü taraf açık kaynak bileşenlerini içerir. Bunların lisansları ve gerekli bildirimler, assets/legal/THIRD_PARTY_NOTICES.md içinde listelenir; tam lisans metinleri assets/legal/licenses/ içindedir. Bunlar ikili dosyaya gömülüdür ve çalışan hizmet tarafından /legal adresinde sunulur.