lumi0
lumi0alpha

AI infrastructure

Your model forgets.
Your product shouldn’t.

Lumi0 is the memory layer between your models and your users. Store facts, recall them semantically, and compress the rest — through one API.

Start building
$npm i @lumi0/sdk

Live request

req_9f2c
01

POST /v1/memories

write

user: "u_1024", kind: "semantic"

content: "Lacto-ovo vegetarian · 130g protein/day"

201 · mem_9f2c · version 12 · indexed 38ms

02

POST /v1/memories/search

retrieve

query: "meal plan" · limit: 3

  1. 01“Lacto-ovo vegetarian · 130g protein/day”0.94
  2. 02“Right shoulder pain after overhead press”0.81
  3. 03“Check diet memory before meal plans”0.77
auth 1ms · read 3ms · compress 21msready for inference
01Read latency
<40ms

p50 memory retrieval

02Availability
99.9%

service-level agreement

03SDK coverage
02

TypeScript + Python

04Deployment
01 API

cloud or self-host

AnthropicGoogle GeminiMistralMeta LlamakimiVercel AI SDKOpenRouter

00 — Quickstart

From zero to remembered
in one request.

Give your app a persistent memory layer before the next conversation starts.

  1. 01

    Install the SDK

    Add Lumi0 to the app that needs to remember.

    terminalready
    $bun add @lumi0/sdk
  2. 02

    Write a memory

    Attach a durable fact to a user as it happens.

    request202 accepted
    curl -X POST https://api.lumi0.com/memory \
      -H "Authorization: Bearer $LUMI0_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"externalId":"user_1024","content":"Vegetarian, targets 130g protein/day"}'
  3. 03

    Recall it when it matters

    Search the relevant context before your model responds.

    request200 ok
    curl -X POST https://api.lumi0.com/memory/search \
      -H "Authorization: Bearer $LUMI0_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"externalId":"user_1024","query":"meal plan","limit":3}'

01 — Infrastructure

Everything between your models and your users, drawn to scale — you bring the model, Lumi0 runs the rest.

07 layers.
01 API.

provider
agnostic
deploy
cloud or self-host
surface
one REST API

▲ yours

01ModelsOpenAI, Anthropic, Gemini — bring your own keys

▼ lumi0 runs this

02ContextPrompts, history, and knowledge assembled per request
03MemorySemantic, episodic, procedural — versioned
04RetrievalEmbedding search with filters and recency weighting
05CompressionDeduplication and summarization before the model
06RuntimeDurable workflows, retries, scheduling
07ObservabilityTraces, token usage, memory inspection

Anatomy of a request

One call through the stack

Every layer leaves a trace. Inspect latency, token deltas, and memory writes per request — not per week.

$ lumi0.trace(req_9f2c)Illustrative trace
  1. +000msauthapi key verified
  2. +003msmemory.read4 episodic · 2 semantic
  3. +021mscompress100,412 → 34,980 tokens
  4. +030msllm.completestream started
  5. +812mswebhookmemory.updated emitted
  6. done

02 — Context refinery

Feed it everything.
Send the model only meaning.

Each request is distilled before inference, preserving the signal while shedding the cost of repetition and irrelevant history.

Request profile

query / meal plan

65%

fewer tokens sent downstream, with the relevant context intact.

The model never sees the mess. It receives a compact, ranked brief that still feels like the full conversation.

  1. 01
    Context stage100% retained

    Raw context

    100,412

    214 memories, 3 documents, and the entire chat history.

  2. 02
    Context stage52% retained

    Compress

    52,300

    Repeated exchanges collapse. Small talk becomes a summary.

  3. 03
    Context stage41% retained

    Retrieve

    41,050

    Six memories matching “meal plan” rise to the surface.

  4. 04
    Context stage35% retained

    Optimize

    34,980

    Ranked, budgeted, and shaped for your model’s context window.

Model-ready context

34,980 tokens

The same answer, without paying to replay the whole past.

Illustrative request · results vary by workload

03 — Memory architecture

Memory with
a filing system.

Facts, moments, and learned instructions do different jobs. Lumi0 keeps them distinct, queryable, and ready when they matter.

01

Semantic

Facts that stay true until they change.

02

Episodic

Moments and events worth carrying forward.

03

Procedural

Instructions your agent learns to follow.

Live memory index

One user, a useful record.

user u_1024

Stored memoryVer
  • Lacto-ovo vegetarian. Targets 130g of protein a day.

    v12
  • Finished push day. Mentioned pain in the right shoulder.

    v3
  • Check diet memory before writing any meal plan.

    v7
  • Prefers short answers. No emoji, ever.

    v4
  • Asked about creatine on Monday. Started 5g daily.

    v2

04 — Compression, visible

Keep the signal.
Lose the transcript.

The useful part of a conversation is often much smaller than the conversation itself. See what the model actually needs.

Request reduction

100k35k

tokens per request

retained
relevant facts
removed
repetition + filler

Illustrative example. Real compression is semantic, not a word-counting trick.

Raw conversation08 source passages

session / u_1024 / 100,412 tokens

  1. 01

    okay so quick recap of everything so far — you said you lift four days a week, push pull legs plus a bit of core on sundays when you feel like it,

  2. 02

    you're lacto-ovo vegetarian which means no meat no fish but eggs and dairy are fine, you're aiming for roughly 130 grams of protein per day which honestly

  3. 03

    is the hard part on a vegetarian diet, we talked about greek yogurt skyr paneer tempeh lentils and that you really don't like cottage cheese, noted,

  4. 04

    last tuesday you finished push day and mentioned your right shoulder felt off during overhead press, nothing sharp, just uncomfortable, so we flagged it,

  5. 05

    you asked about creatine on monday and decided to start five grams daily, you prefer short answers, no emoji, and you train early mornings before work,

  6. 06

    your gym has no hack squat machine, you travel for work about one week a month and need hotel-gym fallbacks, you hate burpees, you mentioned that twice,

  7. 07

    your sleep has been around six and a half hours lately which is probably why the squat stalled, and you'd rather add volume than cut rest days,

  8. 08

    and you said — and i'm quoting here — 'if you suggest burpees one more time i'm switching to a different app', so, no burpees, ever, understood.

unfiltered inputawaiting compression

05 — Integrations

Works with the stack you already run

Provider-agnostic by design. Point Lumi0 at any model, store, or platform — bring your own keys.

14 integrations · one API surface

  • 01Anthropicmodel
  • 02OpenAImodel
  • 03Google Geminimodel
  • 04Mistral AImodel
  • 05Ollamamodel
  • 06Hugging Facemodel
  • 07LangChainframework
  • 08Vercelplatform
  • 09AWSplatform
  • 10Cloudflareplatform
  • 11NVIDIAcompute
  • 12Supabasestorage
  • 13PostgreSQLstorage
  • 14Redisstorage

06 — Who it's for

Built for apps that talk
to the same person twice

  • 01

    AI companions

    Their dog's name, the breakup, and how they take their coffee — six months later.

  • 02

    Support agents

    The ticket from March, so nobody has to repeat themselves. Ever.

  • 03

    Health coaches

    The right shoulder injury — before programming another overhead press.

  • 04

    Sales copilots

    Everything from the first call, carried quietly into the fifteenth email.

07 — Production

Boring, on purpose.

The best infrastructure is the kind you stop thinking about. Here's the fine print — in large print.

  • <40msto read a memoryRetrieval sits on the hot path of every request, so remembering never feels like waiting.
  • 99.9%uptime, in writingAn SLA, not a promise. Your agents don't get to nap, and neither do we.
  • ScopedAPI keysA key per project, per environment. Rotatable, auditable, revocable in one call.
  • Meteredto the tokenPer-request usage you can actually export — no surprise line items at the end of the month.
  • LivewebhooksEvery create, update, and expiry fires an event. Your stack hears about it the moment it happens.
  • Lockedend to endEncrypted at rest and in transit. Memories belong to your users — we just keep them safe.

08 — Workflows

Memory that
keeps moving.

Coming soon

Trigger durable work when memory changes, then deliver the result back to your application.

workflow previewdraft_01
  1. 01

    Memory updated

    A new preference is saved

  2. 02

    Rebuild profile

    Compress and refresh context

  3. 03

    Notify your app

    Deliver a signed event

09 — Build vs. buy

Spend your time
on the product.

Memory looks like a weekend project right up until it needs to be reliable, inspectable, and cheap at scale.

Build it yourself

Six systems to own.

PATH 01
  • 01Vector database + embedding pipeline02 wks
  • 02Summarization that does not drift03 wks
  • 03Eviction, expiry, and versioning policy02 wks
  • 04Retrieval ranking + token budgets03 wks
  • 05Webhooks, retries, and an audit log02 wks
  • 06A dashboard to inspect stored memory02 wks

Before the first user has a memory worth retrieving.

14 wks

Use Lumi0

One memory API.

PATH 02

$ your-app

await memory.store({

content: "Prefers short answers.",

})

201 · indexed · versioned · observable

Retrieval, compression, and operations included from day one.

01 pm

Choose your complexity budgetbring any model

Estimates are illustrative — your mileage, and your sprint velocity, may vary.