← Back to Plugins
Tools

Remempalace

derekmensch-alt By derekmensch-alt 👁 150 views ▲ 0 votes

Full-lifecycle memory plugin for OpenClaw, powered by MemPalace. Fast, token-aware, complete.

GitHub

Install

npm install &&

README

# remempalace

A full-lifecycle memory plugin for OpenClaw, powered by MemPalace.

**Status:** Shipped โ€” 136 tests passing, in production use.

**Docs:** [Install](INSTALL.md) ยท [Configure](CONFIGURATION.md) ยท [Troubleshoot](TROUBLESHOOTING.md) ยท [Architecture](docs/architecture.md) ยท [Contribute](CONTRIBUTING.md) ยท [Changelog](CHANGELOG.md)

## What it does

Lets an OpenClaw agent remember things across conversations โ€” without the speed and token cost of the current memory plugin.

remempalace sits in OpenClaw's memory slot and handles three jobs:

- **Recall** โ€” pulls relevant facts from MemPalace before each turn
- **Learn** โ€” captures new facts from the conversation as it happens
- **Persist** โ€” writes a session summary at the end so the next session knows what happened

## Why it exists

An alternative to memory-core.

- A **persistent connection** to MemPalace (no per-turn process spawning)
- An **in-memory LRU cache** so repeat queries are instant (<5ms)
- **Tiered injection** that only loads what's actually relevant
- **Two-way memory** โ€” reads *and* writes, so the agent actually learns over time
- **Identity injection** โ€” loads SOUL.md + IDENTITY.md once per session at zero latency
- **Timeline queries** โ€” detects "what happened yesterday?" and injects a chronological diary/KG summary

## Architecture

A Node.js/TypeScript plugin that keeps one MemPalace process warm and talks to it over MCP / JSON-RPC. Recent results are LRU-cached. Before each turn the plugin injects a small, ranked, deduplicated summary of relevant memories โ€” sized to fit the remaining context window. Between turns it batches up new facts and writes them to the knowledge graph. At session end it writes a diary entry.

For the deep version, read the [architecture doc](docs/architecture.md) or the [design spec](docs/superpowers/specs/2026-04-16-remempalace-design.md).

## Installation

The 60-second version:

```bash
# 1. Install the Python backend
pipx install mempalace          # or: pip install mempalace

# 2. Build the plugin
git clone <repo-url> remempalace
cd remempalace
npm install && npm run build

# 3. Register it in ~/.openclaw/openclaw.json
```

```json5
{
  "plugins": {
    "load": { "paths": ["/absolute/path/to/remempalace"] },
    "allow": ["remempalace"],
    "slots": { "memory": "remempalace" },
    "entries": {
      "remempalace": { "enabled": true }
    }
  }
}
```

```bash
# 4. Restart the gateway
openclaw stop && openclaw start
```

> **Heads-up:** If `memory-core` (or another memory plugin) currently claims the `memory` slot, disable it first โ€” the slot is exclusive. See [TROUBLESHOOTING.md โ†’ memory-slot conflict](TROUBLESHOOTING.md#memory-slot-conflict).

For the full walkthrough โ€” pipx vs pip tradeoffs, identity files, smoke test, gateway verification โ€” see **[INSTALL.md](INSTALL.md)**.

## Configuration

All options have defaults and are optional. The most impactful one to customize is `injection.knownEntities` โ€” adding your name, project names, and key collaborators here dramatically improves recall quality.

A minimal override (the 90% case):

```json5
{
  "plugins": {
    "entries": {
      "remempalace": {
        "enabled": true,
        "config": {
          // pipx users: point at the venv python
          "mcpPythonBin": "~/.local/share/pipx/venvs/mempalace/bin/python",

          "injection": {
            // โญ Add your own canonical entities
            "knownEntities": ["OpenClaw", "MemPalace", "remempalace", "YourName", "YourProject"]
          }
        }
      }
    }
  }
}
```

For every option in detail โ€” `cache`, `tiers`, `diary`, `kg`, `prefetch`, `identity`, `memoryRuntime` โ€” see **[CONFIGURATION.md](CONFIGURATION.md)**.

## Debug mode

Set `REMEMPALACE_DEBUG=1` in the OpenClaw gateway environment to dump per-prompt decisions (candidates, per-entity KG counts, injected block) to `/tmp/remempalace-last-inject.log`. Useful when diagnosing why a particular fact did or didn't surface. Leave unset in normal operation โ€” the debug path adds sequential KG lookups.

## Project layout

```
remempalace/
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ INSTALL.md                 # full install walkthrough
โ”œโ”€โ”€ CONFIGURATION.md           # every config option
โ”œโ”€โ”€ TROUBLESHOOTING.md         # fixes for common problems
โ”œโ”€โ”€ CONTRIBUTING.md            # dev setup + PR workflow
โ”œโ”€โ”€ CHANGELOG.md               # release notes
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ openclaw.plugin.json       # plugin manifest
โ”œโ”€โ”€ docs/
โ”‚   โ”œโ”€โ”€ architecture.md        # module-level architecture
โ”‚   โ””โ”€โ”€ superpowers/           # historical design + implementation docs
โ”œโ”€โ”€ src/                       # TypeScript source (entry point: index.ts)
โ””โ”€โ”€ tests/                     # 136 Vitest unit + integration tests
```

See [docs/architecture.md](docs/architecture.md) for the module-level breakdown.

## License

MIT โ€” see [LICENSE](LICENSE).
tools

Comments

Sign in to leave a comment

Loading comments...