OpenLore

公式

エージェントネイティブなナレッジサーバー。SSHおよびMCPを介してAIエージェントにドキュメントを提供し、アイデンティティスコープのビュー、管理された書き込み、構造化メタデータを備えています。単一バイナリ、設定不要。

OpenLore MCPで何ができますか?

  • 共有知識ベースを提供 — OpenLoreをMarkdownフォルダに向け、cat、grep、findなどの使い慣れたツールを使って、MCPやSSH経由で任意のエージェントが同じファイルを読めるようにします。

  • IDごとにアクセスを制限 — 各人またはエージェントに、特定のドキュメントセットへの読み取り専用、公開、または読み書きアクセスを付与し、プライベートホームディレクトリとパスエイリアスを設定します。

  • 管理された受信トレイに公開 — エージェントが既存のコンテンツを編集できないようにしつつ、新しいドキュメントを受信トレイに追加できるようにし、アトミックで競合を認識した書き込みを実現します。

  • 構造化メタデータをクエリ — lore metaでフロントマターをNDJSONとして検査し、jqでフィルタリングして、メタデータに基づいてドキュメントを検索します。

  • ドキュメントをポータブルバイナリに埋め込む — ドキュメントを埋め込んだ自己完結型の実行可能ファイルを構築し、/docsで読み取り専用として提供して、任意のチームに配布します。

ドキュメント

📜 OpenLore

Release Go Reference

aakarim%2FOpenLore | Trendshift

Sponsored by Oiya

チームのすべてのAIエージェントに、同じ最新の知識を提供します。

OpenLoreをMarkdownフォルダーに向けるだけで、Claude Code、Codex、Cursor、CIジョブなど、チームのすべてのエージェントが同じファイルを読み取ります。エージェントは、cat、grep、findなど、すでに知っているツールを使用します。誰が何を閲覧・変更できるかは、あなたが決定します。

Deploy to Render
ワンクリックでホスト型サーバーを利用できます。OpenLoreをRenderにデプロイを参照してください。

Claude Code, Codex and a CI job connect to one OpenLore server, which checks each identity's access and serves the same folder of Markdown

クイックスタート

フォルダーをインストールして提供します:

brew install --cask aakarim/tap/lore
openlore ./docs

SSHはポート2222で実行されます。Webビューと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をリポジトリに置くだけではだめなのか?

1つのリポジトリで1つのエージェントだけを使う場合は、それで問題ありません。

OpenLoreは、複数のエージェント、リポジトリ、または人が同じ知識を必要とし、誰が何を読み取り、書き込み、公開できるかを指定する必要がある場合に使用します。ファイルを一度更新すると、すべてのエージェントが次回の読み取り時に新しいバージョンを確認できます。

ベクターデータベース、取り込みパイプライン、SDKはありません。知識は通常のMarkdownのままです。

ガイド

機能

  • エージェントネイティブな取得 — エージェントは、独自の取得APIを学習する代わりに、すでに理解しているシェルツールと構成パターンを使用します。
  • 1つの知識サーフェス、複数のトランスポート — 同じ仮想ファイルシステムを、SSH、SFTP/SSHFS(VS Codeでの直接閲覧・編集を含む)、MCP、および人間に優しいWebビューで提供します。
  • ライブで管理された知識 — コンテンツを読み取り専用に保ち、スコープ付き公開を許可するか、ドキュメントセットごとに完全な書き込みを有効にします。書き込みはアトミックで、競合を認識し、コミット前に検証されます。
  • IDスコープ付きビュー — 各人またはエージェントに必要なドキュメントセットのみを、ロールベースのro、publish、rw権限、パスエイリアス、プライベートホームディレクトリとともに提供します。
  • 構造的に安全 — シェルはメモリ内のGoインタープリターであり、実際のオペレーティングシステムのシェルではありません。通常のセッションでは、シェルエスケープ、任意のプロセス実行、または周辺ネットワークアクセスはありません。
  • ポータブルな知識バンドル — ドキュメントを自己完結型バイナリに埋め込み、GitHub Actionでクロスプラットフォームバンドルを構築するか、デスクトップMCP拡張機能としてパッケージ化します。
  • 新しいクエリ言語なしの構造化知識 — lore metaでフロントマターをNDJSONとして検査し、jqでクエリを実行し、GoogleのOpen Knowledge Format (OKF)バンドルとAgent Skillsを書き込みパスに近い場所で検証します。
  • 拡張可能なポリシーと処理 — プラグインは、同じファイルシステムインターフェースを維持しながら、検証、権限、読み取り/書き込みミドルウェア、メタデータ、およびコミット後処理を追加できます。

ユースケース

  • 継続的学習リポジトリ — セッションと学習内容を1つの共有サーバーに保存します。最適化のためのメトリクスを追加します。ユーザー分離を維持しながら、エージェントが学習内容を相互に共有できるようにします。
  • チーム成果物リポジトリ — アクセス制御を維持しながら、作成したMarkdown、HTML、JSON、Excelなどのドキュメントを共有します。gitよりもはるかに自然で、Confluence/Notionよりもエージェントネイティブです。
  • コーディングエージェント向けドキュメント — 内部APIドキュメント、ランブック、製品コンテキスト、アーキテクチャノートを、使い慣れたgrep可能なインターフェースの背後に配置します。
  • エージェントチーム向けの共有ライブメモリ — エージェントに個別または共有のドキュメントセットを提供し、調査結果の公開、作業の引き継ぎ、セッションを超えた永続的なコンテキストの蓄積を可能にします。
  • 公開ドキュメントサイト — 公開ドキュメントセットにファイルを追加し、公開アクセスを有効にすると、サイトにアクセスしたエージェントに表示されます。既存のドキュメントを編集せずにAEO/GEOを改善します。
  • スキル共有 — Agent Skillsを共有コレクションに公開し、承認されたすべてのエージェントが同じ管理された手順を発見して使用できるようにします。
  • エージェントプラグインリポジトリ — GitHubからAgent Pluginsリポジトリをバージョン固定し、チームのエージェントに提供します。オープンスタンダードでパッケージ化されたスキルは自動的に最新の状態に保たれます。
  • 管理された知識貢献 — 既存のドキュメントをメンテナー用に予約し、誤った上書きを防ぎながら、貢献者がインボックスに公開できるようにします。
  • 成果物リポジトリ — カスタム成果物ビューアーを構築したり、エージェントのマシンへのアクセスを許可したりせずに、レポート、ログ、スクリーンショット、生成ファイルをブラウザーまたはSSH経由で保存および公開します。
  • ID固有のワークスペース — 各エージェントにプライベートホームと共有チーム知識をマウントし、すべてを1つのサーバーと1つの認可モデルで管理します。
  • ポータブルな顧客またはプロジェクト知識 — 関連ドキュメントを埋め込んだバージョン管理された実行可能ファイルを出荷するか、同じ知識を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

書き込みはオブジェクト全体のアトミックスワップです。比較とスワップによる保護は、デフォルトで古い編集を拒否し、ドキュメントセットの権限がターゲットを制約し、プラグインはコミット前に書き込みを検証または延期できます。

ユーザー向けのセットアップについては書き込みと公開を、実装モデルについては書き込みシステムの内部を参照してください。

インストール

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リリースに固定された薄い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.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ファイルは、イメージ、永続ボリューム、ポート配線を提供します。プロセス起動時に構成をシードまたは変更することはありません。

カスタマイズされたリポジトリなしで迅速なホスト型サーバーを使用するには、Deploy to Renderボタンを使用します。RailpackおよびFlyファイルとは異なり、その起動スクリプトは、初回起動時に空のディスクにスターターのopenlore.ymlとlore.jsonを書き込みます。RenderはHTTPS、MCP、Webビューのみを提供します。OpenLore SSH用のパブリックTCPイングレスはありません。

RailwayはSSH TCPプロキシにパブリックホスト名とポートを割り当てます。標準のSSHポート22には、外部のraw TCPロードバランサーが必要です。Fly.ioは、専用アドレスでパブリックポート22をOpenLoreの内部ポート2222にマッピングできます。raw SSHにはホスト名またはSNIルーティングがないため、1つのリスナーがポート22で複数のドメインをルーティングすることはできません。

コンテナワークフローはmainからlatestを公開します。リリースはVERSION、vVERSION、メジャー、マイナーイメージタグも公開します。

ドキュメント

同じページが同じグループで、openlore.sh/docsに公開されています。

はじめに

ページ内容
OpenLoreとは1ページで提供、接続、スコープ、管理、監視
変更ログ現在のバージョン、リリースノート、互換性ノート、バージョン管理されたドキュメント

スタート

ページ内容
クイックスタートOpenLoreをインストールし、フォルダを提供し、エージェントを接続する
Claude CodeMCP経由でClaude Codeを接続し、参照範囲を制限する
CodexMCP経由でCodexを接続する
CursorMCP経由でCursorを接続する
OpenCodeMCP経由でOpenCodeを接続する
SSH経由の任意のエージェントSSH経由でコーディングエージェントやCIジョブを接続し、IDを付与する

コンセプト

OpenLoreの仕組み:ドキュメントセット、トランスポート、ID、書き込み、ルール、および観測。

ページ内容
ドキュメントセットドキュメントセットとは何か、アクセスがその周りで整理される理由、ネスト、許可、エイリアス、フェイルクローズ検証の仕組み
トランスポートSSH、SFTP、MCP、JSON API、Webが1つのファイルシステム、MCPツール、コマンド結果、セッション、命令コマンドを共有する方法
認証認証の姿勢、SSHキー、証明書、パスキー、OAuthトークン、インボックスの資格情報がID、ロール、ドキュメントセット、エイリアス、ホーム、ワークロードIDフェデレーションに解決される方法
書き込みと公開書き込みモード、インボックス、競合処理、成功した書き込みがチェックするものとしないもの、ジョブ
フォルダルール.lore/config.yaml および lore.json ルール、レイヤリング、権限、拒否メッセージ、成長制限
プラグインとフォーマットプロバイダーインターフェース、Open Knowledge Format検証、lore validate、lore meta、Agent Skillsプラグイン
ダッシュボードとメトリクスダッシュボード認証、ファクトとアクティビティ、ファイルビューア

ハウツー

タスクのウォークスルー。

ページ内容
OpenLoreの使用方法SSH、HTTPおよびstdio上のMCP、Webビュー、SSHFS、埋め込みバイナリ、GitHub Action、MCPB、ライブラリ使用法のセットアップ
サーバーの設定openlore.yml の作成、埋め込み設定とフラグに対する優先順位、分析、デバッグログ
エージェントにインボックスへの公開を許可するエージェントが他のものを編集せずに貢献を受け入れる
エディタから閲覧・編集するローカルプロジェクトミラーなしでのVS CodeおよびSFTPエディタの直接設定
headlong / shellmで実行するheadlongのshellmエンジンからSSH経由でOpenLoreを使用する(ハウスキーピングスキルを含む)
ソースからビルドするWeb UIとバイナリを自分でビルドするか、Web UIなしでビルドする
OpenLoreをRenderにデプロイするワンクリックRenderデプロイ、初回パスキーサインイン、アップグレード、カスタムドメイン

リファレンス

参照資料:コマンド、キー、エンドポイント、インターフェース、内部構造。

ページ内容
コマンドリファレンス完全なシェル、イントロスペクション、公開、構文、CLIコマンド、フラグのリファレンス
openlore.ymlリファレンスopenlore.yml が受け入れるすべてのキーの生成リファレンス
ルール標準ライブラリ組み込みルールメンバーとそのパラメータの生成リファレンス
HTTPインボックスAPIBearerまたはHMAC資格情報を使用したPOST /inbox/{docset}、およびトークンエンドポイント
OAuthクライアントCIMDクライアントID、private_key_jwt、mTLS裏付け、署名キーのローテーション
書き込みシステム内部ファイルシステムレイヤリング、書き込みシーム、アドミッションミドルウェア、非同期ジョブ
ダッシュボードのビルドフロントエンドビルドとバックエンドのみのGoビルド
セキュリティ評価脅威モデルとセキュリティ特性

セキュリティ

  • コマンドはos/execではなく、純粋なGoインタープリタで実行されます。
  • 仮想ファイルシステムはパスをクリーンアップし、ドキュメントセットの境界を強制します。
  • 許可されたファイルパターンと無視されるディレクトリにより、シークレットがビューから除外されます。
  • RBACは読み取り、公開、書き込み、承認、信頼できる機能を制御します。
  • Webエンドポイントは、初回使用時のブラインドトラストを回避するために、TLS経由でSSHホストキーを公開できます。SSHユーザー証明書とホスト証明書もサポートされています。

完全なセキュリティ評価については、SECURITY.md を参照してください。

ライセンス

Apache License 2.0 — Copyright © 2026 Adil Karim

OpenLoreにはサードパーティのオープンソースコンポーネントがバンドルされています。それらのライセンスと必要な通知は assets/legal/THIRD_PARTY_NOTICES.md に記載されており、 完全なライセンステキストは assets/legal/licenses/ にあります。これらは バイナリに埋め込まれ、実行中のサービスによって /legal で提供されます。