@memclaw/memclaw 0.9.11 → 0.9.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/SECURITY.md ADDED
@@ -0,0 +1,88 @@
1
+ # Security Information
2
+
3
+ This document describes security considerations for the MemClaw plugin.
4
+
5
+ ## Data Flow
6
+
7
+ ```
8
+ User Input → OpenClaw → MemClaw Plugin → cortex-mem-service (localhost:8085)
9
+
10
+
11
+ Qdrant (localhost:6334)
12
+
13
+
14
+ Local Storage
15
+ ```
16
+
17
+ **Key Points:**
18
+ - All data processing happens **locally** on your machine
19
+ - No data is sent to external servers except your configured LLM/Embedding providers
20
+ - API keys are only transmitted to your configured API endpoints
21
+
22
+ ## Credentials
23
+
24
+ ### Required Credentials
25
+
26
+ | Credential | Purpose | Storage Location |
27
+ |------------|---------|------------------|
28
+ | `llmApiKey` | Memory extraction and summarization | OpenClaw plugin config (marked `sensitive: true`) |
29
+ | `embeddingApiKey` | Vector embedding generation | OpenClaw plugin config (marked `sensitive: true`) |
30
+
31
+ ### Credential Security
32
+
33
+ - API keys are stored in `openclaw.json` with the `sensitive` flag
34
+ - Keys are **never** logged or transmitted except to your configured API provider
35
+ - Keys are **never** sent to the MemClaw developers or any third party
36
+
37
+ ## Binary Packages
38
+
39
+ ### What's Included
40
+
41
+ MemClaw uses platform-specific binary packages distributed via npm:
42
+
43
+ | Package | Platform | Contents |
44
+ |---------|----------|----------|
45
+ | `@memclaw/bin-darwin-arm64` | macOS Apple Silicon | Qdrant, cortex-mem-service, cortex-mem-cli |
46
+ | `@memclaw/bin-win-x64` | Windows x64 | Qdrant, cortex-mem-service, cortex-mem-cli |
47
+
48
+ ### Verification
49
+
50
+ To verify binary packages:
51
+
52
+ ```bash
53
+ # Check package integrity via npm
54
+ npm view @memclaw/bin-darwin-arm64
55
+ npm view @memclaw/bin-win-x64
56
+
57
+ # Inspect package contents
58
+ npm pack @memclaw/bin-darwin-arm64
59
+ tar -tzf memclaw-bin-darwin-arm64-*.tgz
60
+ ```
61
+
62
+ ### Source Code
63
+
64
+ The source code for building these binaries is available in the main repository:
65
+ - Repository: https://github.com/sopaco/cortex-mem
66
+ - Build scripts: `cortex-mem-core/`, `cortex-mem-service/`
67
+
68
+ ## Network Security
69
+
70
+ ### Ports Used
71
+
72
+ | Service | Port | Protocol | Purpose |
73
+ |---------|------|----------|---------|
74
+ | Qdrant HTTP | 6333 | TCP | REST API, health checks |
75
+ | Qdrant gRPC | 6334 | TCP | Vector operations |
76
+ | cortex-mem-service | 8085 | TCP | Memory service API |
77
+
78
+ ### Firewall Configuration
79
+
80
+ If you use a firewall, ensure:
81
+ - Ports 6333, 6334, 8085 are allowed for **localhost only**
82
+ - External connections to these ports are blocked
83
+
84
+ ### Localhost Only
85
+
86
+ All services bind to `localhost` (127.0.0.1) by default:
87
+ - No external network access is required
88
+ - Services are not accessible from other machines
package/dist/index.js CHANGED
@@ -38,7 +38,7 @@ function memclawPlugin(api) {
38
38
  exports.plugin = {
39
39
  id: 'memclaw',
40
40
  name: 'MemClaw',
41
- version: '0.9.11',
41
+ version: '0.9.13',
42
42
  configSchema: {
43
43
  type: 'object',
44
44
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"binaries.d.ts","sourceRoot":"","sources":["../../src/binaries.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,KAAK,iBAAiB,GAAG,cAAc,GAAG,SAAS,CAAC;AAGpD,wBAAgB,WAAW,IAAI,iBAAiB,GAAG,IAAI,CAWtD;AAGD,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAGD,wBAAgB,6BAA6B,IAAI,MAAM,CAWtD;AA0BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe3D;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD;AAGD,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAGD,wBAAgB,sBAAsB,IAAI,MAAM,CAgB/C;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,CAKjE;AAsCD,wBAAsB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA+F5E;AAED,wBAAsB,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoEtF;AAED,wBAAgB,eAAe,IAAI,IAAI,CAUtC;AAED,wBAAsB,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAwB3F;AAGD,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C;AAGD,MAAM,WAAW,SAAS;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAAe,GACtB,OAAO,CAAC,SAAS,CAAC,CA+DpB"}
1
+ {"version":3,"file":"binaries.d.ts","sourceRoot":"","sources":["../../src/binaries.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,KAAK,iBAAiB,GAAG,cAAc,GAAG,SAAS,CAAC;AAGpD,wBAAgB,WAAW,IAAI,iBAAiB,GAAG,IAAI,CAWtD;AAGD,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAGD,wBAAgB,6BAA6B,IAAI,MAAM,CAWtD;AA0BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe3D;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD;AAGD,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAGD,wBAAgB,sBAAsB,IAAI,MAAM,CAgB/C;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,CAKjE;AAsCD,wBAAsB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA+F5E;AAED,wBAAsB,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEtF;AAED,wBAAgB,eAAe,IAAI,IAAI,CAUtC;AAED,wBAAsB,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAwB3F;AAGD,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C;AAGD,MAAM,WAAW,SAAS;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAAe,GACtB,OAAO,CAAC,SAAS,CAAC,CA+DpB"}
@@ -283,10 +283,12 @@ async function startCortexMemService(log) {
283
283
  const dataDir = (0, config_js_1.getDataDir)();
284
284
  log?.(`Starting cortex-mem-service with data-dir ${dataDir}...`);
285
285
  log?.(`Binary path: ${binaryPath}`);
286
- // cortex-mem-service automatically reads config.toml from --data-dir
286
+ // cortex-mem-service reads config.toml from current working directory
287
+ // Set cwd to dataDir so it can find the config file
287
288
  const proc = (0, child_process_1.spawn)(binaryPath, ['--data-dir', dataDir], {
288
289
  stdio: ['ignore', 'pipe', 'pipe'],
289
- detached: true
290
+ detached: true,
291
+ cwd: dataDir // Set working directory so config.toml can be found
290
292
  });
291
293
  // Drain stdout/stderr to prevent buffer blocking
292
294
  proc.stdout?.on('data', (data) => {
@@ -1 +1 @@
1
- {"version":3,"file":"binaries.js","sourceRoot":"","sources":["../../src/binaries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binaries.js","sourceRoot":"","sources":["../../src/binaries.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "id": "memclaw",
3
3
  "name": "MemClaw",
4
- "version": "0.9.11",
4
+ "version": "0.9.13",
5
5
  "description": "Layered semantic memory for OpenClaw with L0/L1/L2 tiered retrieval, easy setup, and migration from native memory",
6
6
  "kind": "memory",
7
- "skills": ["skill"],
7
+ "skills": ["skills/memclaw"],
8
8
  "platforms": ["darwin-arm64", "win32-x64"],
9
+ "osRestriction": ["darwin-arm64", "win32-x64"],
9
10
  "configSchema": {
10
11
  "type": "object",
11
12
  "properties": {
@@ -60,7 +61,8 @@
60
61
  },
61
62
  "llmApiKey": {
62
63
  "type": "string",
63
- "description": "LLM API key for memory extraction and summarization"
64
+ "description": "LLM API key for memory extraction and summarization",
65
+ "sensitive": true
64
66
  },
65
67
  "llmModel": {
66
68
  "type": "string",
@@ -74,7 +76,8 @@
74
76
  },
75
77
  "embeddingApiKey": {
76
78
  "type": "string",
77
- "description": "Embedding API key for vector generation"
79
+ "description": "Embedding API key for vector generation",
80
+ "sensitive": true
78
81
  },
79
82
  "embeddingModel": {
80
83
  "type": "string",
@@ -82,7 +85,14 @@
82
85
  "default": "text-embedding-3-small"
83
86
  }
84
87
  },
85
- "required": []
88
+ "required": [
89
+ "llmApiKey",
90
+ "embeddingApiKey",
91
+ "llmApiBaseUrl",
92
+ "llmModel",
93
+ "embeddingApiBaseUrl",
94
+ "embeddingModel"
95
+ ]
86
96
  },
87
97
  "uiHints": {
88
98
  "serviceUrl": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memclaw/memclaw",
3
- "version": "0.9.11",
3
+ "version": "0.9.13",
4
4
  "description": "MemClaw - The Cortex Memory plugin for OpenClaw. Layered semantic memory for OpenClaw with easy setup and migration",
5
5
  "homepage": "https://github.com/sopaco/cortex-mem",
6
6
  "repository": {
@@ -36,7 +36,7 @@
36
36
  "dist/index.js"
37
37
  ],
38
38
  "skills": [
39
- "skill"
39
+ "skills/memclaw"
40
40
  ]
41
41
  },
42
42
  "devDependencies": {
@@ -55,8 +55,9 @@
55
55
  },
56
56
  "files": [
57
57
  "dist/",
58
- "skill/",
58
+ "skills/",
59
59
  "openclaw.plugin.json",
60
- "README.md"
60
+ "README.md",
61
+ "SECURITY.md"
61
62
  ]
62
63
  }
@@ -9,6 +9,20 @@ description: MemClaw — Advanced semantic memory for OpenClaw. This is a better
9
9
 
10
10
  Layered semantic memory system for OpenClaw with automatic service management.
11
11
 
12
+ ## Security & Trust
13
+
14
+ **What this plugin does:**
15
+ - Stores memory data locally in your user data directory
16
+ - Starts local services (Qdrant vector DB, cortex-mem-service) on localhost ports 6333/6334/8085
17
+ - Requires LLM/Embedding API keys (stored in OpenClaw plugin config, marked as sensitive)
18
+ - Reads existing OpenClaw memory files only during migration
19
+
20
+ **What this plugin does NOT do:**
21
+ - Does NOT send your data to external servers (all processing is local)
22
+ - Does NOT transmit your API keys anywhere except to your configured LLM/embedding provider
23
+
24
+ **Binary packages:** Platform-specific binaries (`@memclaw/bin-darwin-arm64`, `@memclaw/bin-win-x64`) are distributed via npm registry and contain Qdrant, cortex-mem-service, and cortex-mem-cli.
25
+
12
26
  ## How Memory Works
13
27
 
14
28
  MemClaw provides **three-layer semantic memory** with tiered retrieval:
@@ -93,10 +107,17 @@ The platform-specific binaries (Qdrant, cortex-mem-service, cortex-mem-cli) are
93
107
 
94
108
  ## Configuration
95
109
 
96
- ### Recommended: Configure in OpenClaw Settings
110
+ ### Configure API Keys (REQUIRED)
97
111
 
98
- Configure LLM and Embedding API directly in OpenClaw plugin settings (`openclaw.json`):
112
+ 1. Open OpenClaw Settings (`openclaw.json` or via UI)
113
+ 2. Navigate to Plugins → MemClaw → Configuration
114
+ 3. Enter your API keys in the secure fields:
115
+ - `llmApiKey` — Your LLM API key (marked as sensitive)
116
+ - `embeddingApiKey` — Your Embedding API key (marked as sensitive)
117
+ 4. Optionally customize API endpoints and model names
118
+ 5. Save and restart OpenClaw
99
119
 
120
+ **Example configuration in `openclaw.json`:**
100
121
  ```json
101
122
  {
102
123
  "plugins": {
@@ -117,7 +138,7 @@ Configure LLM and Embedding API directly in OpenClaw plugin settings (`openclaw.
117
138
  }
118
139
  ```
119
140
 
120
- **Configuration will be automatically synced to the service config file on startup.**
141
+ > **Security Note**: API keys are stored in OpenClaw's configuration with the `sensitive` flag. Never share your `openclaw.json` file publicly.
121
142
 
122
143
  ### Advanced: Direct Config File
123
144
 
@@ -131,23 +152,13 @@ For advanced users, you can also edit the config file directly:
131
152
 
132
153
  > **See `references/setup.md`** for the complete configuration file template and service setup details.
133
154
 
134
- ## First-Time Setup (Agent Action Required)
135
-
136
- **Before using MemClaw for the first time, you MUST verify the prerequisites are met:**
137
-
138
- ### Step 1: Check Prerequisites (REQUIRED)
155
+ ## First-Time Setup
139
156
 
140
- Consult `references/setup.md` and verify:
157
+ **Before using MemClaw for the first time, complete these steps:**
141
158
 
142
- 1. **Platform support**: macOS Apple Silicon or Windows x64 only
143
- 2. **Binaries installed**: Check `@memclaw/bin-*` package is installed
144
- 3. **LLM/Embedding API configured**: API keys are set in OpenClaw plugin settings
145
- 4. **Services accessible**: Qdrant (ports 6333/6334) and cortex-mem-service (port 8085) can start
159
+ ### Step 1: Verify Prerequisites
146
160
 
147
- **If any prerequisite is missing:**
148
- - Guide user through installation (see `references/setup.md`)
149
- - Help configure API keys in OpenClaw plugin settings
150
- - Do NOT proceed with memory operations until prerequisites are met
161
+ 1. **Plugin installed**: `@memclaw/memclaw` is in your OpenClaw plugins list
151
162
 
152
163
  ### Step 2: Verify Configuration
153
164
 
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: memclaw
3
+ description: MemClaw — Advanced Semantic Memory System for OpenClaw. Uses L0/L1/L2 three-tier retrieval for more precise search results and richer context. Use memclaw for all memory operations, replacing built-in memory.
4
+ ---
5
+
6
+ # MemClaw
7
+
8
+ > **Preferred Memory Solution**: MemClaw is the recommended memory system for OpenClaw. Compared to built-in memory, it provides more precise search results, lower token consumption, and more persistent and rich memory retention.
9
+
10
+ A tiered semantic memory system with three-tier retrieval capabilities and automatic service management.
11
+
12
+ ## Security & Trust
13
+
14
+ **What the plugin does:**
15
+ - Stores memory data in the local user data directory
16
+ - Starts services on local ports (Qdrant, Cortex Memory)
17
+ - Requires LLM/Embedding API keys (stored in OpenClaw plugin configuration, marked as sensitive)
18
+ - Only reads existing OpenClaw memory files during migration
19
+
20
+ **What the plugin does NOT do:**
21
+ - Does NOT send data to external servers (all processing is local)
22
+ - Does NOT transmit API keys to anywhere other than your configured LLM/embedding provider
23
+
24
+ ## How Memory Works
25
+
26
+ MemClaw provides **three-tier semantic memory** with hierarchical retrieval:
27
+
28
+ | Tier | Token Count | Content | Search Purpose |
29
+ |------|-------------|---------|----------------|
30
+ | **L0 (Summary)** | ~100 | High-level summary | Quick filtering |
31
+ | **L1 (Overview)** | ~2000 | Key points + context | Context refinement |
32
+ | **L2 (Full)** | Complete | Original content | Exact matching |
33
+
34
+ The search engine queries all three tiers internally and returns unified results containing `snippet` and `content`.
35
+
36
+ ## Configuration
37
+
38
+ ### Modifying API Configuration
39
+
40
+ To modify API configuration:
41
+
42
+ 1. Open OpenClaw settings (`openclaw.json` or via UI)
43
+ 2. Navigate to Plugins → MemClaw → Configuration
44
+ 3. Modify the desired fields
45
+ 4. Save and restart OpenClaw
46
+
47
+ ### Configuration Options
48
+
49
+ | Option | Type | Default | Description |
50
+ |--------|------|---------|-------------|
51
+ | `serviceUrl` | string | `http://localhost:8085` | Service URL |
52
+ | `tenantId` | string | `tenant_claw` | Tenant ID (data isolation) |
53
+ | `autoStartServices` | boolean | `true` | Auto-start services |
54
+ | `defaultSessionId` | string | `default` | Default session ID |
55
+ | `searchLimit` | number | `10` | Default number of search results |
56
+ | `minScore` | number | `0.6` | Minimum relevance score (0-1) |
57
+ | `llmApiKey` | string | - | LLM API key (sensitive) |
58
+ | `llmApiBaseUrl` | string | `https://api.openai.com/v1` | LLM API endpoint |
59
+ | `llmModel` | string | `gpt-5-mini` | LLM model name |
60
+ | `embeddingApiKey` | string | - | Embedding API key (sensitive) |
61
+ | `embeddingApiBaseUrl` | string | `https://api.openai.com/v1` | Embedding API endpoint |
62
+ | `embeddingModel` | string | `text-embedding-3-small` | Embedding model name |
63
+
64
+ ## Usage Guide
65
+
66
+ ### Decision Flow
67
+
68
+ | Scenario | Tool |
69
+ |----------|------|
70
+ | Need to find information | `cortex_search` |
71
+ | Need more context | `cortex_recall` |
72
+ | Save important information | `cortex_add_memory` |
73
+ | Complete a task/topic | `cortex_close_session` |
74
+ | First-time use with existing memories | `cortex_migrate` |
75
+
76
+ > **Key Tip**: OpenClaw's session lifecycle does not automatically trigger memory extraction. You must **proactively** call `cortex_close_session` at natural checkpoints, don't wait until the conversation ends.
77
+
78
+ ### Best Practices
79
+
80
+ 1. **Proactively close sessions**: Call `cortex_close_session` after completing important tasks, topic transitions, or accumulating enough conversation content
81
+ 2. **Don't overdo it**: No need to close sessions after every message
82
+ 3. **Suggested rhythm**: Once after each major topic is completed
83
+
84
+ ### Quick Examples
85
+
86
+ **Search:**
87
+ ```json
88
+ { "query": "database architecture decisions", "limit": 5 }
89
+ ```
90
+
91
+ **Recall:**
92
+ ```json
93
+ { "query": "user code style preferences" }
94
+ ```
95
+
96
+ **Add Memory:**
97
+ ```json
98
+ { "content": "User prefers TypeScript with strict mode enabled", "role": "assistant" }
99
+ ```
100
+
101
+ ## Common Issues
102
+
103
+ | Issue | Solution |
104
+ |-------|----------|
105
+ | Service won't start | Check if ports 6333, 6334, 8085 are in use; confirm API keys are configured |
106
+ | No search results | Run `cortex_list_sessions` to verify; lower `min_score` threshold |
107
+ | LLM/Embedding errors | Verify `llmApiKey` and `embeddingApiKey` are configured correctly |
108
+ | Migration failed | Confirm OpenClaw workspace is at `~/.openclaw/workspace` |
109
+
110
+ ## References
111
+
112
+ - **`references/tools.md`** — Detailed tool parameters and examples
@@ -0,0 +1,205 @@
1
+ # Tools Reference
2
+
3
+ Detailed documentation for MemClaw tools.
4
+
5
+ ## cortex_search
6
+
7
+ Semantic search using L0/L1/L2 hierarchical retrieval.
8
+
9
+ **Parameters:**
10
+
11
+ | Parameter | Type | Required | Default | Description |
12
+ |-----------|------|----------|---------|-------------|
13
+ | `query` | string | Yes | - | Search query — natural language or keywords |
14
+ | `scope` | string | No | - | Session/thread ID to limit search scope |
15
+ | `limit` | integer | No | 10 | Maximum number of results |
16
+ | `min_score` | number | No | 0.6 | Minimum relevance score (0-1) |
17
+
18
+ **Use Cases:**
19
+ - Find past conversations or decisions
20
+ - Search for specific information across all sessions
21
+ - Discover related memories through semantic similarity
22
+
23
+ **Example:**
24
+ ```json
25
+ {
26
+ "query": "database architecture decisions",
27
+ "limit": 5,
28
+ "min_score": 0.6
29
+ }
30
+ ```
31
+
32
+ **Response Format:**
33
+ - Returns results sorted by relevance
34
+ - Each result contains `uri`, `score`, and `snippet`
35
+
36
+ ---
37
+
38
+ ## cortex_recall
39
+
40
+ Retrieve memories with more context (summary + full content).
41
+
42
+ **Parameters:**
43
+
44
+ | Parameter | Type | Required | Default | Description |
45
+ |-----------|------|----------|---------|-------------|
46
+ | `query` | string | Yes | - | Search query |
47
+ | `scope` | string | No | - | Session/thread ID to limit search scope |
48
+ | `limit` | integer | No | 10 | Maximum number of results |
49
+
50
+ **Use Cases:**
51
+ - Need memories with full context, not just summaries
52
+ - Want to see original content
53
+ - Performing detailed memory analysis
54
+
55
+ **Example:**
56
+ ```json
57
+ {
58
+ "query": "user code style preferences",
59
+ "limit": 10
60
+ }
61
+ ```
62
+
63
+ **Response Format:**
64
+ - Returns results with `snippet` (summary) and `content` (full text)
65
+ - Content is truncated when too long (preview >300 characters)
66
+
67
+ ---
68
+
69
+ ## cortex_add_memory
70
+
71
+ Store messages for later retrieval.
72
+
73
+ **Parameters:**
74
+
75
+ | Parameter | Type | Required | Default | Description |
76
+ |-----------|------|----------|---------|-------------|
77
+ | `content` | string | Yes | - | Memory content to store |
78
+ | `role` | string | No | `user` | Message sender role: `user`, `assistant`, or `system` |
79
+ | `session_id` | string | No | `default` | Session/thread ID the memory belongs to |
80
+
81
+ **Use Cases:**
82
+ - Persist important information for later retrieval
83
+ - Store user preferences or decisions
84
+ - Save context that should be searchable
85
+
86
+ **Example:**
87
+ ```json
88
+ {
89
+ "content": "User prefers TypeScript with strict mode enabled",
90
+ "role": "assistant",
91
+ "session_id": "default"
92
+ }
93
+ ```
94
+
95
+ **Execution Effects:**
96
+ - Message is stored with timestamp
97
+ - Vector embedding is automatically generated
98
+ - L0/L1 layers are generated asynchronously
99
+
100
+ ---
101
+
102
+ ## cortex_list_sessions
103
+
104
+ List all memory sessions and their status.
105
+
106
+ **Parameters:** None
107
+
108
+ **Use Cases:**
109
+ - Verify sessions exist before searching
110
+ - Check which sessions are active or closed
111
+ - Audit memory usage
112
+
113
+ **Response Format:**
114
+ - Session ID, status, message count
115
+ - Creation and update timestamps
116
+
117
+ ---
118
+
119
+ ## cortex_close_session
120
+
121
+ Close a session and trigger the memory extraction process.
122
+
123
+ **Parameters:**
124
+
125
+ | Parameter | Type | Required | Default | Description |
126
+ |-----------|------|----------|---------|-------------|
127
+ | `session_id` | string | No | `default` | Session/thread ID to close |
128
+
129
+ **Use Cases:**
130
+ - When a conversation is complete
131
+ - Preparing to extract structured memories
132
+ - Wanting to finalize a session's memory content
133
+
134
+ **Execution Effects:**
135
+ 1. Extracts structured memories (user preferences, entities, decisions)
136
+ 2. Generates complete L0/L1 layer summaries
137
+ 3. Indexes all extracted memories into the vector database
138
+
139
+ **Note:** This can be a longer operation (30-60 seconds).
140
+
141
+ **Example:**
142
+ ```json
143
+ {
144
+ "session_id": "default"
145
+ }
146
+ ```
147
+
148
+ > **Important**: This tool should be called proactively at natural checkpoints, not just when the conversation ends. Ideal timing: after completing important tasks, topic transitions, or accumulating enough conversation content.
149
+
150
+ ---
151
+
152
+ ## cortex_migrate
153
+
154
+ Migrate from OpenClaw's native memory system to MemClaw.
155
+
156
+ **Parameters:** None
157
+
158
+ **Use Cases:**
159
+ - First-time use with existing OpenClaw memories
160
+ - Want to preserve previous conversation history
161
+ - Switching from built-in memory to MemClaw
162
+
163
+ **Execution Effects:**
164
+ 1. Finds OpenClaw memory files (`memory/*.md` and `MEMORY.md`)
165
+ 2. Converts to MemClaw's L2 format
166
+ 3. Generates L0/L1 layers and vector indices
167
+
168
+ **Prerequisites:**
169
+ - OpenClaw workspace exists at `~/.openclaw/workspace`
170
+ - Memory files exist at `~/.openclaw/workspace/memory/`
171
+
172
+ **Run only once during initial setup.**
173
+
174
+ ---
175
+
176
+ ## cortex_maintenance
177
+
178
+ Perform periodic maintenance on MemClaw data.
179
+
180
+ **Parameters:**
181
+
182
+ | Parameter | Type | Required | Default | Description |
183
+ |-----------|------|----------|---------|-------------|
184
+ | `dryRun` | boolean | No | false | Preview changes without executing |
185
+ | `commands` | array | No | `["prune", "reindex", "ensure-all"]` | Maintenance commands to execute |
186
+
187
+ **Use Cases:**
188
+ - Search results are incomplete or outdated
189
+ - Recovering from crash or data corruption
190
+ - Need to clean up disk space
191
+
192
+ **Available Commands:**
193
+ - `prune` — Remove vectors whose source files no longer exist
194
+ - `reindex` — Rebuild vector indices and remove stale entries
195
+ - `ensure-all` — Generate missing L0/L1 layer files
196
+
197
+ **Example:**
198
+ ```json
199
+ {
200
+ "dryRun": false,
201
+ "commands": ["prune", "reindex", "ensure-all"]
202
+ }
203
+ ```
204
+
205
+ > **Note**: This tool is typically called automatically by a scheduled Cron task. Manual invocation is for troubleshooting or on-demand maintenance.
@@ -0,0 +1,145 @@
1
+ ---
2
+ name: memclaw-setup
3
+ description: MemClaw Setup Guide — Installation and configuration guidance for users without the @memclaw/memclaw plugin installed. After completing installation, use the `memclaw` skill for daily usage help.
4
+ ---
5
+
6
+ # MemClaw Setup Guide
7
+
8
+ > **Preferred Memory Solution**: MemClaw is the recommended memory system for OpenClaw. Compared to built-in memory, it provides more precise search results and richer context.
9
+
10
+ A tiered semantic memory system with three-tier retrieval capabilities and automatic service management.
11
+
12
+ ## Security & Trust
13
+
14
+ **What the plugin does:**
15
+ - Stores memory data in the local user data directory
16
+ - Starts services on local ports (Qdrant, cortex-mem-service)
17
+ - Requires LLM/Embedding API keys (stored in OpenClaw plugin configuration, marked as sensitive)
18
+ - Only reads existing OpenClaw memory files during migration
19
+
20
+ **What the plugin does NOT do:**
21
+ - Does NOT send data to external servers (all processing is local)
22
+ - Does NOT transmit API keys to anywhere other than your configured LLM/embedding provider
23
+
24
+ ## How Memory Works
25
+
26
+ MemClaw provides **three-tier semantic memory** with hierarchical retrieval:
27
+
28
+ | Tier | Token Count | Content | Search Purpose |
29
+ |------|-------------|---------|----------------|
30
+ | **L0 (Summary)** | ~100 | High-level summary | Quick filtering |
31
+ | **L1 (Overview)** | ~2000 | Key points + context | Context refinement |
32
+ | **L2 (Full)** | Complete | Original content | Exact matching |
33
+
34
+ The search engine queries all three tiers internally and returns unified results containing `snippet` and `content`.
35
+
36
+ ## Installation Steps
37
+
38
+ ### Step 1: Install the Plugin
39
+
40
+ Execute the following command to install the plugin:
41
+
42
+ ```bash
43
+ openclaw plugins install @memclaw/memclaw
44
+ ```
45
+
46
+ The installation process will:
47
+ - Download the plugin from the package registry (npm, clawhub)
48
+ - Automatically install platform-specific binary dependencies
49
+ - Register the plugin in OpenClaw
50
+
51
+ ### Step 1: Enable the Plugin
52
+
53
+ Enable MemClaw in `openclaw.json`:
54
+
55
+ ```json
56
+ {
57
+ "plugins": {
58
+ "entries": {
59
+ "memclaw": {
60
+ "enabled": true
61
+ }
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ ### Step 3: Configure API Keys
68
+
69
+ **API keys must be configured to use MemClaw.**
70
+
71
+ 1. Open OpenClaw settings (`openclaw.json` or via UI)
72
+ 2. Navigate to Plugins → MemClaw → Configuration
73
+ 3. Enter your API keys in the secure fields:
74
+ - `llmApiKey` — LLM API key (marked as sensitive)
75
+ - `embeddingApiKey` — Embedding API key (marked as sensitive)
76
+ 4. Optional: Customize API endpoints and model names
77
+ 5. Save and restart OpenClaw
78
+
79
+ **Configuration Example:**
80
+
81
+ ```json
82
+ {
83
+ "plugins": {
84
+ "entries": {
85
+ "memclaw": {
86
+ "enabled": true,
87
+ "config": {
88
+ "llmApiKey": "your-llm-api-key",
89
+ "llmApiBaseUrl": "https://api.openai.com/v1",
90
+ "llmModel": "gpt-5-mini",
91
+ "embeddingApiKey": "your-embedding-api-key",
92
+ "embeddingApiBaseUrl": "https://api.openai.com/v1",
93
+ "embeddingModel": "text-embedding-3-small"
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ > **Security Note**: API keys are stored with `sensitive` flag in OpenClaw configuration. Do not share your `openclaw.json` file publicly.
102
+
103
+ ### Step 4: Restart OpenClaw
104
+
105
+ Restart OpenClaw to activate the plugin and start services.
106
+
107
+ ## First-Time Use
108
+
109
+ ### Verify Service Status
110
+
111
+ After restarting, MemClaw will automatically start the required services. If configured correctly, you should be able to use the memory tools normally.
112
+
113
+ ### Migrate Existing Memories (Optional)
114
+
115
+ If the user has existing OpenClaw native memories, call the `cortex_migrate` tool to migrate them to MemClaw:
116
+
117
+ ```json
118
+ {}
119
+ ```
120
+
121
+ This will:
122
+ - Find OpenClaw memory files (`memory/*.md` and `MEMORY.md`)
123
+ - Convert to MemClaw's L2 format
124
+ - Generate L0/L1 layers and vector indices
125
+
126
+ > **Run only once** during initial setup.
127
+
128
+ ## Quick Start
129
+
130
+ After installation, use the following decision flow for memory operations:
131
+
132
+ | Scenario | Tool |
133
+ |----------|------|
134
+ | Need to find information | `cortex_search` |
135
+ | Need more context | `cortex_recall` |
136
+ | Save important information | `cortex_add_memory` |
137
+ | Complete a task/topic | `cortex_close_session` |
138
+ | First-time use with existing memories | `cortex_migrate` |
139
+
140
+ > **Important**: OpenClaw's session lifecycle does not automatically trigger memory extraction. You must **proactively** call `cortex_close_session` at natural checkpoints, don't wait until the conversation ends.
141
+
142
+ ## References
143
+
144
+ - **`references/tools.md`** — Detailed tool parameters and examples
145
+ - **`references/troubleshooting.md`** — Common troubleshooting issues
@@ -0,0 +1,205 @@
1
+ # Tools Reference
2
+
3
+ Detailed documentation for MemClaw tools.
4
+
5
+ ## cortex_search
6
+
7
+ Semantic search using L0/L1/L2 hierarchical retrieval.
8
+
9
+ **Parameters:**
10
+
11
+ | Parameter | Type | Required | Default | Description |
12
+ |-----------|------|----------|---------|-------------|
13
+ | `query` | string | Yes | - | Search query — natural language or keywords |
14
+ | `scope` | string | No | - | Session/thread ID to limit search scope |
15
+ | `limit` | integer | No | 10 | Maximum number of results |
16
+ | `min_score` | number | No | 0.6 | Minimum relevance score (0-1) |
17
+
18
+ **Use Cases:**
19
+ - Find past conversations or decisions
20
+ - Search for specific information across all sessions
21
+ - Discover related memories through semantic similarity
22
+
23
+ **Example:**
24
+ ```json
25
+ {
26
+ "query": "database architecture decisions",
27
+ "limit": 5,
28
+ "min_score": 0.6
29
+ }
30
+ ```
31
+
32
+ **Response Format:**
33
+ - Returns results sorted by relevance
34
+ - Each result contains `uri`, `score`, and `snippet`
35
+
36
+ ---
37
+
38
+ ## cortex_recall
39
+
40
+ Retrieve memories with more context (summary + full content).
41
+
42
+ **Parameters:**
43
+
44
+ | Parameter | Type | Required | Default | Description |
45
+ |-----------|------|----------|---------|-------------|
46
+ | `query` | string | Yes | - | Search query |
47
+ | `scope` | string | No | - | Session/thread ID to limit search scope |
48
+ | `limit` | integer | No | 10 | Maximum number of results |
49
+
50
+ **Use Cases:**
51
+ - Need memories with full context, not just summaries
52
+ - Want to see original content
53
+ - Performing detailed memory analysis
54
+
55
+ **Example:**
56
+ ```json
57
+ {
58
+ "query": "user code style preferences",
59
+ "limit": 10
60
+ }
61
+ ```
62
+
63
+ **Response Format:**
64
+ - Returns results with `snippet` (summary) and `content` (full text)
65
+ - Content is truncated when too long (preview >300 characters)
66
+
67
+ ---
68
+
69
+ ## cortex_add_memory
70
+
71
+ Store messages for later retrieval.
72
+
73
+ **Parameters:**
74
+
75
+ | Parameter | Type | Required | Default | Description |
76
+ |-----------|------|----------|---------|-------------|
77
+ | `content` | string | Yes | - | Memory content to store |
78
+ | `role` | string | No | `user` | Message sender role: `user`, `assistant`, or `system` |
79
+ | `session_id` | string | No | `default` | Session/thread ID the memory belongs to |
80
+
81
+ **Use Cases:**
82
+ - Persist important information for later retrieval
83
+ - Store user preferences or decisions
84
+ - Save context that should be searchable
85
+
86
+ **Example:**
87
+ ```json
88
+ {
89
+ "content": "User prefers TypeScript with strict mode enabled",
90
+ "role": "assistant",
91
+ "session_id": "default"
92
+ }
93
+ ```
94
+
95
+ **Execution Effects:**
96
+ - Message is stored with timestamp
97
+ - Vector embedding is automatically generated
98
+ - L0/L1 layers are generated asynchronously
99
+
100
+ ---
101
+
102
+ ## cortex_list_sessions
103
+
104
+ List all memory sessions and their status.
105
+
106
+ **Parameters:** None
107
+
108
+ **Use Cases:**
109
+ - Verify sessions exist before searching
110
+ - Check which sessions are active or closed
111
+ - Audit memory usage
112
+
113
+ **Response Format:**
114
+ - Session ID, status, message count
115
+ - Creation and update timestamps
116
+
117
+ ---
118
+
119
+ ## cortex_close_session
120
+
121
+ Close a session and trigger the memory extraction process.
122
+
123
+ **Parameters:**
124
+
125
+ | Parameter | Type | Required | Default | Description |
126
+ |-----------|------|----------|---------|-------------|
127
+ | `session_id` | string | No | `default` | Session/thread ID to close |
128
+
129
+ **Use Cases:**
130
+ - When a conversation is complete
131
+ - Preparing to extract structured memories
132
+ - Wanting to finalize a session's memory content
133
+
134
+ **Execution Effects:**
135
+ 1. Extracts structured memories (user preferences, entities, decisions)
136
+ 2. Generates complete L0/L1 layer summaries
137
+ 3. Indexes all extracted memories into the vector database
138
+
139
+ **Note:** This can be a longer operation (30-60 seconds).
140
+
141
+ **Example:**
142
+ ```json
143
+ {
144
+ "session_id": "default"
145
+ }
146
+ ```
147
+
148
+ > **Important**: This tool should be called proactively at natural checkpoints, not just when the conversation ends. Ideal timing: after completing important tasks, topic transitions, or accumulating enough conversation content.
149
+
150
+ ---
151
+
152
+ ## cortex_migrate
153
+
154
+ Migrate from OpenClaw's native memory system to MemClaw.
155
+
156
+ **Parameters:** None
157
+
158
+ **Use Cases:**
159
+ - First-time use with existing OpenClaw memories
160
+ - Want to preserve previous conversation history
161
+ - Switching from built-in memory to MemClaw
162
+
163
+ **Execution Effects:**
164
+ 1. Finds OpenClaw memory files (`memory/*.md` and `MEMORY.md`)
165
+ 2. Converts to MemClaw's L2 format
166
+ 3. Generates L0/L1 layers and vector indices
167
+
168
+ **Prerequisites:**
169
+ - OpenClaw workspace exists at `~/.openclaw/workspace`
170
+ - Memory files exist at `~/.openclaw/workspace/memory/`
171
+
172
+ **Run only once during initial setup.**
173
+
174
+ ---
175
+
176
+ ## cortex_maintenance
177
+
178
+ Perform periodic maintenance on MemClaw data.
179
+
180
+ **Parameters:**
181
+
182
+ | Parameter | Type | Required | Default | Description |
183
+ |-----------|------|----------|---------|-------------|
184
+ | `dryRun` | boolean | No | false | Preview changes without executing |
185
+ | `commands` | array | No | `["prune", "reindex", "ensure-all"]` | Maintenance commands to execute |
186
+
187
+ **Use Cases:**
188
+ - Search results are incomplete or outdated
189
+ - Recovering from crash or data corruption
190
+ - Need to clean up disk space
191
+
192
+ **Available Commands:**
193
+ - `prune` — Remove vectors whose source files no longer exist
194
+ - `reindex` — Rebuild vector indices and remove stale entries
195
+ - `ensure-all` — Generate missing L0/L1 layer files
196
+
197
+ **Example:**
198
+ ```json
199
+ {
200
+ "dryRun": false,
201
+ "commands": ["prune", "reindex", "ensure-all"]
202
+ }
203
+ ```
204
+
205
+ > **Note**: This tool is typically called automatically by a scheduled Cron task. Manual invocation is for troubleshooting or on-demand maintenance.
@@ -0,0 +1,134 @@
1
+ # Troubleshooting Guide
2
+
3
+ Common MemClaw issues and their solutions.
4
+
5
+ ## Installation Issues
6
+
7
+ ### Platform Not Supported
8
+
9
+ **Symptoms**: "Platform not supported" error is displayed
10
+
11
+ **Solutions**:
12
+ - Confirm you are using macOS Apple Silicon (M1/M2/M3) or Windows x64
13
+ - Other platforms are not currently supported
14
+
15
+ ### Plugin Installation Failed
16
+
17
+ **Symptoms**: `openclaw plugins install @memclaw/memclaw` fails
18
+
19
+ **Solutions**:
20
+ 1. Check network connection
21
+ 2. Confirm npm registry is accessible
22
+ 3. Try using a proxy or mirror source
23
+
24
+ ## Configuration Issues
25
+
26
+ ### Invalid API Key
27
+
28
+ **Symptoms**: Search or memory operations return API errors
29
+
30
+ **Solutions**:
31
+ 1. Verify `llmApiKey` and `embeddingApiKey` are correctly configured in OpenClaw plugin settings
32
+ 2. Confirm API keys are valid and have sufficient quota
33
+ 3. Confirm `llmApiBaseUrl` and `embeddingApiBaseUrl` are correct for your provider
34
+ 4. Verify network connectivity to API endpoints
35
+
36
+ ### Configuration Not Taking Effect
37
+
38
+ **Symptoms**: Service behavior doesn't change after modifying configuration
39
+
40
+ **Solutions**:
41
+ 1. Ensure configuration file was saved
42
+ 2. Restart OpenClaw to apply changes
43
+ 3. Check configuration file syntax for errors (JSON format)
44
+
45
+ ## Service Issues
46
+
47
+ ### Service Won't Start
48
+
49
+ **Symptoms**: Service fails to start when plugin loads
50
+
51
+ **Solutions**:
52
+ 1. Check if ports 6333, 6334, 8085 are occupied by other applications
53
+ 2. Confirm API keys are configured in OpenClaw plugin settings
54
+ 3. Check OpenClaw logs for detailed error messages
55
+
56
+ ### Service Unreachable
57
+
58
+ **Symptoms**: Tool calls return connection errors
59
+
60
+ **Solutions**:
61
+ 1. Confirm OpenClaw has been restarted and plugin is loaded
62
+ 2. Check if `autoStartServices` configuration is set to `true` (default)
63
+ 3. Verify firewall allows local connections on these ports
64
+
65
+ ## Usage Issues
66
+
67
+ ### No Search Results
68
+
69
+ **Symptoms**: `cortex_search` returns empty results
70
+
71
+ **Solutions**:
72
+ 1. Run `cortex_list_sessions` to verify sessions exist
73
+ 2. Lower `min_score` threshold (e.g., from 0.6 to 0.4)
74
+ 3. Try different query terms or synonyms
75
+ 4. Confirm that `cortex_add_memory` or `cortex_close_session` has been called previously to store memories
76
+
77
+ ### Memory Extraction Failed
78
+
79
+ **Symptoms**: `cortex_close_session` fails or produces incomplete results
80
+
81
+ **Solutions**:
82
+ 1. Verify LLM API configuration is correct
83
+ 2. Check if API quota is sufficient
84
+ 3. Check OpenClaw logs for detailed error messages
85
+
86
+ ### Migration Failed
87
+
88
+ **Symptoms**: `cortex_migrate` fails to execute
89
+
90
+ **Solutions**:
91
+ 1. Confirm OpenClaw workspace is located at `~/.openclaw/workspace`
92
+ 2. Confirm memory files exist at `~/.openclaw/workspace/memory/`
93
+ 3. Verify file permissions are correct
94
+
95
+ ## Data Issues
96
+
97
+ ### Data Location
98
+
99
+ MemClaw data storage locations:
100
+
101
+ | Platform | Path |
102
+ |----------|------|
103
+ | macOS | `~/Library/Application Support/memclaw` |
104
+ | Windows | `%LOCALAPPDATA%\memclaw` |
105
+ | Linux | `~/.local/share/memclaw` |
106
+
107
+ ### Data Safety
108
+
109
+ - **Backup**: Existing OpenClaw memory files are preserved before migration
110
+ - **Local Storage**: All memory data is stored locally
111
+ - **No Cloud Sync**: Data remains on the local machine
112
+
113
+ ## Error Messages Reference
114
+
115
+ | Error Message | Possible Cause | Solution |
116
+ |---------------|----------------|----------|
117
+ | `Service not running` | Service not started | Restart OpenClaw or enable `autoStartServices` |
118
+ | `API error: 401` | Invalid API key | Check API key configuration |
119
+ | `API error: 429` | Rate limit exceeded | Wait and retry, or upgrade API plan |
120
+ | `Connection refused` | Service unreachable | Check port usage and service status |
121
+ | `No sessions found` | No memory data | Use `cortex_add_memory` to add memories |
122
+
123
+ ## Getting Help
124
+
125
+ If the above solutions don't resolve your issue:
126
+
127
+ 1. Check OpenClaw logs for detailed error messages
128
+ 2. Submit an issue report at [GitHub Issues](https://github.com/sopaco/cortex-mem/issues)
129
+ 3. Provide the following information:
130
+ - Operating system and version
131
+ - OpenClaw version
132
+ - MemClaw plugin version
133
+ - Relevant log snippets
134
+ - Steps to reproduce
File without changes
File without changes