Interim page. Maintained by hand until it is generated from the resolved command index (IDL). Where this page and
strata agents commands --jsondisagree, the command index wins.
The operations you reach for most, one per capability. Examples assume a durable database at ./my-db; swap in --cache for an ephemeral one. The full surface is in the Command Reference; how to invoke the binary is in the CLI Reference.
Targeting and output
strata ./my-db kv get k # durable path (or --db ./my-db, or STRATA_DB=./my-db)
strata --cache kv get k # ephemeral, nothing persisted
strata --json ./my-db kv get k # {"type":…,"data":…} envelope; values base64
strata --raw ./my-db kv get k # bare value, for scripts
KV
strata ./my-db kv put greeting hello # created greeting applied=true
strata ./my-db kv get greeting # hello
strata ./my-db kv list --prefix user: # keys with a prefix
strata ./my-db kv delete greeting
JSON
strata ./my-db json set user:1 '$' '{"name":"Ada","age":36}' # $ is the document root
strata ./my-db json get user:1 '$.name' # "Ada"
strata ./my-db json set user:1 '$.age' 37 # update one path
strata ./my-db json list --prefix user:
Event log
strata ./my-db event append signup '{"user":"ada"}' # created applied=true
strata ./my-db event count # 1
strata ./my-db event get 0 # sequences start at 0
strata ./my-db event by-type signup
Vector
strata ./my-db vector collection create docs 4 --metric cosine
strata ./my-db vector upsert docs d1 '[0.1,0.2,0.3,0.4]' --metadata '{"lang":"en"}'
strata ./my-db vector query docs '[0.1,0.2,0.3,0.4]' -k 3 # d1 1.0
# metadata filter: AND-composed conditions, each value tagged by type
strata ./my-db vector query docs '[0.1,0.2,0.3,0.4]' -k 3 \
--filter '{"conditions":[{"field":"lang","op":"eq","value":{"type":"string","value":"en"}}]}'
Graph
strata ./my-db graph create social
strata ./my-db graph add-node social alice --properties '{"city":"tokyo"}'
strata ./my-db graph add-edge social alice follows bob --weight 1.0
strata ./my-db graph neighbors social alice --direction outgoing
strata ./my-db graph pagerank social # analytics over the graph
Branches
strata ./my-db branch fork default experiment # cheap copy-on-write fork
strata ./my-db kv put city tokyo --branch experiment
strata ./my-db kv get city --branch experiment # tokyo
strata ./my-db kv get city # unchanged on default
strata ./my-db branch list
Spaces
strata ./my-db space create staging
strata ./my-db kv put k v --space staging # isolated from the default space
strata ./my-db space list
Time travel
Every write receipt carries a commit clock value at data.commit.timestamp (a small integer, visible with --json). Pass it back with --as-of on any read. It is the commit clock, not a wall-clock time.
strata --json ./my-db kv put k v1 # data.commit.timestamp: 3
strata ./my-db kv put k v2 # data.commit.timestamp: 4
strata ./my-db kv get k --as-of 3 # v1
Inference
strata inference models list
strata inference embed <model> "text to embed"
strata inference generate <model> "prompt" --max-tokens 128 --temperature 0.7
Errors
Failures carry a stable code, a hint, and a per-code reference. Recover by code and class, never by message text.
$ strata ./my-db vector get missing k1
not_found.engine.vector_collection: vector collection does not exist (err_local_…)
hint: Check that the requested branch, space, collection, graph, document, key, or model exists.
ref: https://stratadb.org/e/not_found.engine.vector_collection
Full registry: Error Reference and Error Handling.
For agents
strata agents guide # the full offline usage guide, version-matched
strata agents commands --json # the machine-readable command catalog
strata agents errors --json # the public error-code registry
strata ./my-db mcp serve # Model Context Protocol over stdio
See Agents and MCP and the MCP Server Reference.