Skip to main content
Glama

📜 OpenLore

Release Go Reference

赞助

通过 SSH 将你的文档提供给 AI 代理。

OpenLore 是一个极简、可扩展、面向代理的原生知识库,让共享上下文保持最新且可检查。


关于

AI 编码代理已经知道如何使用 lscatgrepfind、管道和 shell 循环来浏览文件。OpenLore 通过 SSH 为它们提供相同的界面,但底层由你的文档而非真实机器驱动。

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

它最初是一个单二进制、零配置、只读的文档服务器。当你需要实时知识库时,可以添加身份作用域访问、受控发布、原子写入、验证和人工审批,而无需改变代理读取或浏览内容的方式。

存储和检索 Markdown

将文档、运行手册、项目上下文或代理撰写的笔记放入普通 Markdown 文件中。没有摄取管道:将 OpenLore 指向一个目录,它就直接提供现有层级结构。使用文件夹组织文档,用标准 Markdown 链接连接它们,并在不同人员或代理需要不同访问权限时将它们分组为文档集。OpenLore 默认只读;当你希望代理也能创建和更新 Markdown 时,可以启用写入。

OpenLore Skills 导入演示

Related MCP server: AgentBase

快速开始

最快的路径是让代理为你设置 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

  • 面向人类的 Web 视图位于 http://localhost:8080

  • 通过 HTTP 的 MCP 位于 http://localhost:8080/mcp

有关安装和打包 OpenLore 的更多方式,请参阅安装

功能特性

  • 面向代理的原生检索 — 代理使用它们已经理解的 shell 工具和组合模式,而无需学习定制的检索 API。

  • 一个知识面,多种传输方式 — 通过 SSH、SFTP/SSHFS、MCP 和用户友好的 Web 视图提供相同的虚拟文件系统。

  • 实时、受治理的知识 — 保持内容只读、允许作用域发布,或按文档集启用完整写入。写入是原子的、支持冲突感知,并且可以要求人工审批。

  • 身份作用域视图 — 仅向每个人或代理提供其所需的文档集,并支持基于角色的 ropublishrw 授权、路径别名和私有主目录。

  • 本质安全 — shell 是内存中的 Go 解释器,而非真正的操作系统 shell。在正常会话中不存在 shell 逃逸、任意进程执行或环境网络访问。

  • 可移植知识包 — 将文档嵌入自包含二进制文件,使用 GitHub Action 构建跨平台包,或将其打包为桌面 MCP 扩展。

  • 无需新查询语言的结构化知识 — 使用 lore meta 将 frontmatter 作为 NDJSON 检查,使用 jq 查询,并在接近写入路径处验证 Google 的 Open Knowledge Format (OKF) 包和 Agent Skills。

  • 可扩展的策略和处理 — 插件可以添加验证、授权、读/写中间件、元数据和提交后处理,同时保持相同的文件系统接口。

使用场景

  • 持续学习仓库 - 将会话和学习成果存储在一个共享服务器中。添加指标以便优化。允许代理在保持用户隔离的同时相互分享学习成果。

  • 团队工件仓库 - 在维护访问控制的同时,分享你创建的 markdown、HTML、JSON、Excel 等文档。比 git 更自然,比 Confluence/Notion 更面向代理。

  • 编码代理的文档 — 将内部 API 文档、运行手册、产品上下文和架构说明放在一个熟悉的、可 grep 的界面后面。

  • 代理团队的共享实时记忆 — 为代理提供独立或共享的文档集,以便它们发布发现、交接工作并在会话之间积累持久上下文。

  • 公共文档站点 - 将任何文件添加到公共文档集,启用公共访问,任何访问你站点的代理都将看到它。无需编辑现有文档即可改善 AEO/GEO。

  • 技能共享 — 将 Agent Skills 发布到共享集合中,以便每个授权代理都能发现并使用相同的受治理流程。

  • 代理插件仓库 — 从 GitHub 版本固定 Agent Plugins 仓库,并将其提供给团队代理。以开放标准打包的技能会自动保持最新。

  • 受治理的知识贡献 — 让贡献者发布到收件箱,同时为审批者保留敏感路径并防止意外覆盖。

  • 代理工件的远程审查 — 通过浏览器或 SSH 公开报告、日志、截图和生成的文件,而无需构建自定义工件查看器或授予对代理机器的访问权限。

  • 身份特定工作区 — 为每个代理挂载私有主目录以及共享团队知识,全部通过一个服务器和一种授权模型实现。

  • 可移植的客户或项目知识 — 发布带有嵌入相关文档的版本化可执行文件,或将相同的知识作为 MCPB 桌面扩展分发。

  • 经过验证的知识目录 — 强制执行 frontmatter 和包约定,廉价地检查元数据,并在准入时阻止格式错误的知识。

工作原理

OpenLore 基于 Wish 实现 SSH 传输。连接完全在虚拟文件系统上处理:

  1. 身份验证 — 无密钥连接,或将 SSH 密钥、证书、通行密钥或 OAuth 登录解析为身份。

  2. 组合视图 — 仅挂载授予该身份的文档集和路径。

  3. 探索 — 在该视图上运行以纯 Go 函数实现的 shell 命令,或使用等效的 MCP shell 工具。

  4. 安全贡献 — 如果启用了写入,则在原子提交或路由审批之前授权并验证整个文件的更改。

OAuth 客户端使用委派身份,因此持久的写入来源可以区分 adil 的直接工作与以 adil/claude@claude.ai 身份执行的工作。委派者继承的权限不会超过其主体的权限,并且可以通过文档集和能力拒绝列表进行收窄。CIMD 客户端还可以使用供应商托管的元数据和 private_key_jwt 进行身份验证;请参阅已认证的 OAuth 客户端

普通 shell 无法调用 bashexeccurl 或任意主机进程。嵌入的文档始终是只读的。明确受信任的身份可以通过 spawn 能力获得范围狭窄的异步处理权限。

受治理的写入

OpenLore 默认只读。可写部署为重定向、追加、teepatchsed -i、文件移动、发布和经批准的外部作业维护单一的策略控制写入路径。

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

写入是整体对象的原子交换。比较并交换保护默认拒绝过期编辑,文档集授权约束目标,选定路径可以生成 /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

有关 MCP stdio、MCPB 桌面打包、SSHFS 和 Go 库用法,请参阅使用 OpenLore 的方式

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 凭据或使用 X-OpenLore-Token-IdX-OpenLore-Signature 的完整请求体 HMAC。OAuth 访问令牌仅用于 POST/GET /inbox/tokensDELETE /inbox/tokens/{id};收件箱凭据是独立的且可撤销。请参阅配置和身份

文档

指南

内容

使用 OpenLore 的方式

SSH、MCP、Web、SSHFS、嵌入式二进制文件、GitHub Action、MCPB 和库用法

命令参考

完整的 shell、内省、发布、语法、CLI 命令和标志参考

配置和身份

openlore.yml、身份验证、角色、文档集、别名、主目录和主机验证

工作负载身份联合

使用短期外部身份令牌验证 CI 和代理身份

写入和发布

写入模式、收件箱、冲突处理、审批和作业

插件和知识格式

插件安装、接口、OKF 验证、lore validatelore meta

写入系统内部

文件系统分层、写入接缝、变更集、钩子和异步作业

安全评估

威胁模型和安全属性

安全

  • 命令在纯 Go 解释器中运行,而非通过 os/exec

  • 虚拟文件系统会清理路径并强制执行文档集边界。

  • 允许的文件模式和忽略的目录可防止机密泄露到视图中。

  • RBAC 控制读取、发布、写入、审批和受信任能力。

  • Web 端点可以通过 TLS 发布 SSH 主机密钥,以避免首次使用时的盲目信任;同时支持 SSH 用户和主机证书。

有关完整的安全评估,请参阅 SECURITY.md

许可证

MIT — Adil Karim

OpenLore 捆绑了第三方开源组件。其许可证和所需声明列在 assets/legal/THIRD_PARTY_NOTICES.md 中,完整许可证文本位于 assets/legal/licenses/。这些内容已嵌入二进制文件,并由运行中的服务在 /legal 提供。

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
1wRelease cycle
6Releases (12mo)
Commit activity

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Your company's brain for AI agents. Cited, permission-aware knowledge across every system.

  • Shared knowledge base for AI agents. Semantic search across agents, no setup required — just a URL.

  • Shared, permission-aware company context for AI agents, with provenance, approvals and audit.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aakarim/OpenLore'

If you have feedback or need assistance with the MCP directory API, please join our Discord server