OpenLore
официальныйАгент-нативный сервер знаний. Предоставляет документацию ИИ-агентам через SSH и MCP с представлениями, ограниченными по идентичности, управляемой записью и структурированными метаданными. Один бинарный файл, без конфигурации.
Что можно делать с OpenLore MCP?
-
Serve a shared knowledge base — Point OpenLore at a folder of Markdown and let any agent read the same files over MCP or SSH using familiar tools like
cat,grep, andfind. -
Scope access by identity — Grant each person or agent read-only, publish, or read-write access to specific docsets, with private home directories and path aliases.
-
Publish into governed inboxes — Let agents contribute new documents to an inbox without allowing them to edit existing content, with atomic, conflict-aware writes.
-
Query structured metadata — Inspect frontmatter as NDJSON with
lore metaand filter it withjqto find documents by their metadata. -
Embed docs in a portable binary — Build a self-contained executable with documentation embedded, served read-only at
/docsfor distribution to any team.
Документация
Укажите OpenLore на папку с Markdown-файлами, и каждый агент вашей команды будет читать одни и те же файлы — будь то Claude Code, Codex, Cursor или CI-задача. Агенты используют уже знакомые им инструменты, такие как cat, grep и find. Вы решаете, кто может видеть и изменять содержимое.
Хостинг в один клик. См. Deploy OpenLore to Render.
Быстрый старт
Установите и запустите сервер для папки:
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? См. Quickstart для Linux и Windows.
Зачем хранить Markdown в репозитории?
Для одного агента в одном репозитории — да, так и делайте.
OpenLore предназначен для случаев, когда нескольким агентам, репозиториям или людям нужны одинаковые знания, и вам нужно контролировать, кто может читать, записывать или публиковать содержимое. Обновите файл один раз — и каждый агент увидит новую версию при следующем чтении.
Здесь нет векторной базы данных, конвейера обработки или SDK. Ваши знания остаются обычными Markdown-файлами.
Руководства
- Что такое OpenLore
- Claude Code
- Codex
- Cursor
- OpenCode
- Любой агент через SSH
- Позвольте агенту публиковать во входящие
- Развертывание на Render
- Вся документация
Возможности
- Поиск, ориентированный на агентов — Агенты используют уже знакомые им shell-инструменты и паттерны композиции вместо изучения специального API поиска.
- Единая поверхность знаний, несколько транспортов — Предоставьте одну и ту же виртуальную файловую систему через SSH, SFTP/SSHFS (включая прямое просмотр и редактирование в VS Code), MCP и удобный веб-интерфейс для людей.
- Живые управляемые знания — Держите контент только для чтения, разрешайте ограниченную публикацию или включайте полную запись для каждого набора документов. Записи атомарны, учитывают конфликты и проверяются перед фиксацией.
- Представления с ограничением по идентичности — Дайте каждому человеку или агенту только те наборы документов, которые ему нужны, с ролевыми правами
ro,publishиrw, псевдонимами путей и личными домашними каталогами. - Безопасность по построению — Shell — это интерпретатор Go в памяти, а не настоящая операционная система. Нет escape-обхода shell, произвольного выполнения процессов или доступа к сети в обычной сессии.
- Портативные пакеты знаний — Встраивайте документацию в автономный бинарный файл, создавайте кроссплатформенные пакеты с помощью GitHub Action или упаковывайте их как настольное MCP-расширение.
- Структурированные знания без нового языка запросов — Просматривайте frontmatter как NDJSON с помощью
lore meta, запрашивайте его черезjqи проверяйте пакеты Google Open Knowledge Format (OKF) и Agent Skills непосредственно у пути записи. - Расширяемая политика и обработка — Плагины могут добавлять проверку, права, middleware для чтения/записи, метаданные и пост-коммитную обработку, сохраняя тот же интерфейс файловой системы.
Варианты использования
- Репозиторий непрерывного обучения — храните сессии и наработки на одном общем сервере. Добавляйте метрики для оптимизации. Позволяйте агентам обмениваться наработками, сохраняя изоляцию пользователей.
- Репозиторий командных артефактов — делитесь созданными документами Markdown, HTML, JSON, Excel и другими, сохраняя контроль доступа. Гораздо естественнее, чем git, и более ориентировано на агентов, чем Confluence/Notion.
- Документация для агентов-разработчиков — Разместите внутреннюю документацию по API, runbook'и, контекст продукта и архитектурные заметки за знакомым, доступным для поиска интерфейсом.
- Общая живая память для команд агентов — Дайте агентам отдельные или общие наборы документов, чтобы они могли публиковать результаты, передавать работу и накапливать долговременный контекст между сессиями.
- Публичный сайт документации — добавьте любые файлы в публичный набор документов, включите публичный доступ, и они будут показаны любому агенту, который наткнется на ваш сайт. Улучшает AEO/GEO без необходимости редактировать существующую документацию.
- Обмен навыками — Публикуйте Agent Skills в общие коллекции, чтобы каждый авторизованный агент мог находить и использовать одни и те же управляемые процедуры.
- Репозиторий плагинов для агентов — Закрепите версии репозиториев Agent Plugins с GitHub и предоставляйте их агентам вашей команды. Навыки, упакованные в открытом стандарте, автоматически остаются актуальными.
- Управляемое внесение знаний — Позвольте участникам публиковать во входящие, оставляя существующие документы за модераторами и предотвращая случайные перезаписи.
- Репозиторий артефактов — Храните и предоставляйте отчеты, журналы, скриншоты и сгенерированные файлы через браузер или SSH без создания собственного просмотрщика артефактов или предоставления доступа к машине агента.
- Рабочие пространства с привязкой к идентичности — Смонтируйте личный домашний каталог для каждого агента плюс общие командные знания — все через один сервер и одну модель авторизации.
- Портативные знания для клиентов или проектов — Поставляйте версионируемый исполняемый файл со встроенной документацией или распространяйте те же знания как настольное расширение MCPB.
- Проверенные каталоги знаний — Обеспечьте соблюдение соглашений по frontmatter и пакетам, дешево просматривайте метаданные и останавливайте некорректные знания на этапе приема.
Как это работает
OpenLore построен на Wish для SSH-транспорта. Соединение полностью обрабатывается через виртуальную файловую систему:
- Аутентификация — подключитесь без ключа или сопоставьте SSH-ключ, сертификат, passkey или OAuth-вход с идентичностью.
- Компоновка представления — смонтируйте только те наборы документов и пути, которые разрешены этой идентичности.
- Исследование — выполняйте shell-команды, реализованные как чистые функции Go, в этом представлении или используйте эквивалентный MCP-инструмент
shell. - Безопасный вклад — если запись включена, авторизуйте и проверяйте изменение всего файла перед атомарной фиксацией.
OAuth-клиенты используют делегированные идентичности, поэтому надежная запись о происхождении отличает прямую работу от имени adil от работы, выполненной как adil/claude@claude.ai. Делегаты не могут получить больше прав, чем их принципал, и могут быть ограничены списками запретов по наборам документов и возможностям. CIMD-клиенты могут дополнительно аутентифицироваться с помощью метаданных, размещенных у вендора, и private_key_jwt; см. Authenticated OAuth Clients.
Обычный shell не может вызывать bash, exec, curl или произвольные процессы хоста. Встроенная документация всегда доступна только для чтения. Явно доверенным идентичностям может быть предоставлена узко ограниченная асинхронная обработка через возможность 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
Записи — это атомарные замены всего объекта. Защита сравнения и замены по умолчанию отклоняет устаревшие правки, права набора документов ограничивают цель, а плагины могут проверять или откладывать запись до ее фиксации.
См. Writing and publishing для настройки со стороны пользователя и Write system internals для модели реализации.
Установка
См. Quickstart для релизов Homebrew, Linux и Windows, а также информацию о том, какие установки включают панель управления. Чтобы собрать OpenLore самостоятельно, см. Building from source.
Встраивание документации в бинарный файл
Поместите документацию в 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
См. Ways to use OpenLore для прямого редактирования в VS Code, MCP stdio, настольной упаковки MCPB, SSHFS и использования библиотеки Go.
Создание настраиваемого развертывания
Используйте встроенный навык setup, чтобы создать <team>-lore — небольшой репозиторий, принадлежащий клиенту, содержащий openlore.yml, тонкий Containerfile, привязанный к официальному релизу OpenLore, и артефакты развертывания. Он создает работающий локальный сервер и проверяет HTTP, MCP, аутентифицированный SSH, запись и сохранение данных перед развертыванием:
ssh openlore.sh setup | amp
Сгенерированный репозиторий хранит начальную политику lore.json и файлы, видимые через SSH, в gitignored-каталоге .local/. Первое развертывание инициализирует пустой постоянный том из этого состояния. Корневой openlore.yml остается источником истины Git/IaC и развертывается отдельно в /var/lib/openlore/config/openlore.yml; он не встраивается в образ. Последующие правки lore.json и файловой системы на сервере являются авторитетными и никогда не перезаписываются обновлениями образа.
Дополнительные команды инструкций поддерживают полный жизненный цикл:
onboardingдобавляет начальные идентичности, роли, домашние каталоги и папки локально;deployвыбирает Fly.io, Railway, AWS, Google Cloud, Azure, DigitalOcean или настраиваемое развертывание и проверяет общий контракт постоянства/сети;upgradeподготавливает только изменение версии привязанного базового образа, чтобы существующий CD мог его развернуть.
Развертывания у провайдеров требуют HTTPS/MCP, аутентифицированного OpenLore SSH, административного доступа к shell и постоянного тома /var/lib/openlore. Где провайдер это поддерживает, развертывание настраивает публичный порт 22 для пересылки на порт OpenLore 2222. В противном случае оно сообщает назначенный порт и рекомендует внешнюю систему TCP-пересылки.
Опубликованный контейнер содержит только OpenLore. Он намеренно не содержит политики онбординга или конфигурации сервера. Перед запуском службы развертывание должно поместить openlore.yml и lore.json в постоянный каталог конфигурации и выполнить:
./out --config /var/lib/openlore/config/openlore.yml
Это делает конфигурацию независимо развертываемой: простое развертывание может скопировать openlore.yml на том, а Kubernetes может спроецировать тот же файл из ConfigMap. Используйте навык deploy для Fly.io, Railway, AWS, Google Cloud, Azure, DigitalOcean или настраиваемой инфраструктуры. Файлы Railpack и Fly в репозитории обеспечивают образ, постоянный том и проброс портов; они не заполняют и не изменяют конфигурацию при запуске процесса.
Для быстрого хостинга без настраиваемого репозитория используйте кнопку Deploy to Render. В отличие от файлов Railpack и Fly, его стартовый скрипт записывает стартовый openlore.yml и lore.json на пустой диск при первой загрузке. Render предоставляет только HTTPS, MCP и веб-интерфейс; у него нет публичного TCP-входа для OpenLore SSH.
Railway назначает своему SSH TCP-прокси публичное имя хоста и порт. Стандартный SSH-порт 22 требует внешнего raw TCP-балансировщика. Fly.io может сопоставить публичный порт 22 с внутренним портом OpenLore 2222 с выделенным адресом. Raw SSH не имеет маршрутизации по имени хоста или SNI, поэтому один слушатель не может маршрутизировать несколько доменов на порту 22.
Контейнерный рабочий процесс публикует latest из main; релизы также публикуют теги образов VERSION, vVERSION, major и minor.
Документация
Те же страницы, в тех же группах, опубликованы на openlore.sh/docs.
Введение
| Страница | Содержимое |
|---|---|
| Что такое OpenLore | Предоставление, подключение, ограничение, управление и наблюдение на одной странице |
| Changelog | Текущая версия, примечания к выпуску, примечания о совместимости и версионированная документация |
Начало работы
| Страница | Содержание |
|---|---|
| Краткое руководство | Установите OpenLore, раздайте папку и подключите агента |
| Claude Code | Подключите Claude Code через MCP и ограничьте область его видимости |
| Codex | Подключите Codex через MCP |
| Cursor | Подключите Cursor через MCP |
| OpenCode | Подключите OpenCode через MCP |
| Любой агент через SSH | Подключите агента разработки или CI-задачу через SSH и назначьте ему идентичность |
Концепции
Как работает OpenLore: наборы документов, транспорты, идентичность, запись, правила и наблюдение.
| Страница | Содержание |
|---|---|
| Наборы документов | Что такое набор документов, почему доступ организован вокруг них, и как работают вложенность, гранты, псевдонимы и проверка с закрытием при ошибке |
| Транспорты | Как SSH, SFTP, MCP, JSON API и веб-интерфейс используют одну файловую систему, инструменты MCP, результаты команд, сеансы и командные инструкции |
| Аутентификация | Модель аутентификации, как ключи SSH, сертификаты, пароли-ключи, токены OAuth и учётные данные входящих сообщений сопоставляются с идентичностью, ролями, наборами документов, псевдонимами, домашними каталогами и федерацией рабочих идентичностей |
| Запись и публикация | Режимы записи, входящие сообщения, обработка конфликтов, что проверяет и не проверяет успешная запись, и задания |
| Правила папок | Правила .lore/config.yaml и lore.json, уровни, разрешения, сообщения об отклонении и ограничения роста |
| Плагины и форматы | Интерфейсы провайдеров, проверка формата Open Knowledge, lore validate, lore meta и плагин Agent Skills |
| Панель управления и метрики | Аутентификация панели управления, факты против активности и просмотрщик файлов |
Как сделать
Пошаговые инструкции.
| Страница | Содержание |
|---|---|
| Способы использования OpenLore | Настройка SSH, MCP через HTTP и stdio, веб-просмотра, SSHFS, встроенных бинарных файлов, GitHub Action, MCPB и использования библиотеки |
| Настройка сервера | Создание openlore.yml, приоритет над встроенной конфигурацией и флагами, аналитика и отладочное журналирование |
| Разрешить агенту публиковать во входящие | Принимайте вклад от агента, не позволяя ему редактировать что-либо ещё |
| Просмотр и редактирование из редактора | Прямая настройка VS Code и SFTP-редактора без локального зеркала проекта |
| Запуск через headlong / shellm | Использование OpenLore через SSH из движка shellm от headlong, включая его навык обслуживания |
| Сборка из исходного кода | Соберите веб-интерфейс и бинарный файл самостоятельно или соберите без веб-интерфейса |
| Развёртывание OpenLore на Render | Развёртывание на Render в один клик, первый вход с паролем-ключом, обновления и пользовательские домены |
Справочник
Справочные материалы: команды, ключи, конечные точки, интерфейсы и внутреннее устройство.
| Страница | Содержание |
|---|---|
| Справочник команд | Полный справочник по оболочке, интроспекции, публикации, синтаксису, командам CLI и флагам |
| Справочник openlore.yml | Сгенерированный справочник по каждому ключу, который принимает openlore.yml |
| Стандартная библиотека правил | Сгенерированный справочник по встроенным членам правил и их параметрам |
| HTTP API входящих сообщений | POST /inbox/{docset} с учётными данными bearer или HMAC и конечные точки токенов |
| Клиенты OAuth | Идентичность клиента CIMD, private_key_jwt, подтверждение mTLS и ротация ключей подписи |
| Внутреннее устройство системы записи | Уровни файловой системы, шов записи, промежуточное ПО допуска и асинхронные задания |
| Сборка панели управления | Сборка фронтенда и сборка Go только для бэкенда |
| Оценка безопасности | Модель угроз и свойства безопасности |
Безопасность
- Команды выполняются в интерпретаторе на чистом Go, а не через
os/exec. - Виртуальная файловая система очищает пути и обеспечивает границы наборов документов.
- Разрешённые шаблоны файлов и игнорируемые каталоги не допускают секреты в область просмотра.
- RBAC контролирует чтение, публикацию, запись, утверждения и доверенные возможности.
- Веб-конечная точка может публиковать ключ хоста SSH через TLS, чтобы избежать слепого доверия при первом использовании; также поддерживаются пользовательские и хостовые сертификаты SSH.
Полную оценку безопасности см. в SECURITY.md.
Лицензия
Apache License 2.0 — Copyright © 2026 Adil Karim
OpenLore включает сторонние компоненты с открытым исходным кодом. Их лицензии и необходимые уведомления перечислены в
assets/legal/THIRD_PARTY_NOTICES.md, с
полными текстами лицензий в assets/legal/licenses/. Они
встроены в бинарный файл и предоставляются работающим сервисом по адресу /legal.