You cannot connect without a credential. Step 2 generates one as part of booting the
server — identity in HyphaeDB always comes from an authenticated credential, never from the
request body (INV-5).
1
Get the stack
HyphaeDB ships as a container alongside a PostgreSQL (pgvector) database, both defined in
the repo’s The compose file builds the server image from source — at public launch this becomes a
published-image pull; the compose file is the single line that changes. The first run takes
longer: it compiles the server image once, and it is cached thereafter.
deploy/docker-compose.yml:2
Create your credential and start the server
Generate your API key and boot with it — the server registers the supplied key as the
first administrator on an empty registry (The same exported
HYPHAEDB_BOOTSTRAP_ADMIN, the
name:hyk_<kid>_<secret> form; any other key shape is rejected at boot). Because you
generate the key, it never needs to be recovered from logs, and it survives container
recreation:HYPHAE_API_KEY is what the SDK reads in step 3 — zero copy-paste of
secrets, nothing logged. These exact lines are CI-executed
(examples/_shared/quickstart_smoke.sh), so they cannot drift from the server.The server listens for gRPC on localhost:50051 and REST on localhost:8080. Verify it is
ready before connecting:/readyz returns 503 while the mesh is still rehydrating; its JSON body names the probe
that is not ready yet.This key is the first-operator credential (a
ServiceAdmin) — fine for a local
quickstart. In production, operators issue per-agent credentials instead: see
authorization. And if you just want runnable multi-agent
demos with zero credential steps at all, the examples/ tree
auto-provisions its identities over the Dev-profile POST /v1/dev/provision surface —
run any recipe with ../../_shared/up.sh && ./run.sh.3
Connect and start a session
Install a client SDK and connect with your endpoint and key. Starting a session scopes you
to a project and opens the background gossip stream that feeds your inbox and warms the
read cache.The Python and TypeScript snippets above are line-ranges of the CI-executed quickstart
probes under
examples/_shared/ — the Python variant is the primary example for the rest
of this page. See the Python, TypeScript, and
Rust SDK guides for the full surface.4
Store a memory
Storing a cell returns its server-assigned node id. The The write returns as soon as the cell is persisted;
propagation through the mesh runs asynchronously behind
the response.
cell_type is one of the
calibrated types — a DECISION carries a higher type multiplier (and so propagates
farther) than a routine TASK.5
Recall it
Recall returns the memories closest to your query text, ranked by relevance. Each
k caps the
number of hits.RecallHit carries the matched content, its cell_type, a rank-derived score,
and a from_cache flag indicating whether it came from the warm local cache or the
server.6
Watch the inbox (optional)
Because you started a session, diffs that propagate to your agent node arrive on a live
inbox. Iterate it to react to knowledge as it reaches you:The inbox is de-duplicated and replayable: on reconnect the client supplies its last-seen
watermark and the server replays what you missed before going live. This is the
propagation thesis in action — see gossip propagation.
Next steps
Propagation in five minutes
The payoff: watch a memory travel from one agent to another with no query in between.
Core concepts
Understand propagation, the energy model, and the HNSW mesh.
Python SDK
The full async client API: sessions, beacons, scenes, and the inbox.
MCP tools
Wire HyphaeDB into Claude Code or another MCP host as agent memory.
Operations
Configure, secure, and run a production deployment.