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) — or a wildcard prefix such as repo::myteam/* covering every repo under that owner — 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) that no binding covers 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 naming the org whose binding matched.

When more than one binding could match your scope, the most specific one decides: an exact scope binding always wins over a wildcard, and a longer wildcard prefix wins over a shorter one.

Tip:

To intentionally write personal lore under a bound scope, use a more-specific scope that no current binding covers — check with an admin if you're unsure whether a wildcard (e.g. repo::myteam/*) already reaches it, since a wildcard binding matches every scope under its prefix, not just the exact one you'd expect.

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.