v0.8.0Knowledge Import: shared, versioned agent memory and repository knowledge →

Build knowledge
your agents can rely on.

OpenLore is a minimal, extensible, agent-native knowledge repository where agents can capture, maintain and access the same up-to-date context.

Ordinary files. Scoped permissions. Available across your tools and workflows.

Install the CLI
curl -fsSL https://openlore.sh/install.sh | sh
Mac & Linux · Intel and ARM64 · No sudo.
Install the CLI
brew install --cask aakarim/tap/lore
Install with Homebrew on macOS or Linux.
Install the CLI
$release = 'https://github.com/aakarim/OpenLore/releases' Invoke-WebRequest ` "$release/latest/download/openlore_windows_amd64.zip" ` -OutFile openlore.zip Expand-Archive openlore.zip -DestinationPath .\openlore -Force .\openlore\openlore.exe version
PowerShell · Windows x64. Downloads and extracts the release. Installation docs

01 / CaptureAny agent session

Turn work into shared knowledge.

The fix your agent found today should help the next agent tomorrow.

Ask your agent to save what you learned, right inside its chat window. Or capture directly through MCP, SSH or the API. It becomes a file in your shared workspace, ready for the next task.

Capture into your filesystem

Agent chat

YouSave the retry policy we just worked out to OpenLore, so the next agent can use it too.
✓ OpenLore · shell completedSaved to /runbooks/retry-policy.md. Other agents with access can now read it.

Knowledge

  • Workspace
    • runbooks
      • retry-policy.md

/runbooks/retry-policy.md

Retry policy

  1. Retry transient failures only.
  2. Use exponential backoff with jitter.
  3. Stop after three attempts.
Capture knowledge without leaving your chat.
Capture into your filesystem

MCP tool · shell

cat > /runbooks/retry-policy.md <<EOF
# Retry policy
1. Retry transient failures only.
2. Use exponential backoff with jitter.
3. Stop after three attempts.
EOF
✓ Saved for the next task

Knowledge

  • Workspace
    • runbooks
      • retry-policy.md

/runbooks/retry-policy.md

Retry policy

  1. Retry transient failures only.
  2. Use exponential backoff with jitter.
  3. Stop after three attempts.
Your MCP-connected agent calls OpenLore’s shell tool with this command. The file is checked and saved to the shared workspace.
Capture into your filesystem

SSH

$ cat retry-policy.md |
  ssh -p 2222 writer@knowledge \
  'cat > /runbooks/retry-policy.md'
✓ Saved for the next task

Knowledge

  • Workspace
    • runbooks
      • retry-policy.md

/runbooks/retry-policy.md

Retry policy

  1. Retry transient failures only.
  2. Use exponential backoff with jitter.
  3. Stop after three attempts.
Send a local runbook over SSH. Your recognised SSH key determines the identity and its write permissions.
Capture into your filesystem

HTTP API

curl https://knowledge.example/api/shell \
  -H "Authorization: Bearer $OPENLORE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"command":"cat > /runbooks/retry-policy.md <<EOF\n# Retry policy\n1. Retry transient failures only.\n2. Use exponential backoff with jitter.\n3. Stop after three attempts.\nEOF"}'
✓ Saved for the next task

Knowledge

  • Workspace
    • runbooks
      • retry-policy.md

/runbooks/retry-policy.md

Retry policy

  1. Retry transient failures only.
  2. Use exponential backoff with jitter.
  3. Stop after three attempts.
Use your server address and an OpenLore bearer token. The API applies the same permissions and write checks.
02 / ControlConfigure it in code

Your workspace. Your rules.

Decide what belongs in your knowledge repository before it gets there.

Set file budgets, apply rules by folder and validate knowledge formats. The same write checks apply across SSH, MCP and the API.

Configuration and write outcome

/.lore/config.yaml

version: 1
rules:
  concise:
    match: ["**/*.md"]
    use: size/lines
    with: { max: 120 }
  small:
    match: ["**/*.md"]
    use: size/kilobytes
    with: { max: 64 }

Keep context concise.

× Write rejected/runbooks/retry-policy.md

240 lines · exceeds the 120-line limit

✓ Write accepted/runbooks/retry-policy.md

86 lines · 3 KiB · within both limits

A rejected write leaves the existing file unchanged. Set line, byte-size or estimated-token budgets in code.
Configuration and write outcome

/runbooks/.lore/config.yaml

version: 1
rules:
  short-runbooks:
    match: ["**/*.md"]
    use: size/lines
    with: { max: 100 }

# Applies inside /runbooks.
# Other folders keep their own rules.

Different folders. Different rules.

× Write rejected/runbooks/retry-policy.md

110 lines · exceeds this folder’s 100-line limit

✓ Write accepted/research/retry-study.md

110 lines · this folder rule does not apply

Folder rules apply to their directory and everything beneath it. Inherited checks still apply; a child cannot silently loosen a parent’s policy.
Configuration and write outcome

/runbooks/.lore/config.yaml

version: 1
rules:
  knowledge-format:
    match: ["**/*.md"]
    use: okf

# Open Knowledge Format (OKF)
# checks each concept on write.

Give knowledge a consistent shape.

× Write rejected/runbooks/retry-policy.md

No YAML frontmatter · required type is missing

✓ Write accepted/runbooks/retry-policy.md

YAML frontmatter includes type: procedure

Check individual concepts before they are saved. Run lore validate after a set of changes to check bundle structure and local links too.
Add checks. Automate what happens next.

openlore.yml · example automation

shellexec:
  pre_commit:
    - cmd: "/usr/local/bin/check-knowledge"
      timeout: 10s
  post_write:
    - cmd: "/usr/local/bin/notify-indexer"
      async: true

# Use your own scripts for these steps.
# Check knowledge before saving it.
# Notify your search tool after it is saved.

Make OpenLore fit your workflow.

Plugins add extra checks and automated steps around your knowledge. Check a document before it is saved, keep a search tool up to date, or share reusable skills with your agents.

Start with built-in plugins for knowledge formats and Agent Skills, or connect your own scripts as shown here. Your agents keep using OpenLore in the same way.

Checks can stop a document from being saved if it does not meet your rules. Other steps run after it is saved. Developers can build custom plugins when you need more. Explore the plugin system.

Give your agents shared skills.

Publish Agent Skills alongside your knowledge. Keep reusable instructions available to the agents that need them.

# A shared Agent Skills collection
/skills/
  incident-response/
    SKILL.md
    references/
03 / ConnectLink to your existing sources

Keep the knowledge.
Keep the connection.

Shared drives are where docs go to die. Keep useful knowledge connected to the work behind it.

Bring the decision into OpenLore and keep a link to the original issue, pull request or research. Your existing tools stay the source; your agents get the context in one place.

Knowledge with its original sources
/runbooks/retry-policy.md

Retry policy

Retry transient failures with exponential backoff and jitter. Stop after three attempts. Do not retry authentication failures.

Why this policy exists

A retry loop amplified a payment-provider outage. The incident and fix explain the limits.

Original sources

04 / AccessEvery identity, scoped

Shared knowledge.
Not shared permissions.

Give each person and agent the access they need. Nothing more.

Define read and write permissions by role, scoped to a set of files. The same policy applies over MCP, SSH and the API. Share file links without opening the whole workspace.

One workspace. Access scoped by identity.

lore.json · access policy

{
  "docsets": {
    "runbooks": {
      "paths": ["/runbooks"],
      "access": {
        "allow": {
          "maintainer": "rw",
          "researcher": "ro"
        },
        "deny": ["external"]
      }
    }
  }
}

Access to /runbooks

MaintainerRead + write

People and agents with this role can read and maintain runbooks.

ResearcherRead only

Use the same context. Changes to these files are blocked.

ExternalNo access

This role is denied, even if another role would grant access.

Illustrative policy excerpt. Assign roles to user and agent identities in lore.json; permissions follow the authenticated identity, not the transport.
05 / WorkspaceSee what’s there

Knowledge you can see.
Infrastructure you control.

A shared view for your agents. An inspectable workspace for you.

See how knowledge fills your workspace, explore its context footprint, inspect agent activity and improve your skills over time. OpenLore is self-hosted: you own the files, choose where it runs and define who gets access.

OpenLore Workspace analytics area with a sunburst context diagram and activity chart, cropped to omit global navigation and the file tree.
The OpenLore Analytics dashboard with sample data. Explore your workspace’s context footprint by folder and file. Select the image to look closer.
06 / Get startedYour first workspace

Install it. Or ask your agent.

One binary. Your files. Start locally, then configure access and share it with your team.

Install the binary
Terminal / quick start
# 01 — Install
curl -fsSL https://openlore.sh/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"

# 02 — Serve your documentation
openlore ./docs

# 03 — Explore from another terminal
ssh -p 2222 localhost "ls /"

Mac and Linux installer. For Homebrew, Windows, version pinning and PATH setup, see the installation docs. SSH: 2222. Web/MCP: 8080.

Before sharing a server, configure authentication, grants, HTTPS, and persistent storage.

Auth · Configure the server · Example openlore.yml

Transports
SSH · MCP · SFTP · HTTP
Data
Directories or embedded files
Per identity
Scoped access
Runtime
Single Go binary
07 / ProjectOpen source

Apache 2.0. Built in Go.

The server and docs are developed in the open. Contributions welcome.