LoreKitLoreKit docs

Private lore

Every memory is personal by default — visible only to the user or token that wrote it. This tutorial explains how personal and org-owned lore coexist, and how to keep sensitive memories private even in a shared team environment.

Note:

You never have to do anything to make a memory private. Omitting the org parameter on memory.write is all that is needed — the memory is personal by definition.

Personal vs org-owned — the core distinction

PropertyPersonal loreOrg-owned lore
Who sees itYour token / session onlyEvery org member
Who writes itAny lk_rw_ or lk_wo_ tokenWrite-capable member only
How to writeOmit the org parameterPass org: "slug" on memory.write
Explorer filterPersonal filter{org} filter

Write a private memory

Simply omit org. The memory is stored under your personal partition regardless of whether a scope binding exists:

memory.write {
  scope: "global",
  key:   "my-api-key-pattern",
  value: "Never commit API keys. Use environment variables."
}
// No "org" parameter → personal, only you can read it.

Understand what happens at a bound scope

If an admin has bound a scope (e.g. repo::myteam/api) to an org (see Settings → Organization → Shared scopes):

  • You are a write-capable member → write auto-routes to the org. Use a more-specific scope (e.g. a branch scope) to write personal instead.
  • You are not a write-capable member → the write falls back to personal, never rejected. You receive a notice in the response.
Tip:

To intentionally write personal lore under a bound scope, use a more-specific scope that is not bound (e.g. branch::myteam/api::feat/my-branch).

Filter to personal lore in the Explorer

In the Explorer, use the Personal filter in the All · Personal · {org} toolbar. This narrows the list to memories that belong only to you.

Archive or delete a private memory

Soft-archive (recoverable — hidden from reads, restorable via memory.restore):

memory.archive {
  scope: "global",
  key:   "my-api-key-pattern"
}

Hard-delete (permanent, requires explicit force: true):

memory.delete {
  scope: "global",
  key:   "my-api-key-pattern",
  force: true
}
Note:

Next: learn how to organise memories with tags and scope namespaces so the right memory surfaces at the right time. See the Tags & scopes tutorial.