SuperAPI AI Directory

install-memory-powermem-full

Agents & models

View repository

Updated 10-16 02:35

About this skill

PowerMem Memory — Full Guide

Skill id / OpenClaw folder name: install-memory-powermem-full. For the shortest install-only path, use install-memory-powermem (quickstart).

This skill folder includes supplementary docs:

  • powermem-intro.md — What PowerMem is, features, vs file-based memory.
  • config-reference.md — Config keys, state dir, commands.

How It Works

  • Auto-Capture: After a conversation, the plugin sends valuable user/assistant text to PowerMem (optional infer / intelligent extraction).
  • Auto-Recall: Before each turn, it searches memories and can inject a <relevant-memories> block into context.

When User Asks to Install

Recommended order (TO C): (1) OpenClaw installed and default model + provider auth configured. (2) Python 3.10+ verified (python3 --version) before venv / pip install. (3) pip install powermem and pmem available to the gateway (PATH or pmemPath). (4) Install the memory-powermem plugin. No powermem.env is required for the default path.

The curl install.sh deploys the plugin and OpenClaw entries; with -y it may still create ~/.openclaw/powermem/powermem.env as an optional template—it does not run pip install powermem. That file is not required if the user relies on OpenClaw-injected LLM + default SQLite.

  1. Check OpenClaw
    openclaw --version. If missing: npm install -g openclaw, openclaw onboard.
    Ensure agents.defaults.model is set (e.g. openai/gpt-4o-mini) and the corresponding provider / API key works for normal chat—the plugin reuses that for PowerMem when useOpenClawModel is true (default).

  2. Check Python (required before venv / pip)
    PowerMem needs Python 3.10 or newer. Run python3 --version first; the minor version must be ≥ 10 (e.g. 3.10.x, 3.12.x). Optional strict check:

    python3 -c "import sys; assert sys.version_info >= (3, 10), 'Need Python 3.10+'; print(sys.version.split()[0], 'OK')"
    

    If it fails: upgrade Python or use a specific binary (e.g. python3.12) for all commands below instead of python3.

  3. Install PowerMem (CLI — default)

    • Venv recommended: e.g. python3 -m venv ~/.openclaw/powermem/.venv && source ~/.openclaw/powermem/.venv/bin/activate.
    • pip install powermem.
    • Defaults: Plugin injects SQLite at <OpenClaw stateDir>/powermem/data/powermem.db and LLM + embedding env vars derived from OpenClaw. Typical stateDir is ~/.openclaw unless the user uses another instance (OPENCLAW_STATE_DIR, --workdir).
    • Optional envFile: Path to a PowerMem .env for extra tuning. If the file exists, pmem loads it; OpenClaw-derived vars still override the same keys when useOpenClawModel is true.
    • useOpenClawModel: false: Disables injection; user must supply a complete PowerMem config via .env and/or environment variables.
    • Verify: pmem --version. If the gateway does not inherit the venv, set pmemPath to the absolute path of pmem.
  4. HTTP path (enterprise / shared server)

    • Same Python 3.10+ requirement as CLI; then pip install powermem, .env in server working directory, powermem-server --host 0.0.0.0 --port 8000.
    • Check: curl -s http://localhost:8000/api/v1/system/health.
  5. Install the plugin
    openclaw plugins install /path/to/memory-powermem (or openclaw plugins install memory-powermem from npm), or run install.sh from the memory-powermem repo — see One-click plugin deploy (install.sh) below for curl / flags / --workdir.

  6. Configure OpenClaw

    CLI — defaults (recommended, matches plugin defaults):
    Do not set envFile unless you need a file. Example:

    openclaw config set plugins.enabled true
    openclaw config set plugins.slots.memory memory-powermem
    openclaw config set plugins.entries.memory-powermem.config.mode cli
    openclaw config set plugins.entries.memory-powermem.config.pmemPath pmem
    openclaw config set plugins.entries.memory-powermem.config.useOpenClawModel true --json
    openclaw config set plugins.entries.memory-powermem.config.autoCapture true --json
    openclaw config set plugins.entries.memory-powermem.config.autoRecall true --json
    openclaw config set plugins.entries.memory-powermem.config.inferOnAdd true --json
    

    CLI — optional .env override file:

    openclaw config set plugins.entries.memory-powermem.config.envFile "$HOME/.openclaw/powermem/powermem.env"
    

    (Only matters if that path exists; OpenClaw can still override LLM keys when useOpenClawModel is true.)

    HTTP:

    openclaw config set plugins.entries.memory-powermem.config.mode http
    openclaw config set plugins.entries.memory-powermem.config.baseUrl http://localhost:8000
    

    Optional: apiKey if the server uses auth.

  7. Verify
    Restart gateway, then in another terminal:

    openclaw plugins list
    

    Confirm memory-powermem is listed and its status is loaded. If it is missing or not loaded, fix install/slot config and restart the gateway before running LTM checks.

    openclaw ltm health
    openclaw ltm add "I prefer coffee in the morning"
    openclaw ltm search "coffee"
    

One-click plugin deploy (install.sh)

Requires: OpenClaw installed (openclaw --version). The script does not run pip install powermem; ensure pmem is on PATH when the gateway runs or set pmemPath.

Default: configures plugin CLI mode. With -y, it may still create ~/.openclaw/powermem/powermem.env as an optional template — not required if you use OpenClaw-injected LLM + default SQLite.

curl -fsSL https://raw.githubusercontent.com/ob-labs/memory-powermem/main/install.sh | bash

From a local clone (no download):

cd /path/to/memory-powermem && bash install.sh

Non-interactive (defaults: CLI, may seed env file):

curl -fsSL https://raw.githubusercontent.com/ob-labs/memory-powermem/main/install.sh | bash -s -y

Target a different OpenClaw instance:

curl -fsSL https://raw.githubusercontent.com/ob-labs/memory-powermem/main/install.sh | bash -s -- --workdir ~/.openclaw-second

What the script does: resolve OpenClaw workdir → choose or default cli / http and paths → for CLI, optionally seed powermem.env if missing → deploy plugin to <workdir>/extensions/memory-powermem → npm install there → set OpenClaw config (plugins.enabled, slots.memory, entries.memory-powermem).

After (CLI): openclaw gateway, then openclaw ltm health — you usually do not need to edit powermem.env when using plugin defaults.

After (HTTP): start PowerMem with a proper .env in the server cwd, then start the gateway.

Copy a skill into OpenClaw

Copy one skill you want into ~/.openclaw/skills/<skill-name>/ (folder name should match the skill id). The quickstart and full-guide skills are independent.

Quickstart (install-memory-powermem) — Linux / macOS:

mkdir -p ~/.openclaw/skills/install-memory-powermem
cp /path/to/memory-powermem/skills/install-memory-powermem/SKILL.md \
   ~/.openclaw/skills/install-memory-powermem/

Full guide (install-memory-powermem-full) — Linux / macOS: copy all .md files in that folder.

mkdir -p ~/.openclaw/skills/install-memory-powermem-full
cp /path/to/memory-powermem/skills/install-memory-powermem-full/*.md \
   ~/.openclaw/skills/install-memory-powermem-full/

Full guide — Windows (PowerShell):

New-Item -ItemType Directory -Force "$env:USERPROFILE\.openclaw\skills\install-memory-powermem-full"
Copy-Item "path\to\memory-powermem\skills\install-memory-powermem-full\*.md" `
  "$env:USERPROFILE\.openclaw\skills\install-memory-powermem-full\"

Multi-instance OpenClaw (--workdir / OPENCLAW_STATE_DIR)

Install script:

curl -fsSL https://raw.githubusercontent.com/ob-labs/memory-powermem/main/install.sh | bash -s -- --workdir ~/.openclaw-second

Manual config for that instance:

OPENCLAW_STATE_DIR=~/.openclaw-second openclaw config set plugins.slots.memory memory-powermem

Plugin data and default SQLite follow that instance’s stateDir.

Available Tools

Tool Description
memory_recall Search long-term memories. Params: query, optional limit, scoreThreshold.
memory_store Save text; optional infer. Params: text, optional importance.
memory_forget Delete by memoryId or by query search.

Configuration (summary)

Field Default Description
mode cli cli or http.
baseUrl — Required for HTTP; if mode omitted and baseUrl set → HTTP.
apiKey — HTTP server auth.
envFile — Optional CLI .env (used only if file exists).
pmemPath pmem CLI binary path.
useOpenClawModel true Inject LLM/embedding from OpenClaw + default SQLite under state dir.
recallLimit 5 Max memories per recall.
recallScoreThreshold 0 Min score 0–1.
autoCapture / autoRecall / inferOnAdd true Auto memory pipeline and infer on add.

Daily Operations

openclaw gateway

openclaw ltm health
openclaw ltm add "Some fact to remember"
openclaw ltm search "query"

openclaw config set plugins.slots.memory none
openclaw config set plugins.slots.memory memory-powermem

Restart the gateway after slot or plugin config changes.

Troubleshooting

Symptom Fix
Python < 3.10 Run step 2 first; upgrade Python or use python3.11 / python3.12 for venv and pip install. Do not skip the version check.
pip install powermem fails Confirm Python 3.10+, clean venv. See PowerMem issues.
pmem not found Activate venv or set pmemPath to the full binary.
openclaw ltm health unhealthy (CLI) Confirm agents.defaults.model and provider keys in OpenClaw; gateway version should expose plugin config + runtime.modelAuth. Or set useOpenClawModel: false and a full envFile.
Health OK but add/search errors Embedding/LLM mismatch for your provider—see gateway logs; try optional PowerMem .env from .env.example.
Wrong SQLite file / instance Data is under that OpenClaw instance’s stateDir (OPENCLAW_STATE_DIR / --workdir).
HTTP mode Server running, baseUrl correct, apiKey if enabled.
openclaw plugins list: no memory-powermem, or status is not loaded Re-run plugin install; set plugins.enabled true and plugins.slots.memory = memory-powermem; restart gateway; run openclaw plugins list again until memory-powermem shows loaded.
Add/search returns 500 or empty Check PowerMem / gateway logs; often missing or mismatched LLM_* / EMBEDDING_* in envFile when useOpenClawModel is false or overrides are incomplete.