Caura / docs
Getting Started

Quickstart

Connect any AI agent to Caura in five minutes — pick managed, self-hosted, or REST.

You have four integration paths. Pick the one that matches your stack:

PathWhen to useSetup time
OpenClawYou run a fleet of agents and want them all to share memory~3 min
MCPA single client (Claude Desktop, Claude Code, Cursor, Windsurf)~1 min
RESTCustom code in any language~30 sec
Rail SDKYour own Python or TypeScript agent that should recall rules and facts before each turn~2 min

Create an API key

For the managed deployment, sign in at /signin and generate a tenant-scoped key from Connect › Keys, or press Create your key in Connect › Get started, which then hands you ready-made snippets for Claude Code, Cursor, Claude Desktop, VS Code, Gemini CLI and REST. Keys start with mc_. A key belongs to one tenant, your isolated memory space; see Tenants. For a tour of the app's places, start at Home.

For self-hosted OSS, pick one auth mode in your .env:

.env
# Single-tenant, no key needed
IS_STANDALONE=true

# Or: multi-tenant, full access
ADMIN_API_KEY=admin_xxx

# Or: shared gate (key + X-Tenant-ID header)
CAURA_API_KEY=mc_xxx

Pick your path

Run on the gateway host:

curl -s -H "X-API-Key: $CAURA_API_KEY" \
"https://caura.dev/api/v1/install-plugin?fleet_id=YOUR_FLEET_ID" | bash

The installer downloads the plugin, builds it, edits ~/.openclaw/openclaw.json to claim the memory slot, and writes the env file. Restart the gateway:

openclaw gateway restart

Verify

curl "https://caura.dev/api/v1/health" -H "X-API-Key: mc_xxx"
# {"status": "ok", "storage": "connected", "redis": "connected", "event_bus": "ok"}

A 503 means a required dependency is unhealthy (storage / redis / event_bus). For OpenClaw installs, your node should appear in Agents › OpenClaw fleets within 60 seconds of the first heartbeat (HEARTBEAT_INTERVAL_SECONDS = 60 per core-api/src/core_api/constants.py).

Write your first memory

For OpenClaw and MCP, just talk to your agent:

Remember that I prefer concise answers and dark mode.

Then ask later:

What do you know about my UI preferences?

The agent calls caura_write and caura_recall automatically. The exact write response shape is defined by the MemoryOut schema in core-api/src/core_api/schemas.py (id, tenant_id, fleet_id, agent_id, memory_type, title, content, weight, entity_links, status, …).

Next