OpenLore

oficial

Servidor de conocimiento nativo para agentes. Sirve documentación a agentes de IA a través de SSH y MCP con vistas con alcance de identidad, escritura gobernada y metadatos estructurados. Binario único, sin configuración.

¿Qué puedes hacer con OpenLore MCP?

  • Explora la documentación vía SSH — Pídele a tu asistente que use ssh para entrar a OpenLore y use comandos conocidos como ls, cat o grep para buscar y leer documentación en Markdown.

  • Consulta metadatos de documentos — Usa el comando lore meta para inspeccionar el frontmatter como NDJSON y filtra los resultados con jq para una recuperación estructurada de conocimiento.

  • Publica contenido con aprobación — Haz que tu asistente escriba o actualice archivos Markdown usando publish, patch o sed -i, con intercambios atómicos y revisión humana opcional para rutas sensibles.

  • Gestiona el acceso con ámbito de identidad — Configura docsets, roles y permisos para que cada agente o usuario solo vea las bases de conocimiento y rutas que está autorizado a acceder.

  • Valida paquetes de conocimiento — Ejecuta lore validate para comprobar el cumplimiento del Formato Abierto de Conocimiento de Google (OKF) y detectar frontmatter malformado antes de que se confirme.

Documentación

📜 OpenLore

Release Go Reference

Patrocinado por Oiya

Sirve tu documentación a agentes de IA a través de SSH.

OpenLore es una base de conocimiento mínima, extensible y nativa para agentes que mantiene el contexto compartido actualizado e inspeccionable.


Acerca de

Los agentes de codificación de IA ya saben explorar archivos con ls, cat, grep, find, tuberías y bucles de shell. OpenLore les ofrece esa misma interfaz a través de SSH, respaldada por tu documentación en lugar de una máquina real.

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

Comienza como un servidor de documentación de un solo binario, sin configuración y de solo lectura. Cuando necesitas una base de conocimiento en vivo, puedes agregar acceso con identidad, publicación controlada, escrituras atómicas, validación y aprobación humana sin cambiar cómo los agentes leen o navegan el contenido.

Almacenar y recuperar Markdown

Coloca documentación, runbooks, contexto de proyecto o notas creadas por agentes en archivos Markdown comunes. No hay canal de ingesta: apunta OpenLore a un directorio y sirve la jerarquía existente directamente. Organiza documentos con carpetas, conéctalos con enlaces Markdown estándar y agrúpalos en conjuntos de documentos cuando diferentes personas o agentes necesiten acceso distinto. OpenLore es de solo lectura por defecto; habilita la escritura cuando quieras que los agentes también creen y actualicen Markdown.

OpenLore Skills import demo

Inicio rápido

El camino más rápido es dejar que tu agente configure 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

O instálalo y ejecútalo directamente:

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

openlore ./docs

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

Por defecto, esto inicia:

  • SSH en localhost:2222
  • la vista web para humanos en http://localhost:8080
  • MCP sobre HTTP en http://localhost:8080/mcp

Consulta Instalación para más formas de instalar y empaquetar OpenLore.

Características

  • Recuperación nativa para agentes — Los agentes usan las herramientas de shell y los patrones de composición que ya entienden en lugar de aprender una API de recuperación personalizada.
  • Una superficie de conocimiento, múltiples transportes — Sirve el mismo sistema de archivos virtual a través de SSH, SFTP/SSHFS, MCP y una vista web amigable para humanos.
  • Conocimiento vivo y gobernado — Mantén el contenido de solo lectura, permite publicación con alcance o habilita escrituras completas por conjunto de documentos. Las escrituras son atómicas, conscientes de conflictos y pueden requerir aprobación humana.
  • Vistas con identidad — Dale a cada persona o agente solo los conjuntos de documentos que necesita, con permisos basados en roles ro, publish y rw, alias de rutas y directorios de inicio privados.
  • Seguro por construcción — El shell es un intérprete Go en memoria, no un shell real del sistema operativo. No hay escape de shell, ejecución de procesos arbitrarios ni acceso de red ambiental en una sesión normal.
  • Paquetes de conocimiento portátiles — Incrusta documentos en un binario autocontenido, crea paquetes multiplataforma con la GitHub Action o empaquétalos como una extensión MCP de escritorio.
  • Conocimiento estructurado sin un nuevo lenguaje de consulta — Inspecciona el frontmatter como NDJSON con lore meta, consúltalo con jq y valida los paquetes Open Knowledge Format (OKF) de Google y las habilidades de agente cerca de la ruta de escritura.
  • Política y procesamiento extensibles — Los complementos pueden agregar validación, permisos, middleware de lectura/escritura, metadatos y procesamiento posterior a la confirmación mientras preservan la misma interfaz de sistema de archivos.

Casos de uso

  • Repositorio de aprendizaje continuo — almacena sesiones y aprendizajes en un servidor compartido. Agrega métricas para poder optimizar. Permite que los agentes compartan aprendizajes entre sí manteniendo el aislamiento de usuarios.
  • Repositorio de artefactos de equipo — comparte documentos Markdown, HTML, JSON, Excel, etc. que hayas creado manteniendo controles de acceso. Mucho más natural que git, más nativo para agentes que Confluence/Notion.
  • Documentación para agentes de codificación — Coloca documentación de API interna, runbooks, contexto de producto y notas de arquitectura detrás de una interfaz familiar y greppable.
  • Una memoria viva compartida para equipos de agentes — Dale a los agentes conjuntos de documentos separados o compartidos para que puedan publicar hallazgos, transferir trabajo y acumular contexto duradero entre sesiones.
  • Sitio de documentación pública — agrega cualquier archivo a tu conjunto de documentos público, habilita el acceso público y se mostrará a cualquier agente que encuentre tu sitio. Mejora AEO/GEO sin necesidad de editar tu documentación existente.
  • Compartir habilidades — Publica habilidades de agente en colecciones compartidas para que cada agente autorizado pueda descubrir y usar los mismos procedimientos gobernados.
  • Repositorio de complementos de agente — Fija por versión los repositorios de Agent Plugins desde GitHub y sírvelos a los agentes de tu equipo. Las habilidades empaquetadas en el estándar abierto se mantienen actualizadas automáticamente.
  • Contribución de conocimiento gobernada — Permite que los contribuyentes publiquen en bandejas de entrada mientras reservas rutas sensibles para aprobadores y previenes sobrescrituras accidentales.
  • Revisión remota de artefactos de agentes — Expón informes, registros, capturas de pantalla y archivos generados a través del navegador o SSH sin crear un visor de artefactos personalizado ni otorgar acceso a la máquina del agente.
  • Espacios de trabajo específicos por identidad — Monta un inicio privado para cada agente más conocimiento de equipo compartido, todo a través de un servidor y un modelo de autorización.
  • Conocimiento portátil de clientes o proyectos — Envía un ejecutable versionado con los documentos relevantes incrustados, o distribuye el mismo conocimiento como una extensión de escritorio MCPB.
  • Catálogos de conocimiento validados — Aplica convenciones de frontmatter y paquetes, inspecciona metadatos de forma económica y detén conocimiento malformado en el momento de admisión.

Cómo funciona

OpenLore está construido sobre Wish para el transporte SSH. Una conexión se maneja completamente contra un sistema de archivos virtual:

  1. Autenticar — conéctate sin clave o resuelve una clave SSH, certificado, passkey o inicio de sesión OAuth a una identidad.
  2. Componer una vista — monta solo los conjuntos de documentos y rutas otorgados a esa identidad.
  3. Explorar — ejecuta comandos de shell implementados como funciones Go puras sobre esa vista, o usa la herramienta MCP equivalente shell.
  4. Contribuir de forma segura — si la escritura está habilitada, autoriza y valida un cambio de archivo completo antes de confirmarlo atómicamente o enrutarlo para aprobación.

Los clientes OAuth usan identidades delegadas, por lo que la procedencia de escritura duradera distingue el trabajo directo de adil del trabajo realizado como adil/claude@claude.ai. Los delegados no pueden heredar más autoridad que su principal y pueden limitarse por listas de denegación de conjuntos de documentos y capacidades. Los clientes CIMD también pueden autenticarse con metadatos alojados por el proveedor y private_key_jwt; consulta Clientes OAuth autenticados.

El shell normal no puede invocar bash, exec, curl ni procesos arbitrarios del host. La documentación incrustada siempre es de solo lectura. Las identidades explícitamente confiables pueden recibir procesamiento asíncrono con alcance limitado a través de la capacidad spawn.

Escritura gobernada

OpenLore es de solo lectura por defecto. Los despliegues con escritura mantienen una única ruta de escritura controlada por política para redirecciones, anexos, tee, patch, sed -i, movimientos de archivos, publicación y trabajos externos aprobados.

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

Las escrituras son intercambios atómicos de objeto completo. La protección de comparar-y-intercambiar rechaza ediciones obsoletas por defecto, los permisos de conjuntos de documentos restringen el destino y las rutas seleccionadas pueden producir cambios revisables bajo /requests en lugar de confirmar directamente.

Consulta Escritura y publicación para la configuración orientada al usuario y Internos del sistema de escritura para el modelo de implementación.

Instalación

Instalar con Go

Requiere Go 1.26 o posterior:

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

Compilar desde el código fuente

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

Incrustar documentos en un binario

Coloca la documentación en assets/lore/ y compila. El binario resultante contiene los documentos y los sirve de solo lectura en /docs cuando se ejecuta sin argumento de directorio:

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

Compilar con la GitHub Action

Produce binarios multiplataforma con tus documentos incrustados:

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

Consulta Formas de usar OpenLore para MCP stdio, empaquetado de escritorio MCPB, SSHFS y uso de la biblioteca Go.

Crear un despliegue personalizado

Usa la habilidad incluida setup para crear <team>-lore, un repositorio pequeño propiedad del cliente que contiene openlore.yml, un Containerfile delgado fijado a una versión oficial de OpenLore y artefactos de despliegue. Compila un servidor local funcional y verifica HTTP, MCP, SSH autenticado, escrituras y persistencia antes del despliegue:

ssh openlore.sh setup | amp

El repositorio generado mantiene la política inicial de lore.json y los archivos visibles por SSH bajo .local/ ignorado por git. El primer despliegue inicializa un volumen persistente vacío desde ese estado. El openlore.yml raíz sigue siendo la autoridad de Git/IaC y se despliega por separado en /var/lib/openlore/config/openlore.yml; no está incluido en la imagen. Los cambios posteriores de lore.json y del sistema de archivos en el servidor son autoritativos y nunca se sobrescriben con actualizaciones de imagen.

Los comandos de instrucción adicionales admiten el ciclo de vida completo:

  • onboarding agrega identidades, roles, inicios y carpetas iniciales localmente;
  • deploy selecciona Fly.io, Railway, AWS, Google Cloud, Azure, DigitalOcean o un despliegue personalizado y verifica un contrato compartido de persistencia/red;
  • upgrade prepara solo el cambio de versión de imagen base fijada para que el CD existente pueda desplegarlo.

Los despliegues de proveedores requieren HTTPS/MCP, SSH OpenLore autenticado, acceso administrativo al shell y un volumen persistente /var/lib/openlore. Cuando el proveedor lo admite, el despliegue configura el puerto público 22 para reenviar a OpenLore puerto 2222. De lo contrario, informa el puerto asignado y recomienda un sistema externo de reenvío TCP.

El contenedor publicado contiene solo OpenLore. Deliberadamente no contiene política de incorporación ni configuración de servidor. Antes de que el servicio se inicie, el despliegue debe colocar openlore.yml y lore.json en el directorio de configuración persistente y ejecutar:

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

Esto mantiene la configuración desplegable de forma independiente: un despliegue simple puede copiar openlore.yml en el volumen, mientras que Kubernetes puede proyectar el mismo archivo desde un ConfigMap. Usa la habilidad deploy para Fly.io, Railway, AWS, Google Cloud, Azure, DigitalOcean o infraestructura personalizada. Los archivos Railpack y Fly del repositorio proporcionan la imagen, el volumen persistente y el cableado de puertos; no siembran ni mutan la configuración al iniciar el proceso.

Railway asigna a su proxy TCP SSH un nombre de host y puerto públicos. El puerto SSH estándar 22 requiere un balanceador de carga TCP sin procesar externo. Fly.io puede mapear el puerto público 22 al puerto interno 2222 de OpenLore con una dirección dedicada. El SSH sin procesar no tiene nombre de host ni enrutamiento SNI, por lo que un solo listener no puede enrutar múltiples dominios en el puerto 22.

El flujo de trabajo del contenedor publica latest desde main; las versiones también publican VERSION, vVERSION, etiquetas de imagen mayor y menor.

Cargas HTTP a la bandeja de entrada

Configura un conjunto de documentos inbox y un rol con su permiso publish, luego crea una credencial para una identidad existente (la configuración del servidor debe nombrar auth_file para que la CLI pueda validarla):

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} acepta credenciales de portador o un HMAC de cuerpo exacto usando X-OpenLore-Token-Id y X-OpenLore-Signature. Los tokens de acceso OAuth se usan solo para POST/GET /inbox/tokens y DELETE /inbox/tokens/{id}; las credenciales de la bandeja de entrada son separadas y revocables. Consulta Configuración e identidad.

Documentación

GuíaContenido
Formas de usar OpenLoreSSH, MCP, web, SSHFS, binarios integrados, GitHub Action, MCPB y uso como biblioteca
Referencia de comandosReferencia completa de shell, introspección, publicación, sintaxis, comandos CLI y banderas
Configuración e identidadopenlore.yml, autenticación, roles, docsets, alias, directorios personales y verificación de host
Federación de identidad de cargas de trabajoAutentica CI y agentes con tokens de identidad externos de corta duración
Escritura y publicaciónModos de escritura, bandejas de entrada, manejo de conflictos, aprobaciones y trabajos
Plugins y formatos de conocimientoInstalación de plugins, interfaces, validación OKF, lore validate y lore meta
Internos del sistema de escrituraCapas del sistema de archivos, costura de escritura, conjuntos de cambios, hooks y trabajos asíncronos
Evaluación de seguridadModelo de amenazas y propiedades de seguridad

Seguridad

  • Los comandos se ejecutan en un intérprete puro de Go, no a través de os/exec.
  • El sistema de archivos virtual limpia rutas y hace cumplir los límites de los docsets.
  • Los patrones de archivos permitidos y los directorios ignorados mantienen los secretos fuera de la vista.
  • RBAC controla lecturas, publicación, escrituras, aprobaciones y capacidades de confianza.
  • El endpoint web puede publicar la clave de host SSH a través de TLS para evitar confianza ciega en el primer uso; también se admiten certificados de usuario y host SSH.

Consulta SECURITY.md para la evaluación de seguridad completa.

Licencia

MIT — Adil Karim

OpenLore incluye componentes de código abierto de terceros. Sus licencias y avisos requeridos se enumeran en assets/legal/THIRD_PARTY_NOTICES.md, con textos de licencia completos en assets/legal/licenses/. Estos están integrados en el binario y son servidos por el servicio en ejecución en /legal.