OpenLore

by aakarim (community) · Claude Desktop, Claude Code, OpenCode, любой MCP-клиент, Linux, macOS, Windows

MCP MCP Servers Open Source v0.5.0 · 19.08.2026 активный

Минималистичная расширяемая agent-native база знаний, поддерживающая общий контекст актуальным и инспектируемым.

v0.5.0
19.08.2026 current

Установка
# Установка через 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/)
go build -o my-docs ./cmd/openlore
показать оригинал переведено ИИ

📜 OpenLore

Release Go Reference

Спонсор проекта: Oiya

Предоставляйте свою документацию ИИ-агентам по SSH.

OpenLore — это минималистичная, расширяемая, агент-ориентированная база знаний, которая поддерживает общий контекст актуальным и доступным для проверки.


О проекте

ИИ-агенты для программирования уже умеют исследовать файлы с помощью ls, cat, grep, find, конвейеров и циклов оболочки. OpenLore предоставляет им тот же самый интерфейс через SSH, но вместо реальной машины в его основе лежит ваша документация.

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

Проект начинается как сервер документации из одного бинарного файла, без конфигурации, только для чтения. Когда вам понадобится живая база знаний, вы можете добавить доступ с разграничением по личности, контролируемую публикацию, атомарную запись, валидацию и подтверждение человеком — не меняя того, как агенты читают и перемещаются по содержимому.

Хранение и извлечение Markdown

Помещайте документацию, runbook'и, контекст проектов или заметки, созданные агентами, в обычные файлы Markdown. Здесь нет конвейера загрузки: укажите OpenLore на каталог, и он будет напрямую отдавать существующую иерархию. Организуйте документы с помощью папок, связывайте их стандартными ссылками Markdown и группируйте в доксеты (docsets), когда разным людям или агентам нужен разный доступ. По умолчанию OpenLore работает только на чтение; включите запись, если хотите, чтобы агенты также могли создавать и обновлять Markdown.

Демонстрация импорта навыков OpenLore

Быстрый старт

Самый быстрый путь — позволить вашему агенту настроить 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"

По умолчанию при этом запускаются:

  • SSH на localhost:2222
  • веб-интерфейс для людей на http://localhost:8080
  • MCP поверх HTTP на http://localhost:8080/mcp

См. раздел Установка, чтобы узнать о других способах установки и упаковки OpenLore.

Возможности

  • Агент-ориентированный поиск — Агенты используют инструменты оболочки и паттерны композиции, которые они уже понимают, вместо изучения специального API поиска.
  • Одна поверхность знаний, несколько транспортов — Отдавайте одну и ту же виртуальную файловую систему через SSH, SFTP/SSHFS, MCP и удобный для человека веб-интерфейс.
  • Живые знания под управлением — Держите содержимое только для чтения, разрешите публикацию с ограничениями или включите полную запись для каждого доксета. Записи атомарны, учитывают конфликты и могут требовать подтверждения человеком.
  • Представления с разграничением по личности — Давайте каждому человеку или агенту только нужные ему доксеты, с ролевыми правами ro, publish и rw, псевдонимами путей и приватными домашними каталогами.
  • Безопасность по построению — Оболочка — это интерпретатор Go в памяти, а не реальная системная оболочка операционной системы. В обычной сессии нет выхода из оболочки (shell escape), произвольного выполнения процессов или фонового доступа к сети.
  • Переносимые пакеты знаний — Встраивайте документацию в самодостаточный бинарный файл, собирайте кроссплатформенные пакеты с помощью GitHub Action или упаковывайте их как настольное расширение MCP.
  • Структурированные знания без нового языка запросов — Просматривайте frontmatter как NDJSON с помощью lore meta, выполняйте запросы через jq и проверяйте пакеты Google Open Knowledge Format (OKF) и Agent Skills непосредственно рядом с путём записи.
  • Расширяемая политика и обработка — Плагины могут добавлять валидацию, права доступа, промежуточный слой чтения/записи, метаданные и пост-коммитную обработку, сохраняя тот же интерфейс файловой системы.

Сценарии использования

  • Репозиторий непрерывного обучения — храните сессии и полученные выводы на одном общем сервере. Добавьте метрики, чтобы иметь возможность оптимизировать процессы. Позвольте агентам обмениваться выводами друг с другом, сохраняя изоляцию пользователей.
  • Репозиторий артефактов команды — делитесь созданными вами документами markdown, HTML, JSON, Excel и т. д., сохраняя контроль доступа. Гораздо естественнее, чем git, и более агент-ориентированно, чем Confluence/Notion.
  • Документация для агентов программирования — Поместите внутреннюю документацию API, runbook'и, контекст продукта и заметки по архитектуре за привычный, дружественный к grep интерфейс.
  • Общая «живая» память для команд агентов — Предоставьте агентам отдельные или общие наборы документов (docsets), чтобы они могли публиковать находки, передавать работу друг другу и накапливать долговременный контекст между сессиями.
  • Публичный сайт документации - добавьте любые файлы в ваш публичный набор документов, включите публичный доступ, и они будут показаны любому агенту, который наткнётся на ваш сайт. Улучшает AEO/GEO без необходимости редактировать существующую документацию.
  • Обмен навыками — Публикуйте Agent Skills в общие коллекции, чтобы каждый авторизованный агент мог находить и использовать одни и те же контролируемые процедуры.
  • Репозиторий Agent Plugins — Закрепляйте версии репозиториев Agent Plugins с GitHub и предоставляйте их агентам вашей команды. Навыки, упакованные по открытому стандарту, автоматически остаются актуальными.
  • Контролируемое пополнение знаний — Позвольте участникам публиковать материалы во входящие папки (inboxes), оставляя чувствительные пути для утверждающих и предотвращая случайные перезаписи.
  • Удалённый просмотр артефактов агентов — Открывайте отчёты, логи, скриншоты и сгенерированные файлы через браузер или SSH без создания собственного просмотрщика артефактов или предоставления доступа к машине агента.
  • Рабочие пространства для конкретных идентичностей — Монтируйте приватный домашний каталог для каждого агента плюс общее знание команды — всё через один сервер и одну модель авторизации.
  • Переносимое знание о клиентах или проектах — Поставляйте версионированный исполняемый файл со встроенной документацией или распространяйте то же самое знание как расширение рабочего стола MCPB.
  • Валидируемые каталоги знаний — Обеспечивайте соблюдение соглашений frontmatter и бандлов, дёшево проверяйте метаданные и останавливайте некорректные знания ещё на этапе приёма.

Как это работает

OpenLore построен на базе Wish для SSH-транспорта. Соединение обрабатывается полностью на виртуальной файловой системе:

  1. Аутентификация — подключайтесь без ключей или сопоставьте SSH-ключ, сертификат, passkey или OAuth-логин с идентичностью.
  2. Формирование представления — монтируйте только те наборы документов и пути, которые разрешены этой идентичности.
  3. Исследование — выполняйте shell-команды, реализованные как чистые функции Go поверх этого представления, или используйте эквивалентный инструмент MCP shell.
  4. Безопасное пополнение — если запись включена, авторизуйте и проверьте изменение целого файла перед его атомарной фиксацией или отправкой на утверждение.

OAuth-клиенты используют делегированные идентичности, поэтому долговременная история происхождения записей отличает прямую работу от имени adil от работы, выполненной как adil/claude@claude.ai. Делегаты не могут наследовать больше полномочий, чем их принципал, и могут быть ограничены списками запретов по наборам документов и возможностям. Клиенты CIMD дополнительно могут аутентифицироваться с помощью метаданных, размещённых у поставщика, и private_key_jwt; см. Аутентифицированные OAuth-клиенты.

Обычная оболочка не может вызывать bash, exec, curl или произвольные процессы хоста. Встроенная документация всегда доступна только для чтения. Явно доверенным идентичностям можно предоставить асинхронную обработку с узкой областью действия через возможность spawn.

Контролируемая запись

По умолчанию OpenLore работает только на чтение. Развёртывания с поддержкой записи сохраняют единый путь записи, управляемый политиками, для перенаправлений, добавления (append), 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

Запись выполняется как атомарная замена целого объекта. Защита compare-and-swap по умолчанию отклоняет устаревшие правки, разрешения наборов документов ограничивают цель, а выбранные пути могут создавать проверяемые наборы изменений в /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

См. Способы использования OpenLore для MCP stdio, упаковки MCPB для рабочего стола, SSHFS и использования библиотеки Go.

HTTP-загрузка во входящие

Настройте inbox набора документов и роль с правом publish, затем создайте учётные данные для существующей идентичности (конфигурация сервера должна указывать

auth_file, чтобы CLI мог проверить его):

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} принимает bearer-учётные данные или HMAC точного тела запроса с использованием X-OpenLore-Token-Id и X-OpenLore-Signature. Токены доступа OAuth используются только для POST/GET /inbox/tokens и DELETE /inbox/tokens/{id}; учётные данные inbox являются отдельными и могут быть отозваны. См. Конфигурация и идентификация.

Документация

Руководство Содержание
Способы использования OpenLore SSH, MCP, веб, SSHFS, встроенные исполняемые файлы, GitHub Action, MCPB и использование в качестве библиотеки
Справочник команд Полный справочник по shell, интроспекции, публикации, синтаксису, командам CLI и флагам
Конфигурация и идентификация openlore.yml, аутентификация, роли, наборы документов (docset), псевдонимы, домашние каталоги и проверка хоста
Федерация удостоверений рабочей нагрузки Аутентификация CI и агентов с помощью кратковременных внешних токенов идентичности
Написание и публикация Режимы записи, входящие ящики (inbox), обработка конфликтов, одобрения и задания
Плагины и форматы знаний Установка плагинов, интерфейсы, валидация OKF, lore validate и lore meta
Внутреннее устройство системы записи Слои файловой системы, шов записи (write seam), наборы изменений (changeset), хуки и асинхронные задания
Оценка безопасности Модель угроз и свойства безопасности

Безопасность

  • Команды выполняются в интерпретаторе на чистом Go, а не через os/exec.
  • Виртуальная файловая система очищает пути и следит за соблюдением границ наборов документов (docset).
  • Разрешённые шаблоны файлов и игнорируемые каталоги не позволяют секретам попасть в область видимости.
  • RBAC управляет чтением, публикацией, записью, одобрениями и доверенными возможностями.
  • Веб-эндпоинт может публиковать SSH-ключ хоста через TLS, чтобы избежать слепого доверия при первом использовании; также поддерживаются сертификаты пользователей и хостов SSH.

Полную оценку безопасности см. в SECURITY.md.

Лицензия

MIT — Adil Karim

OpenLore включает сторонние компоненты с открытым исходным кодом. Их лицензии и обязательные уведомления перечислены в assets/legal/THIRD_PARTY_NOTICES.md, полные тексты лицензий находятся в assets/legal/licenses/. Они встроены в бинарный файл и предоставляются работающим сервисом по адресу /legal.

Войдите, чтобы оставить комментарий