Any
A reactive, local-first database. Documents live on your devices, merge as CRDTs, sync end-to-end encrypted, and answer Mongo-style queries with live subscriptions — online or not. Chat and a block editor are built in as CRDT modules, and anyrt runs sandboxed Python programs, scheduled jobs, and agents right alongside your data.
Developer preview. APIs may change; MIT licensed. Preview status.
Get started
The block below is the whole loop; Install explains each line. A binary with nothing configured joins the production any-sync network — Networks if you want a sandbox.
$ export ANY_DATA_DIR="$HOME/.any-demo"
$ export ANY_INDEX_EMBEDDER=local
$ any init
A new wallet was generated. Write down the recovery phrase below.
You will NOT see it again. Anyone with this phrase owns the account.
<twelve words — your only way to restore the account>
{
"accountId": "A8tR…",
"created": true
}
$ any run &
LISTENING 127.0.0.1:7001
$ until any status >/dev/null 2>&1; do sleep 0.2; done
$ API=http://127.0.0.1:7001/v1
$ S=$(curl -fsS $API/spaces -H 'content-type: application/json' -d '{"name":"notes"}' | jq -er .id)
$ curl -fsS $API/spaces/$S/objects -H 'content-type: application/json' \
-d '{"type":"page","initialProperties":{"any":{"name":"hello"}}}'
{
"objectId": "bafyrei…"
}
$ curl -fsSN $API/spaces/$S/objects/query/subscribe -H 'content-type: application/json' \
-d '{"sort":["-modifiedAt"],"limit":20}'
event: ready
data: {}
event: snapshot
data: {"records":[{"id":"bafyrei…","any":{"type":"page","name":"hello"},…}]}
event: changes
data: [{"versionId":"…","updated":[…]}]
Database
Spaces of objects and datasets, typed properties, Mongo-style filters, aggregation pipelines, version history — every byte CRDT-merged and encrypted.
Learn moreSync & realtime
Windowed live queries over SSE, head-sync with peers, sync status, an ephemeral event bus, end-to-end encrypted push.
Learn moreRuntime
Python programs in a wasm cage with a recorded effect boundary; cron / once / event triggers pinned to a device; the bao agent.
Learn moreEverything
Why local-first
Why it matters. A hosted backend is available exactly when its vendor is. In any every device holds the full state of every space it belongs to, every write lands locally first, and peers converge later through encrypted sync — the network is an optimisation, not a dependency. Relay nodes store ciphertext and can't read a single document.
- Reactive — every read has a live form:
/querygives a snapshot,/query/subscribekeeps a window of results current. - Mongo-style queries —
$eq,$in,$regex,$text, nested paths, array matching,$group/$unwindpipelines. - CRDT — concurrent edits from any number of devices merge deterministically; versions are content-addressed changes you can diff and view.
- Built-in messenger and editor — chat messages with reactions, mentions and read tracking; block documents with a markdown bridge; ready-made apps (wiki, journal, contacts, CRM) installed from a server catalog.
- Runtime in your data — programs, triggers and agent memory are records in your encrypted space, not rows in a vendor's database.
Also available as llms.txt for language models.