Research preview · v1.0.0

Strata is the embedded database for the AI era

Under construction · check back soon
strataengine: scripted replay
strata:main kv put greeting "hello"
(version) 1
strata:main branch create experiment
OK
strata:main kv get config.theme
(nil)
strata:main branch diff experiment
+1 key · config.theme
strata:main branch merge experiment
merged
strata:main kv get config.theme
"midnight"
experiment
strata:experiment kv put config.theme "midnight"
(version) 1

BRANCH

Try anything. Keep what works.

A branch is a complete database — fork it, change it, diff it, merge it back. Forking copies nothing, so it's instant at any size.

Fork

The whole database, forked instantly. Nothing copied.

strata — session
strata:main branch create risky
OK
mainjson · portfolio
{
"strategy": "balanced",
"stocks": 60,
"bonds": 30,
"cash": 10,
"rebalance": "quarterly",
"currency": "USD"
}
riskyjson · portfolio
{
"strategy": "balanced",
"stocks": 60,
"bonds": 30,
"cash": 10,
"rebalance": "quarterly",
"currency": "USD"
}

Modify

Four writes land on the branch. main is untouched.

strata — session
strata:mainbranch create risky
OK
strata:risky json set portfolio $.strategy "aggressive"
strata:risky json set portfolio $.stocks 80
strata:risky json set portfolio $.bonds 15
strata:risky json set portfolio $.cash 5
mainjson · portfolio
{
"strategy": "balanced",
"stocks": 60,
"bonds": 30,
"cash": 10,
"rebalance": "quarterly",
"currency": "USD"
}
riskyjson · portfolio
{
"strategy": "aggressive",
"stocks": 80,
"bonds": 15,
"cash": 5,
"rebalance": "quarterly",
"currency": "USD"
}

Diff

Every change, exactly — before real money moves.

strata — session
strata:mainbranch create risky
OK
strata:riskyjson set portfolio $.strategy "aggressive"
strata:riskyjson set portfolio $.stocks 80
strata:riskyjson set portfolio $.bonds 15
strata:riskyjson set portfolio $.cash 5
strata:main branch diff risky
4 keys changed
branch diff risky4 keys
- "strategy": "balanced",
+ "strategy": "aggressive",
- "stocks": 60,
+ "stocks": 80,
- "bonds": 30,
+ "bonds": 15,
- "cash": 10,
+ "cash": 5,
"rebalance": "quarterly",
"currency": "USD",

Merge

Keep the strategy that works.

strata — session
strata:mainbranch create risky
OK
strata:riskyjson set portfolio $.strategy "aggressive"
strata:riskyjson set portfolio $.stocks 80
strata:riskyjson set portfolio $.bonds 15
strata:riskyjson set portfolio $.cash 5
strata:mainbranch diff risky
4 keys changed
strata:main branch merge risky
merged
mainjson · portfoliomerged
{
"strategy": "aggressive",
"stocks": 80,
"bonds": 15,
"cash": 5,
"rebalance": "quarterly",
"currency": "USD"
}

PRIMITIVES

Every kind of data. One file.

Purpose-built stores that share one engine, one transaction model, and one branch tree.

Strata Foundryportfolio.stratainteractive — click around⎇ mainspace: default
filter keys…
config.theme
greeting
portfolio.value
user:1
portfolio.valuev3int
111080

History

v3111,0802026-06-11 16:55
v291,7502026-06-10 09:31
v198,4002026-06-09 14:02

01 / 05 · kv versioned key-value. history included

Read the kv guide →

TIME TRAVEL

Go back to any moment.

Every write is a version. Nothing is overwritten — drag the playhead and read the past.

time travelstrata · main
strata:main kv get portfolio.value --as-of "2026-06-12 00:00"
$111,080v3 $19,330written 2026-06-11 16:55:03
drag the playhead — every read accepts --as-of3 versions · 0 overwrites

NATIVE INFERENCE

Inference is built in.

A unified inference layer — embeddings, generation, and search through one primitive, with models from Hugging Face or hosted ones from OpenAI, Anthropic, and Google. Wire it once; it runs wherever the file does.

Hugging Face OpenAI Anthropic Google
inferstrata · main
strata:main infer embed "why did the deploy fail?"
[ 0.0182, −0.0441, 0.0976, … ] · 384 dims · bge-small-en (local)
strata:main infer generate "What changed before the deploy failed?" --model anthropic/claude
config.theme changed to "dusk" at 09:30:02 — ninety seconds before deploy v2.3 failed its healthcheck.
strata:main infer use openai/gpt-4o
OK — same call, new model
wire it once — inference runs wherever the file does
one layer · embed, generate, searchhugging face · openai · anthropic · google