Repository navigation
Knowledge Import
Bring your agent memory and repo knowledge into OpenLore. Context that lives on
one person's machine can become shared, versioned knowledge for the team, without
moving the original files or giving the server access to your private Git
credentials. You choose which imported stores agents can read.
Knowledge Import is the first phase of the Knowledge Gateway, not the whole
gateway roadmap. This release delivers client-driven import from Claude Code,
local folders, and Git repositories, a versioned docstore, and read-only
projections. Automatic sync, arbitrary source connectors, importing as editable
documents, and gateway-wide link verification remain future work. Learn how it
fits together in the knowledge gateway guide.
New: the lore client
The release archives and Homebrew cask now ship two binaries: the openlore
server and the lore client. Run lore from your knowledge repository (the
folder containing openlore.yml). Enable the server's HTTP API, then:
lore login https://lore.example.com
# Choose and preview this project's Claude Code instructions and memory
lore agent import claude --project
# Or add a folder or Git repository
lore source add ~/notes --name notes --include '**/*.md'
lore source add https://github.com/acme/payments --name payments \
--branch main --include 'docs/**' --include '*.md'
# Preview changes, then push a versioned snapshot
lore status
lore syncFor a new repository, lore init [directory] creates default server settings
without a login or overwriting an existing openlore.yml. It does not initialise
Git or create identities and access policy; configure those before syncing to a
shared server (#234).
lore login supports browser passkeys or a minted token. lore source list
shows your sources and lore source rm <name> removes a source definition
without deleting server history. lore agent connect claude|codex registers the
server with your coding agent.
Serve imported knowledge to agents
Add a projection to the docsets object in lore.json and grant its readers:
{
"docsets": {
"payments-docs": {
"projection": {
"store": "git/github.com/acme/payments",
"subpath": "docs"
},
"access": { "allow": { "engineers": "ro" } }
}
}
}Run lore config reload in an OpenLore session with lore:config:edit to mount
the read-only docset at /payments-docs. Agents can read and search it over SSH,
MCP, or HTTP. A projection under an identity's home can stay private to that
identity. The agent-shell command lore sources and the dashboard Sources view
show projected stores and their latest snapshots.
Supporting capabilities
- Live configuration reload: docsets, projections, mount paths, aliases,
grants, and folder rules update without restarting the server, including for
existing sessions on subsequent reads. Invalid reloads leave the running
configuration unchanged; an already-started read may finish against the old
configuration. Transport, authentication-provider and other startup settings
still require a restart. - Versioned docstore: sync uploads only new content-addressed blobs and
retains snapshot history. Native writes to disk docsets are also snapshotted. - Skills integration: server-fetched public HTTPS skill sources use the
docstore, with per-installation applied and rejected versions. Invalid
upstream versions leave the last valid installed skill available. Client Git
stores remain separate from server-owned skill source stores. - Content reorganisation: server file moves commit atomically and retain
provenance throughlore history <path>. Usage follows moves within the
caller's readable query scope without counting moves as authored writes.
Opt-in folder indexes refresh in the same governed batch.mvwarns about
stale references;lore links --to <path>lists readable references for
repair, whilereplaceandlore meta set/unsetprovide literal and
structured edits.lore meta --missingfinds missing frontmatter or named
fields. References are not rewritten automatically
(#231). - Dashboard: resizable desktop file tree, file refresh/retry controls, and
a file-tab context menu. - Observability: opt-in OpenTelemetry tracing and correlation.
Reliability and documentation
-
Fixed
sedbasic regular expressions and invalid address handling (#201). -
Fixed unsupported moves being reported as read-only sessions (#203).
-
Fixed file usage rankings consuming unbounded memory (#206).
-
Fixed hard-to-read analytics text tables (#209).
-
Fixed missing usage token counts using current knowledge facts (#215).
-
Fixed write-denial messages not explaining the failed gate (#216).
-
Fixed installed iOS PWA navigation leaving the dashboard scope (#217).
-
Fixed skills refusals and collection marker preservation (#218).
-
Fixed per-command
--helprequests not reaching command help (#222). -
Fixed imported-skill installation reconciliation (#228).
-
Fixed
jqsubtraction filters being interpreted as flags (#227). -
Fixed docstore guest access, cross-source blob authorization, and upload-size enforcement; client snapshots now require verified source-scoped uploads or committed history (#229).
-
Fixed unsupported
< fileinput redirection being silently accepted; it now fails with guidance to usecat file | command(#233). -
Virtual filesystem errors no longer expose host filesystem paths.
-
Added import guides and the
loreCLI reference, a LangChain start guide,
cloud agent setup guides, HTTPS and production guidance, and clearer
documentation for public access, inbox publishing and multi-line heredocs. -
Made repository setup discoverable from the documentation index and usage guide (#230).
-
Breaking: the MCP
shelltool is nowlore_bash. Claude Code's
auto-mode classifier judges a call by the tool name and the command, and a
tool calledshellrunninggrep -r term /reads as a scan of the local
disk; underlore_bashthe same calls were denied in 1 of 12 test runs
instead of 4 and never sent for escalated review. The HTTP/api/shell
endpoint and SSH are unchanged. Update any permission rule that names the
tool, such asmcp__openlore__shell→mcp__openlore__lore_bash; the
server-widemcp__openlorerule keeps working.list_commandsis unchanged. -
Added the Share a coding style guide with every agent
recipe: astyledocset withsize/linesandsize/tokensbudgets, a
prompt that has an agent write the guide from Google's style guide, and an
AGENTS.mdsection that points agents at it. -
Added the Build an LLM wiki on OpenLore recipe, which runs
Karpathy's LLM wiki pattern on a server: existing docsets as the read-only
raw layer, awikidocset as an OKF bundle for the index and log, a schema
page every agent reads, and ingest, query and lint through any agent.
Install and upgrade
brew install --cask aakarim/tap/lore
# If already installed:
brew upgrade --cask aakarim/tap/lore
openlore version
loreFor other platforms, download the matching archive from this release. Existing
server configurations need no migration. To use imports, enable the HTTP API,
run lore sync, and explicitly configure projections. MCP clients must refresh
tool discovery and update rules that name the old shell tool.
On upgrade, SQLite-derived analytics views and daily partials rebuild once from
retained events; recorded events and content facts are preserved. Move continuity
requires retained move events and cannot be reconstructed for older unlinked
moves (#231).
Security boundaries and limitations
- Client-synced stores are not exposed to agents until projected. The first
identity to sync a Git repository owns its store. - Projected docsets are read-only on every transport. Edit the original and
runlore syncagain; sync is manual, not a background service. - The Claude profile excludes settings files,
.env*, key/certificate files,
and filenames containing credential, secret, token, password or api_key.
This is filename filtering, not secret-content scanning. Review the preview
before uploading. Session transcripts are opt-in and their contents are not
filtered. Folder and Git sources need their own include/exclude choices. - Snapshot limits: 8 MiB per file, 128 MiB per snapshot, and 10,000 files.
- Docstore access requires a named identity, not a public/guest token. Physical
blob deduplication does not grant access across sources. Existing committed
history remains usable; legacy pending uploads without proof need reupload. - Removing a source or projection does not erase retained server snapshots.
Artifacts and verification
Five archives contain both binaries: openlore_linux_amd64.tar.gz,
openlore_linux_arm64.tar.gz, openlore_darwin_amd64.tar.gz,
openlore_darwin_arm64.tar.gz, and openlore_windows_amd64.zip.
Use the release's checksums.txt to verify downloaded archives and
source-sha.txt to identify the exact source commit. Container images are
published as ghcr.io/aakarim/openlore:0.8.0 and :v0.8.0.
Full changelog: v0.7.5...v0.8.0