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:
| Path | When to use | Setup time |
|---|---|---|
| OpenClaw | You run a fleet of agents and want them all to share memory | ~3 min |
| MCP | A single client (Claude Desktop, Claude Code, Cursor, Windsurf) | ~1 min |
| REST | Custom code in any language | ~30 sec |
| Rail SDK | Your 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:
# 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_xxxPick 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" | bashThe 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 restartVerify
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, …).