← Back to Plugins
Voice

Memok Ai Openclaw

galaxy8691 By galaxy8691 ⭐ 1 stars 👁 16 views ▲ 0 votes

OpenClaw plugin that persists chats to memok-ai SQLite memory, recalls context into the agent, and supports optional LLM pipelines (e.g. dreaming) — powered by the memok-ai npm package.

Homepage GitHub

Install

npm install --registry`**

README

# Memok AI — OpenClaw plugin

English | [简体中文](./README.zh-CN.md) · Website: [memok-ai.com](https://www.memok-ai.com/) · Plugin mirror: [Gitee](https://gitee.com/wik20/memok-ai-openclaw)

This repository is the **OpenClaw gateway extension** for Memok memory. The **npm package name** for this repo is **`memok-ai-openclaw`**. After **`openclaw plugins install`**, OpenClaw puts the extension under **`~/.openclaw/extensions/<plugin id>/`**, where **`<plugin id>`** comes from **`openclaw.plugin.json` → `id`** (currently **`memok-ai`**), **not** from `package.json` name — so the live folder is **`~/.openclaw/extensions/memok-ai/`**. The **full memory engine** is the separate npm package **[`memok-ai`](https://www.npmjs.com/package/memok-ai)**; details below after install.

## Requirements

- Node.js **≥20** (LTS recommended), **npm**
- OpenClaw gateway **≥2026.3.24** (see `openclaw.compat` in [package.json](package.json))

## Install (OpenClaw plugin)

**One-line install:** paste into a terminal. **`curl -fsSL`** downloads the script from the raw URL; **`bash <(...)`** runs it in one step (process substitution—no separate “save file then chmod” step). You need **`git`**, **`node`**, **`npm`**, and **`openclaw`** already on your `PATH`.

### Linux / macOS — default (npm registry for `memok-ai`)

[`scripts/install-linux-macos.sh`](scripts/install-linux-macos.sh) — installs core from **[npm `memok-ai`](https://www.npmjs.com/package/memok-ai)** (`"memok-ai": "^0.2.2"` in `package.json`; imports use **`memok-ai/bridge`**).

```bash
bash <(curl -fsSL https://raw.githubusercontent.com/galaxy8691/memok-ai-openclaw/main/scripts/install-linux-macos.sh)
```

### Linux / macOS — mainland China (Gitee clone + npmmirror)

[`scripts/install-cn-linux-macos.sh`](scripts/install-cn-linux-macos.sh) — clones the **plugin** from Gitee when possible, then **`npm install --registry`** (default **npmmirror**) so **`memok-ai`** is fetched from the mirror. Optional: set **`MEMOK_CORE_GIT_URL`** to force **`memok-ai`** from Git instead of npm.

```bash
bash <(curl -fsSL https://gitee.com/wik20/memok-ai-openclaw/raw/main/scripts/install-cn-linux-macos.sh)
```

If **`registry.npmjs.org`** is slow or blocked, use the **China** line (npmmirror) or set **`MEMOK_NPM_REGISTRY`** before **`install-linux-macos.sh`**. If the **`memok-ai`** tarball is unavailable on your registry, set **`MEMOK_CORE_GIT_URL`** (optional **`MEMOK_CORE_GIT_REF`**) to install the core from Git.

If you already cloned this repo:

```bash
bash scripts/install-linux-macos.sh          # from repo root — same as curl one-liner
# or
bash scripts/install-cn-linux-macos.sh
```

### Windows

[`scripts/install-windows.ps1`](scripts/install-windows.ps1) — **`irm`** downloads the script; **`| iex`** runs it.

**Default (GitHub raw; core from npm):**

```powershell
irm https://raw.githubusercontent.com/galaxy8691/memok-ai-openclaw/main/scripts/install-windows.ps1 | iex
```

**Clone plugin from Gitee** (installer uses **npmmirror** for `npm install` when the clone URL is Gitee):

```powershell
$env:MEMOK_REPO_URL = "https://gitee.com/wik20/memok-ai-openclaw.git"
irm https://gitee.com/wik20/memok-ai-openclaw/raw/main/scripts/install-windows.ps1 | iex
```

**What the installers do:** `npm install` → `npm run build` → `openclaw plugins install` → `openclaw memok setup` → optional gateway restart → remove `~/.openclaw/extensions/memok-ai-openclaw-src` unless **`MEMOK_KEEP_SOURCE=1`**.

**Useful env vars:** `MEMOK_PLUGINS_INSTALL_TIMEOUT_SECONDS`, `MEMOK_PLUGINS_INSTALL_NO_PTY=1`, `MEMOK_SKIP_GATEWAY_RESTART=1`, `MEMOK_GATEWAY_RESTART_TIMEOUT_SECONDS`, `MEMOK_KEEP_SOURCE=1`, `MEMOK_REPO_URL` / `MEMOK_REPO_URL_CN` / `MEMOK_REPO_URL_FALLBACK`, `MEMOK_CORE_GIT_URL`, `MEMOK_CORE_GIT_REF`, `MEMOK_NPM_REGISTRY` (cn script defaults to npmmirror) — see script headers and [README.zh-CN.md](./README.zh-CN.md) for Chinese details.

If `plugins.allow` blocks memok, add `"memok"` under `plugins.allow` in `~/.openclaw/openclaw.json`, then run `openclaw memok setup` again.

## Manual install (no curl script)

**From GitHub:**

```bash
git clone https://github.com/galaxy8691/memok-ai-openclaw.git
cd memok-ai-openclaw
npm install && npm run build
openclaw plugins install .
openclaw memok setup
```

**From Gitee** (use a China-friendly registry so **`memok-ai`** resolves quickly):

```bash
git clone https://gitee.com/wik20/memok-ai-openclaw.git
cd memok-ai-openclaw
npm install --registry https://registry.npmmirror.com && npm run build
openclaw plugins install .
openclaw memok setup
```

If you **cannot** use npm for the core package, **before** `npm install`:  
`npm pkg set dependencies.memok-ai=git+https://gitee.com/wik20/memok-ai.git#v0.1.0`

**Air-gapped:** build core locally, then set `"memok-ai": "file:/path/to/memok-ai"` in `package.json` and `npm install`.

## Core vs plugin (repos)

|                        | Repository                                                                                                                                  | Role                                                                                               |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| **Core**               | [galaxy8691/memok-ai](https://github.com/galaxy8691/memok-ai) · [Gitee mirror](https://gitee.com/wik20/memok-ai)                            | Pipelines, CLI, tests; npm **`memok-ai`**, import **`memok-ai/bridge`**. |
| **Plugin (this repo)** | [galaxy8691/memok-ai-openclaw](https://github.com/galaxy8691/memok-ai-openclaw) · [Gitee mirror](https://gitee.com/wik20/memok-ai-openclaw) | `src/plugin.ts`, `openclaw.plugin.json`, `skills/` only.                                           |

**Single `package.json`:** dependency **`memok-ai`** at **`^0.2.2`** ([`memok-ai` on npm](https://www.npmjs.com/package/memok-ai); plugin code imports **`memok-ai/bridge`**). First `npm install` runs that package’s **`prepare`** → `npm run build` (includes native **`better-sqlite3`**, often **minutes** on a cold cache).

**Memok pipeline config:** after `openclaw memok setup`, the plugin writes **`~/.openclaw/extensions/memok-ai/config.toml`** (a `MemokPipelineConfig`). At gateway startup the plugin loads **only** that file for `articleWordPipeline` / dreaming / recall; if it is missing, the plugin logs an error and skips registration until you run setup again. This is separate from `openclaw.json` (which still holds cron, recall UI flags, etc.).

**China:** use **`install-cn-linux-macos.sh`** (npmmirror) or **`MEMOK_NPM_REGISTRY`**. **Git fallback for core:** set **`MEMOK_CORE_GIT_URL`** (and optional **`MEMOK_CORE_GIT_REF`**) before `npm install`.

## Development (clone this repo)

```bash
git clone https://github.com/galaxy8691/memok-ai-openclaw.git
cd memok-ai-openclaw
npm install   # installs memok-ai from npm
npm run build
npm run ci    # lint + build + tests
```

If you **cannot** pull **`memok-ai`** from npm, **before** `npm install`:

```bash
npm pkg set dependencies.memok-ai=git+https://gitee.com/wik20/memok-ai.git#v0.1.0
npm install
```

## What the plugin does

- Persists transcripts, per-turn recall (`before_prompt_build`), tools `memok_recall_candidate_memories` / `memok_report_used_memory_ids`, optional dreaming cron
- `openclaw memok setup` wizard and plugin config

**Evaluation (tested):** with recall + report flow, effective use of candidate memories **exceeded 95%** in our runs; your mileage varies by model and settings.

### Compared to embedding-only stacks

|                | Memok                         | Typical hosted vector DB |
| -------------- | ----------------------------- | ------------------------ |
| Deployment     | Local SQLite                  | Cloud API + billing      |
| Recall         | Word graph, weights, sampling | Embedding similarity     |
| Explainability | Inspectable rows              | Mostly scores            |

### Notes from real use

Users report coherent multi-session follow-up and stable feedback when citing memories; DBs with ~1k sentences / 100k+ link rows are not uncommon. Timing is workload-dependent (~10² ms class for persist in informal local tests), not a SLA.

## CLI / pipelines / dreaming one-shots

Use the **core** repo: [README](https://github.com/galaxy8691/memok-ai/blob/main/README.md) · [README.zh-CN](https://github.com/galaxy8691/memok-ai/blob/main/README.zh-CN.md).

## Dreaming (plugin cron)

When dreaming cron runs, each run is stored in SQLite **`dream_logs`**: `dream_date`, `ts`, `status` (`ok` / `error`), `log_json`.

## Config priority (`OPENAI_*`, `MEMOK_LLM_MODEL`)

1. Existing environment variables win
2. Plugin config fills gaps only
3. For **this plugin**, LLM + SQLite pipeline settings come from **`~/.openclaw/extensions/memok-ai/config.toml`** (see `openclaw memok setup`). Core CLI may still document its own dev env elsewhere.

Plugin users normally rely on `openclaw memok setup` only.

## Contributing

See [CONTRIBUTING.md](./CONTRIBUTING.md).

## License

[MIT License](LICENSE).
voice

Comments

Sign in to leave a comment

Loading comments...