@basicmemory/openclaw-basic-memory 0.1.0-alpha.1 → 0.1.0-alpha.8

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/README.md CHANGED
@@ -37,7 +37,7 @@ For a practical runbook, see [Memory + Task Flow](./MEMORY_TASK_FLOW.md).
37
37
  openclaw plugins install @basicmemory/openclaw-basic-memory
38
38
 
39
39
  # Enable and assign to the memory slot
40
- openclaw plugins enable basic-memory --slot memory
40
+ openclaw plugins enable openclaw-basic-memory --slot memory
41
41
 
42
42
  # Restart the gateway
43
43
  openclaw gateway restart
@@ -46,7 +46,7 @@ openclaw gateway restart
46
46
  Verify:
47
47
  ```bash
48
48
  openclaw plugins list
49
- openclaw plugins info basic-memory
49
+ openclaw plugins info openclaw-basic-memory
50
50
  ```
51
51
 
52
52
  If `uv` is not installed, the `bm` CLI setup is skipped gracefully during install. Install `uv` first, then re-run the postinstall script:
@@ -55,6 +55,17 @@ If `uv` is not installed, the `bm` CLI setup is skipped gracefully during instal
55
55
  bash ~/.openclaw/extensions/openclaw-basic-memory/scripts/setup-bm.sh
56
56
  ```
57
57
 
58
+ ### Basic Memory Cloud
59
+
60
+ Everything works locally — cloud adds cross-device, team, and production capabilities:
61
+
62
+ - **Your agent's memory travels with you** — same knowledge graph on laptop, desktop, and hosted environments
63
+ - **Team knowledge sharing** — org workspaces let multiple agents and team members build on a shared knowledge base
64
+ - **Durable memory for production agents** — persistent memory that survives CI teardowns and container restarts
65
+ - **Multi-agent coordination** — multiple agents can read and write to the same graph
66
+
67
+ Cloud extends local-first — still plain markdown, still yours. Start with a [7-day free trial](https://basicmemory.com) and use code `BMCLAW` for 20% off for 3 months. See [BASIC_MEMORY.md](./BASIC_MEMORY.md) for cloud setup.
68
+
58
69
  ### Development (local directory)
59
70
 
60
71
  For plugin development, clone and link locally:
@@ -64,7 +75,7 @@ git clone https://github.com/basicmachines-co/openclaw-basic-memory.git
64
75
  cd openclaw-basic-memory
65
76
  bun install
66
77
  openclaw plugins install -l "$PWD"
67
- openclaw plugins enable basic-memory --slot memory
78
+ openclaw plugins enable openclaw-basic-memory --slot memory
68
79
  openclaw gateway restart
69
80
  ```
70
81
 
@@ -77,12 +88,12 @@ Or load directly from a path in your OpenClaw config:
77
88
  paths: ["~/dev/openclaw-basic-memory"]
78
89
  },
79
90
  entries: {
80
- "basic-memory": {
91
+ "openclaw-basic-memory": {
81
92
  enabled: true
82
93
  }
83
94
  },
84
95
  slots: {
85
- memory: "basic-memory"
96
+ memory: "openclaw-basic-memory"
86
97
  }
87
98
  }
88
99
  }
@@ -120,7 +131,7 @@ This installs to the same `skills/` directory the plugin reads from, so updated
120
131
  ### Minimal (zero-config)
121
132
  ```json5
122
133
  {
123
- "basic-memory": {
134
+ "openclaw-basic-memory": {
124
135
  enabled: true
125
136
  }
126
137
  }
@@ -131,7 +142,7 @@ This uses sensible defaults: auto-generated project name, maps Basic Memory to y
131
142
  ### Full configuration
132
143
  ```json5
133
144
  {
134
- "basic-memory": {
145
+ "openclaw-basic-memory": {
135
146
  enabled: true,
136
147
  config: {
137
148
  project: "my-agent", // BM project name (default: "openclaw-{hostname}")
@@ -287,17 +298,6 @@ After each agent turn (when `autoCapture: true`), the plugin:
287
298
  2. Appends them as timestamped entries to a daily conversation note (`conversations-YYYY-MM-DD`)
288
299
  3. Skips very short exchanges (< `captureMinChars` chars each, default 10)
289
300
 
290
- ### Basic Memory Cloud
291
-
292
- Everything works locally — cloud adds cross-device, team, and production capabilities:
293
-
294
- - **Your agent's memory travels with you** — same knowledge graph on laptop, desktop, and hosted environments
295
- - **Team knowledge sharing** — org workspaces let multiple agents and team members build on a shared knowledge base
296
- - **Durable memory for production agents** — persistent memory that survives CI teardowns and container restarts
297
- - **Multi-agent coordination** — multiple agents can read and write to the same graph
298
-
299
- Cloud extends local-first — still plain markdown, still yours. Start with a [7-day free trial](https://basicmemory.com) and use code `BMCLAW` for 20% off for 3 months. See [BASIC_MEMORY.md](./BASIC_MEMORY.md) for setup, or visit [basicmemory.com](https://basicmemory.com) for more info.
300
-
301
301
  ## Agent Tools
302
302
 
303
303
  All content tools accept an optional `project` parameter to operate on a different project than the default (cross-project operations).
@@ -499,7 +499,7 @@ bun run test:int # Real BM MCP integration tests
499
499
 
500
500
  ## Publish to npm
501
501
 
502
- This package is published as `@openclaw/basic-memory`.
502
+ This package is published as `@basicmemory/openclaw-basic-memory`.
503
503
 
504
504
  ```bash
505
505
  # 1) Verify release readiness (types + tests + npm pack dry run)
package/config.ts CHANGED
@@ -6,6 +6,11 @@ export type CloudConfig = {
6
6
  api_key: string
7
7
  }
8
8
 
9
+ export type DashboardConfig = {
10
+ enabled: boolean
11
+ port: number
12
+ }
13
+
9
14
  export type BasicMemoryConfig = {
10
15
  project: string
11
16
  bmPath: string
@@ -18,6 +23,7 @@ export type BasicMemoryConfig = {
18
23
  recallPrompt: string
19
24
  debug: boolean
20
25
  cloud?: CloudConfig
26
+ dashboard: DashboardConfig
21
27
  }
22
28
 
23
29
  const ALLOWED_KEYS = [
@@ -37,6 +43,7 @@ const ALLOWED_KEYS = [
37
43
  "recall_prompt",
38
44
  "debug",
39
45
  "cloud",
46
+ "dashboard",
40
47
  ]
41
48
 
42
49
  function assertAllowedKeys(
@@ -106,6 +113,22 @@ export function parseConfig(raw: unknown): BasicMemoryConfig {
106
113
  }
107
114
  }
108
115
 
116
+ let dashboard: DashboardConfig = { enabled: false, port: 3838 }
117
+ if (
118
+ cfg.dashboard &&
119
+ typeof cfg.dashboard === "object" &&
120
+ !Array.isArray(cfg.dashboard)
121
+ ) {
122
+ const d = cfg.dashboard as Record<string, unknown>
123
+ dashboard = {
124
+ enabled: typeof d.enabled === "boolean" ? d.enabled : false,
125
+ port:
126
+ typeof d.port === "number" && d.port > 0 && d.port < 65536
127
+ ? d.port
128
+ : 3838,
129
+ }
130
+ }
131
+
109
132
  return {
110
133
  project:
111
134
  typeof cfg.project === "string" && cfg.project.length > 0
@@ -144,6 +167,7 @@ export function parseConfig(raw: unknown): BasicMemoryConfig {
144
167
  : "Check for active tasks and recent activity. Summarize anything relevant to the current session.",
145
168
  debug: typeof cfg.debug === "boolean" ? cfg.debug : false,
146
169
  cloud,
170
+ dashboard,
147
171
  }
148
172
  }
149
173
 
package/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Server } from "node:http"
1
2
  import type { OpenClawPluginApi } from "openclaw/plugin-sdk"
2
3
  import { BmClient } from "./bm-client.ts"
3
4
  import { registerCli } from "./commands/cli.ts"
@@ -8,6 +9,7 @@ import {
8
9
  parseConfig,
9
10
  resolveProjectPath,
10
11
  } from "./config.ts"
12
+ import { createDashboardServer } from "./dashboard/server.ts"
11
13
  import { buildCaptureHandler } from "./hooks/capture.ts"
12
14
  import { buildRecallHandler } from "./hooks/recall.ts"
13
15
  import { initLogger, log } from "./logger.ts"
@@ -30,7 +32,7 @@ import { registerSearchTool } from "./tools/search-notes.ts"
30
32
  import { registerWriteTool } from "./tools/write-note.ts"
31
33
 
32
34
  export default {
33
- id: "basic-memory",
35
+ id: "openclaw-basic-memory",
34
36
  name: "Basic Memory",
35
37
  description:
36
38
  "Local-first knowledge graph for OpenClaw — persistent memory with graph search and composited memory_search",
@@ -80,8 +82,10 @@ export default {
80
82
  registerCli(api, client, cfg)
81
83
 
82
84
  // --- Service lifecycle ---
85
+ let dashboardServer: Server | undefined
86
+
83
87
  api.registerService({
84
- id: "basic-memory",
88
+ id: "openclaw-basic-memory",
85
89
  start: async (ctx: { config?: unknown; workspaceDir?: string }) => {
86
90
  log.info("starting...")
87
91
 
@@ -108,10 +112,30 @@ export default {
108
112
 
109
113
  setWorkspaceDir(workspace)
110
114
 
115
+ // Start dashboard if enabled
116
+ if (cfg.dashboard.enabled) {
117
+ dashboardServer = createDashboardServer({
118
+ port: cfg.dashboard.port,
119
+ client,
120
+ })
121
+ dashboardServer.listen(cfg.dashboard.port, () => {
122
+ log.info(
123
+ `dashboard running at http://localhost:${cfg.dashboard.port}`,
124
+ )
125
+ })
126
+ }
127
+
111
128
  log.info("connected — BM MCP stdio session running")
112
129
  },
113
130
  stop: async () => {
114
131
  log.info("stopping BM MCP session...")
132
+ if (dashboardServer) {
133
+ await new Promise<void>((resolve) =>
134
+ dashboardServer?.close(() => resolve()),
135
+ )
136
+ dashboardServer = undefined
137
+ log.info("dashboard stopped")
138
+ }
115
139
  await client.stop()
116
140
  log.info("stopped")
117
141
  },
@@ -1,5 +1,5 @@
1
1
  {
2
- "id": "basic-memory",
2
+ "id": "openclaw-basic-memory",
3
3
  "kind": "memory",
4
4
  "skills": [
5
5
  "skills/memory-tasks",
@@ -56,6 +56,11 @@
56
56
  "label": "Cloud Backend",
57
57
  "help": "Optional cloud backend config (url + api_key). If present, uses cloud instead of local BM.",
58
58
  "advanced": true
59
+ },
60
+ "dashboard": {
61
+ "label": "Dashboard",
62
+ "help": "Web dashboard for visualizing the knowledge graph (enabled, port)",
63
+ "advanced": true
59
64
  }
60
65
  },
61
66
  "configSchema": {
@@ -76,6 +81,13 @@
76
81
  "url": { "type": "string" },
77
82
  "api_key": { "type": "string" }
78
83
  }
84
+ },
85
+ "dashboard": {
86
+ "type": "object",
87
+ "properties": {
88
+ "enabled": { "type": "boolean" },
89
+ "port": { "type": "number", "minimum": 1, "maximum": 65535 }
90
+ }
79
91
  }
80
92
  },
81
93
  "required": []
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@basicmemory/openclaw-basic-memory",
3
- "version": "0.1.0-alpha.1",
3
+ "version": "0.1.0-alpha.8",
4
4
  "type": "module",
5
5
  "description": "Basic Memory plugin for OpenClaw — local-first knowledge graph for agent memory",
6
6
  "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/basicmachines-co/openclaw-basic-memory"
10
+ },
7
11
  "files": [
8
12
  "index.ts",
9
13
  "bm-client.ts",