HTTP status
Free is 60 requests per minute, Pro and Starter 600, Ultra 2,000. Unlimited has no per-minute request cap. See Usage and allowances.
Empty recall or empty knowledge bases
Recall only returns eligible rows for this account and this request’s scope. An identifier shortcut or a missing embedding provider skips vector search and can still return lexical matches. The recall response says which path it took. A knowledge base returns nothing when:- the base is inactive
- the base has an agent allow-list that does not include this
agentId(and does not include*) - you passed no
agentId, and the allow-list is a specific list - the chunks you expect carry a channel, and this request’s channel does not match
agentId and no channel shows the management list, including bases this agent cannot query. Query and recall apply the filter. See Scoping and access.
Broad recall does not search knowledge bases. Call the knowledge-base query tool.
Embeddings and health
Embedding uses the OpenRouter key configured on the account. If that key is missing, embedding calls fail withmissing_openrouter_key and retrieval can run degraded, without vectors. Add the key in the dashboard. A key in the hosted MCP process environment does not stand in for the account key, and it does not authenticate the request.
GET health (authenticated) reports status: "alive" and readiness: "unknown". That means the key was accepted and a database read succeeded. It does not probe the embedding provider, distillation, capture, or recall. version on that response is 0.10.1.
Injection and capture
Injection is off by default. SetMEMORY_CRYSTAL_INJECT_RECALL=1 or true, or set injectRecall: true in config. A non-empty environment variable takes precedence over config. Grok ignores that setting and cannot inject. Call crystal_recall or crystal_what_do_i_know.
Capture on a Full or Capture host runs when the hooks or plugin are installed and capture is not disabled. On OpenClaw, captureTurns defaults to on. MEMORY_CRYSTAL_CAPTURE_TURNS overrides it. A skill file does not turn capture or injection on.
Native PowerShell installs MCP config and skills. It does not install Bash-only hooks, so Codex, Claude Code, Cursor, Factory, and Grok capture and injection from a PowerShell install need a Bash re-run. Hermes and the OpenClaw native plugin are Bash-only. See Installation.
Local backend
For a checkout of this repo:bin/doctor.ps1 runs the Bash doctor. It needs Bash.
Check these before reinstalling:
- Docker is running.
- Ports
3210(backend),3211(site), and6791(dashboard) are free on127.0.0.1. - Clients you chose as local use
http://127.0.0.1:3211as the API base andhttp://127.0.0.1:3211/api/mcpfor MCP. Port 3210 is the backend’s own port, not a client URL.
bin/upgrade prints upgrade instructions. It does not swap the artifact. bin/rollback stops the backend.
If a config write failed, restore the backup path the installer printed and run the installer again.
OpenClaw
crystal-memory plugin. Inside a session, the plugin tools crystal_status and crystal_doctor report plugin status and config. npm run crystal:doctor is a repository-checkout command.