@matrixorigin/thememoria
v0.4.2
Published
OpenClaw memory plugin that uses the Rust Memoria CLI/API for embedded and remote backends.
Maintainers
Readme
Memory (Memoria) for OpenClaw
This package turns MatrixOrigin Memoria into an installable OpenClaw memory plugin.
Architecture
| Backend | Transport | Binary needed | Use case |
|---------|-----------|---------------|----------|
| embedded | Rust memoria CLI → local MatrixOne DB | Yes | Self-hosted / local dev |
| api | Direct HTTP → Memoria REST API | No | Cloud OpenClaw, any environment |
api mode:
Plugin → MemoriaHttpTransport → fetch() → Memoria REST API
embedded mode:
Plugin → MemoriaMcpSession → spawn("memoria mcp") → local MatrixOne DB- Durable memory lives in MatrixOne
- Snapshots, rollback, branches, merge, diff, governance, reflect, and entity extraction are handled by Memoria
- In
embeddedmode the plugin shells out to thememoriabinary via MCP stdio - In
apimode the plugin calls the Memoria REST API directly — no binary needed - OpenClaw keeps its own tool and hook surface; the storage backend is Memoria
Quick Start
Prerequisites
openclaw --version
# -> OpenClaw vX.Y.Z (CLI is installed and in PATH)Cloud Setup (Recommended)
Cloud mode connects directly to the Memoria REST API. No binary download needed.
# 1. Install plugin
openclaw plugins install @matrixorigin/thememoria
# 2. Setup cloud backend (also enables the plugin)
openclaw memoria setup \
--mode cloud \
--api-url <MEMORIA_API_URL> \
--api-key <MEMORIA_API_KEY>
# 3. Verify
openclaw memoria health
# Expected: "status": "ok"If the npm package is not yet published, install from source:
mkdir -p ~/.openclaw/plugins-src
git clone https://github.com/matrixorigin/Memoria.git ~/.openclaw/plugins-src/Memoria
openclaw plugins install --link ~/.openclaw/plugins-src/Memoria/plugins/openclawThen continue with step 2 above.
Local Setup (Embedded)
Local mode runs the Rust memoria binary against a self-hosted MatrixOne instance.
# 1. Install memoria CLI
curl -sSL https://raw.githubusercontent.com/matrixorigin/Memoria/main/scripts/install.sh | bash -s -- -y -d ~/.local/bin
# 2. Install plugin
openclaw plugins install @matrixorigin/thememoria
# 3. Setup local backend (also enables the plugin, quick start with defaults)
openclaw memoria setup \
--mode local \
--install-memoria \
--embedding-api-key <EMBEDDING_API_KEY>
# 4. Verify
openclaw memoria health
# Expected: "status": "ok"For advanced local configuration:
openclaw memoria setup \
--mode local \
--db-url <MATRIXONE_DSN> \
--embedding-provider <provider> \
--embedding-model <model> \
--embedding-api-key <embedding_key> \
--embedding-dim <dim> \
--install-memoria \
--memoria-bin ~/.local/bin/memoriaAgent Install Prompt
Use this prompt to have an OpenClaw agent install the plugin automatically.
Replace <MEMORIA_API_URL> and <MEMORIA_API_KEY> with your credentials.
Install the Memoria memory plugin for my OpenClaw in cloud mode.
Credentials:
- API URL: <MEMORIA_API_URL>
- API Key: <MEMORIA_API_KEY>
Run these steps in order. Stop and report if any step fails.
1) Install plugin:
openclaw plugins install @matrixorigin/thememoria
2) Setup cloud backend (this also enables the plugin):
openclaw memoria setup --mode cloud --api-url <MEMORIA_API_URL> --api-key <MEMORIA_API_KEY>
3) Verify:
openclaw memoria health
Expected: "status": "ok"
Rules:
- Show every command you run and its full raw output
- Do not summarize or hide errors
- If a step fails, classify the error (network / auth / config / missing-binary) and suggest the exact fix command
- Do NOT use `openclaw memory` commands — those are built-in file memory, not MemoriaEnvironment Variables (Local/Embedded Only)
Cloud users: skip this section. Cloud mode only needs
--api-urland--api-key.
| Variable | Description | Default |
|----------|-------------|---------|
| MEMORIA_DB_URL | MatrixOne DSN | mysql://root:[email protected]:6001/memoria |
| MEMORIA_EMBEDDING_PROVIDER | Embedding service | openai |
| MEMORIA_EMBEDDING_MODEL | Model name | text-embedding-3-small |
| MEMORIA_EMBEDDING_API_KEY | Required unless provider is local | — |
| MEMORIA_EMBEDDING_BASE_URL | Optional for OpenAI, required for gateways | — |
| MEMORIA_EMBEDDING_DIM | Must match model before first startup | — |
| MEMORIA_LLM_API_KEY | Optional, for autoObserve and LLM-backed tools | — |
| MEMORIA_LLM_BASE_URL | Optional OpenAI-compatible base URL | — |
| MEMORIA_LLM_MODEL | Model for auto-observe and reflection | gpt-4o-mini |
| MEMORIA_EXECUTABLE | Explicit path to memoria binary | — |
| MEMORIA_RELEASE_TAG | Rust Memoria release tag to install | installer default |
Tool Surface
The plugin exposes these tools to OpenClaw:
memory_search,memory_get,memory_store,memory_retrieve,memory_recallmemory_list,memory_stats,memory_profile,memory_correct,memory_purge,memory_forget,memory_healthmemory_observe,memory_governance,memory_consolidate,memory_reflect,memory_extract_entities,memory_link_entities,memory_rebuild_index,memory_capabilitiesmemory_snapshot,memory_snapshots,memory_rollbackmemory_branch,memory_branches,memory_checkout,memory_branch_delete,memory_merge,memory_diff- Compatibility CLI aliases under
openclaw ltm ...
Common Pitfalls
openclaw memoria vs openclaw memory: This plugin uses openclaw memoria. The openclaw memory namespace is OpenClaw's built-in file memory — a different system entirely.
macOS sh vs bash: The installer script uses bash syntax. If piping, use bash -s --, not sh -s --.
Explicit memory mode is default (autoObserve=false): The plugin does not auto-write memories from conversation turns. Writes happen when the agent explicitly calls tools like memory_store. To enable auto-capture, set MEMORIA_AUTO_OBSERVE=true and provide MEMORIA_LLM_API_KEY + MEMORIA_LLM_MODEL.
Old schema vs new runtime: If upgrading from an older Memoria setup, use a fresh database name in MEMORIA_DB_URL to avoid schema drift.
Verification
| Level | Check | Command | Pass |
|---|---|---|---|
| 1. Plugin loaded | OpenClaw recognizes plugin | openclaw plugins list | thememoria listed and enabled |
| 2. Backend reachable | Memoria connectivity | openclaw memoria health | status: ok |
| 3. Memory persisted | Store → retrieve round-trip | openclaw memoria stats | Non-zero memory count after a write |
Additional diagnostics:
openclaw memoria capabilities # config/plugin check (no live backend needed)
openclaw memoria verify # deeper diagnostic
openclaw ltm list --limit 10 # list recent memoriesNotes:
openclaw memoria setupis the recommended onboarding commandopenclaw memoria connectremains available as the lower-level config-only variant (no--install-memoriasupport)setup/connectwill mergethememoriaintoplugins.allowto satisfy OpenClaw allow-list policy- OpenClaw may print "Restart the gateway" after
plugins install— this is unnecessary for CLI commands likesetupandhealth
Uninstall
curl -fsSL https://raw.githubusercontent.com/matrixorigin/Memoria/main/plugins/openclaw/scripts/uninstall-openclaw-memoria.sh | \
bash -s --Removes the plugin entry, tool policy additions, managed skills, and the default managed checkout path.
Compatibility Notes
memory_getis resolved from recent tool results plus a bounded scan (Rust MCP has no direct get-by-id)memory_statsis derived from available MCP outputs (inactive-memory and entity totals not currently available)memory_entitiesis not exposed (no matching Rust MCP tool)- Old
mysql+pymysql://...DSNs are normalized tomysql://...automatically - Schema drift from older Memoria stacks can cause runtime errors — use a fresh DB name to avoid
Development
openclaw/client.tstalks to Rust Memoria over MCP stdio (embedded) or HTTP (api)- Plugin manifest and config use
memoriaExecutablefor embedded mode - Installer/uninstaller are pure shell + Node, no Python dependency
- No bundled Python runtime
