Install
openclaw skills install @wey-gu/nowledge-memEnables OpenClaw to use shared Nowledge Mem memory locally or remotely for persistent multi-tool AI context storage and retrieval.
openclaw skills install @wey-gu/nowledge-memUse this guide when an AI agent is helping a user install, configure, verify, or explain the Nowledge Mem OpenClaw plugin.
Nowledge Mem is not just "memory for OpenClaw." It is the user's shared memory layer across OpenClaw, Claude Code, Cursor, browser capture, imported threads, and documents. OpenClaw joins that context exchange.
apiUrlWhen talking to users:
apiUrl, and add apiKey when the server requires auth."Good user-facing explanation:
OpenClaw can now read the same memory you already built in your other AI tools, and what happens in OpenClaw can enrich that shared memory too.
This task is not complete until all of the following are true:
nmem is availablenmemopenclaw nowledge-mem status succeedsplugins.allow warningsAsk the user which setup they want:
Explain the difference plainly:
nmemnmem --api-url ...; add apiKey when that server has auth enabledspace first, plugin config spaceTemplate only when the launcher already exposes a trustworthy lane signal, and NMEM_SPACE="<space name>" only as the fallback for CLI-style launches instead of inventing a second OpenClaw-only memory namespacenmemnmem --version
If this fails:
pip install nmem-cli, or on Arch Linux yay -S nmem-cli / paru -S nmem-cliLocal mode:
nmem --json status
Remote mode without auth:
nmem --json --api-url "$API_URL" status
Remote mode with auth:
NMEM_API_KEY="$API_KEY" nmem --json --api-url "$API_URL" status
Success means the backend responds correctly through nmem. Do not skip this step and assume the URL/auth is right.
Default install:
openclaw plugins install clawhub:nowledge-mem
If this fails with archive integrity mismatch, update OpenClaw first, then
retry. Current ClawHub packages require OpenClaw 2026.5.3 or later.
To update an existing install:
openclaw plugins install clawhub:nowledge-mem --force
Alternatively, if the user is installing from OpenClaw's default registry rather than ClawHub, this also works:
openclaw plugins install @nowledge/openclaw-nowledge-mem
Important facts:
memory slot to openclaw-nowledge-memDo not tell the user to hand-edit those settings unless they are using a manual/path setup.
Current OpenClaw releases require an explicit grant before a non-bundled plugin
can read conversation content from agent_end. Set it after install:
openclaw config set plugins.entries.openclaw-nowledge-mem.hooks.allowConversationAccess true --strict-json
Then inspect the host's effective tool policy:
openclaw config get tools
tools.allow already exists, preserve that list and add
openclaw-nowledge-mem to it.coding, messaging, or
minimal is set, preserve tools.alsoAllow and add
openclaw-nowledge-mem to it.nowledge_mem_*
names. The plugin id expands to the complete manifest-declared tool contract.Example for a coding profile with no prior alsoAllow entries:
openclaw config set tools.alsoAllow '["openclaw-nowledge-mem"]' --strict-json
Local mode:
Remote mode:
apiUrl and apiKey in the OpenClaw plugin settings~/.nowledge-mem/openclaw.json only when the user wants a stable machine-local override or scripted setup~/.nowledge-mem/openclaw.json example:
{
"apiUrl": "https://nowledge.example.com",
"apiKey": "your-api-key-here"
}
Important precedence rule:
~/.nowledge-mem/openclaw.json overrides OpenClaw plugin settingsNMEM_API_URL or NMEM_API_KEY env vars should keep winningIf the remote server does not require auth, omit apiKey.
If OpenClaw warns that plugins.allow is empty, or the user wants explicit trust for non-bundled plugins, add:
{
"plugins": {
"allow": ["openclaw-nowledge-mem"]
}
}
Explain this correctly:
plugins.allow trusts the plugin idplugins.load.paths, they should review those tooRestart OpenClaw so the plugin and hooks are active.
If an agent is doing the restart automatically, tell the user before triggering it.
First check the plugin status:
openclaw nowledge-mem status
If only memory_search and memory_get tools are available (other Nowledge Mem tools missing), inspect openclaw config get tools first. A restrictive profile needs the plugin id in tools.alsoAllow, or in the existing tools.allow list. Then verify the memory slot in ~/.openclaw/openclaw.json:
{
"plugins": {
"slots": { "memory": "openclaw-nowledge-mem" }
}
}
If missing, reinstall (openclaw plugins install clawhub:nowledge-mem) which sets the slot automatically. This is common after upgrading OpenClaw to 3.22+ where the default memory slot changed.
Then verify in chat.
For a clean synthetic check:
/remember We chose PostgreSQL for task events/recall PostgreSQL/newWhat database did we choose for task events?If the user already has real memory in Nowledge Mem, prefer a real question over a synthetic demo. Good examples:
What was I working on this week?What did we already decide about the task API?Find the conversation where we discussed Redis cachingAfter setup succeeds, send a short handoff that covers all four points:
Good structure:
OpenClaw is now connected to Nowledge Mem.
Try this next:
- Ask OpenClaw: "What was I working on this week?"
If you want more history:
- Import old AI threads or browser-captured chats into Nowledge Mem so OpenClaw can search them too.
What to expect:
- Local mode needs no API key.
- Remote mode uses the same apiUrl and, when auth is enabled, the same apiKey you already verified with nmem.
- If OpenClaw warns that plugins.allow is empty, add openclaw-nowledge-mem to the allowlist to pin trust explicitly.
| Symptom | What to do |
|---|---|
nmem --json status fails in local mode | Start Nowledge Mem locally first |
| Remote mode fails | Re-run nmem --json --api-url ... status with the exact URL and auth you plan to use |
openclaw nowledge-mem status fails after install | Restart OpenClaw and confirm the plugin was installed successfully |
ClawHub reports archive integrity mismatch | Update OpenClaw to 2026.5.3+ or latest, then reinstall with openclaw plugins install clawhub:nowledge-mem --force |
plugins.allow is empty warning | Add openclaw-nowledge-mem to plugins.allow if the user wants explicit trust |
| Remote config seems ignored | Check whether ~/.nowledge-mem/openclaw.json is overriding plugin settings |
| Local mode unexpectedly talks to a remote server | Check for stale NMEM_API_URL / NMEM_API_KEY in the environment or an overriding ~/.nowledge-mem/openclaw.json |
| Plugin tools missing | Inspect openclaw config get tools. Under a restrictive profile, preserve tools.alsoAllow and add openclaw-nowledge-mem; if tools.allow already exists, add the plugin id there instead. Do not add individual nowledge_mem_* names. Also ensure the plugin is trusted in plugins.allow. |
| Memory tools work but Threads do not sync | Update to 0.8.30+, set plugins.entries.openclaw-nowledge-mem.hooks.allowConversationAccess=true, restart the gateway, and verify with nmem t list --source openclaw -n 20. |
must declare contracts.tools before registering agent tools | Update the plugin to 0.8.27+ and restart OpenClaw. Newer OpenClaw builds require plugin authors to declare tool ownership in the manifest before runtime tool registration. |