Quickstart
Store and recall your first memory in under two minutes.
Install
The client ships inside LodeDB
as the [cloud] extra:
pip install "lodedb[cloud]"Sign in and mint a key
Signup is invite-gated during the beta. No account yet? Request access and we send a code.
lodedb cloud login
lodedb cloud tokens mint --kind secret --environment production \
--scope write --scope read:search --scope read:textlogin opens your browser for a one-time approval and stores the credential
locally. It talks to the hosted control plane by default; pass --host only
for a staging or self-hosted deployment.
The key is the whole setup: there is no store to create. It is bound to the environment, and any store name your code writes to provisions itself.
Put the printed key in your environment (self-hosted deployments also set
ORECLOUD_HOST):
export ORECLOUD_TOKEN="ore_sk_..."Store and recall
from lodedb.cloud import Client
client = Client() # org + environment come from the key
memory = client.store("user-42") # one store per end user
memory.add("likes hiking near Seattle")
context = memory.context_block("plan my weekend")
print(context)A few things happened implicitly:
- No create step per user.
client.store(name)makes no HTTP call, and a store that doesn't exist yet is provisioned by its first write as its own LodeDB instance (server-sideminilmembeddings, text exposed socontext_blockandgetwork). A new end user is just a new store name. - The write is durable when
addreturns. Writes are accepted asynchronously (durable and ordered), then folded into the index within seconds. - Read-your-writes. A search from this handle waits for this handle's
own writes to become visible, so the
context_blockcall already reflects theaddabove.
Auto-provisioning covers the memory workload. For different options up
front (another embedding preset, bring-your-own vectors, text exposure off,
encryption), register the store explicitly with lodedb cloud store create
before its first write; see the SDK & CLI reference.
Search
search is classic top-k retrieval; recall takes a whole raw user
message and lets the server derive sub-queries:
hits = memory.search("outdoor plans", k=5)
for score, id, metadata in hits:
print(score, id, metadata)
hits = memory.recall("what should I do this weekend?")