{"_id":"@2en/memory-browser","_rev":"8-81eabc4f817449feca28cf18c95dfa5b","name":"@2en/memory-browser","dist-tags":{"latest":"1.1.1"},"versions":{"0.1.0":{"name":"@2en/memory-browser","version":"0.1.0","_id":"@2en/memory-browser@0.1.0","maintainers":[{"name":"ambarli","email":"me@ambar.li"},{"name":"tianlu_2en","email":"tianlu@2en.ai"}],"dist":{"shasum":"60c72ab6c378a2847952c08e7d193d882112776c","tarball":"https://registry.npmjs.org/@2en/memory-browser/-/memory-browser-0.1.0.tgz","fileCount":4,"integrity":"sha512-jDvXJV+V5Dgzit/4nWmDVUcwTWlTx3gIhU2o0l46ExtvXQuNu8X8BK88YXKCczWvhW8yYQqQlV1Bh/seh28TFQ==","signatures":[{"sig":"MEYCIQCEX3m/MqUYB2GTQYlt58KC21IkcmX9665JdfEsaK5J0wIhAJemFWkdLmZ2LWDH6dYy7hWj/qnlblVW1zJqe+BizTPg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8973},"type":"module","module":"index.ts","gitHead":"d70f7bbe025de122c750b21eaee3e556d095961d","_npmUser":{"name":"ambarli","email":"me@ambar.li"},"_npmVersion":"10.9.4","description":"OpenClaw plugin that exposes the **memory directory** (all `.md` files) as **Gateway WebSocket RPC methods**.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory-browser_0.1.0_1770543759897_0.3958576031965204","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@2en/memory-browser","version":"1.0.0","_id":"@2en/memory-browser@1.0.0","maintainers":[{"name":"ambarli","email":"me@ambar.li"},{"name":"tianlu_2en","email":"tianlu@2en.ai"}],"homepage":"https://github.com/2enai/clawly#readme","bugs":{"url":"https://github.com/2enai/clawly/issues"},"dist":{"shasum":"99293ae672281642f0e15592fe8462d1b9351a84","tarball":"https://registry.npmjs.org/@2en/memory-browser/-/memory-browser-1.0.0.tgz","fileCount":4,"integrity":"sha512-w10OMyF2Ydz7O96HWAKMKFUjmKWaq36LYkBzdQvNgfot68WI4hG15BhCzXywyXGONYbNYTI2SpmDO4HTKO5+Eg==","signatures":[{"sig":"MEUCIQCjfJGQyMpwu0JRU1DFDQ0mCzOogerYbm8PLHbb6tbs3gIgFZnA7RZqxq7dB1w5hIttIxj4pNVcD+It/QjASJ3e240=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9116},"type":"module","module":"index.ts","gitHead":"eecd081f02e283833a0e6314951c61ab88722c05","_npmUser":{"name":"ambarli","email":"me@ambar.li"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/2enai/clawly.git","type":"git","directory":"plugins/memory-browser"},"_npmVersion":"10.9.4","description":"OpenClaw plugin that exposes the **memory directory** (all `.md` files) as **Gateway WebSocket RPC methods**.","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory-browser_1.0.0_1770548039909_0.4714093552094809","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@2en/memory-browser","version":"1.1.1","_id":"@2en/memory-browser@1.1.1","maintainers":[{"name":"ambarli","email":"me@ambar.li"},{"name":"tianlu_2en","email":"tianlu@2en.ai"}],"homepage":"https://github.com/2enai/clawly#readme","bugs":{"url":"https://github.com/2enai/clawly/issues"},"dist":{"shasum":"ebb96841202b43cac5582b57b84f947e68a80264","tarball":"https://registry.npmjs.org/@2en/memory-browser/-/memory-browser-1.1.1.tgz","fileCount":4,"integrity":"sha512-PatpVCXlPJmckT+9SCL3VikJDbKjqPZMBZQTMRdbccBd7fjHNEVtCN5Uy1TWZMtLHr2U5y+5PV5R3ljf30goAQ==","signatures":[{"sig":"MEUCIHeGoczjaT9LoFr0d+l6M8DiFvwJUb0dd1nGLQRoKBvUAiEAtZCOKbO0/BtkpQzusptoHojNzM1McCYrZn5/RDGC6kw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9640},"type":"module","module":"index.ts","gitHead":"d947006897ac0a67ca801c43866d1a70a00a1539","_npmUser":{"name":"ambarli","email":"me@ambar.li"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/2enai/clawly.git","type":"git","directory":"plugins/memory-browser"},"_npmVersion":"10.9.4","description":"OpenClaw plugin that exposes the **memory directory** (all `.md` files) as **Gateway WebSocket RPC methods**.","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory-browser_1.1.1_1770555484110_0.7106967343300208","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-02-08T09:42:39.497Z","modified":"2026-02-23T09:39:06.725Z","0.1.0":"2026-02-08T09:42:40.051Z","1.0.0":"2026-02-08T10:54:00.037Z","1.1.1":"2026-02-08T12:58:04.278Z"},"bugs":{"url":"https://github.com/2enai/clawly/issues"},"homepage":"https://github.com/2enai/clawly#readme","repository":{"url":"git+https://github.com/2enai/clawly.git","type":"git","directory":"plugins/memory-browser"},"description":"OpenClaw plugin that exposes the **memory directory** (all `.md` files) as **Gateway WebSocket RPC methods**.","maintainers":[{"email":"me@ambar.li","name":"ambarli"},{"email":"banyudu@gmail.com","name":"banyudu"},{"email":"david@hdw.im","name":"huangdawei"},{"email":"tianlu@2en.ai","name":"tianlu_2en"}],"readme":"# memory-browser\n\nOpenClaw plugin that exposes the **memory directory** (all `.md` files) as **Gateway WebSocket RPC methods**.\n\n## What you get\n\nGateway methods (call via WS RPC):\n\n- **`memory-browser.list`** — List all `.md` files in the memory directory (recursive). Returns `{ files: string[] }` (relative paths).\n- **`memory-browser.get`** — Return the content of a single `.md` file. Params: `{ path: string }` (relative path, e.g. `\"notes/foo.md\"`). Returns `{ path: string, content: string }`.\n\n## Memory directory\n\nThe memory directory is resolved in this order:\n\n1. Plugin config `memoryDir` (absolute path)\n2. `<OPENCLAW_STATE_DIR>/memory` (or `<CLAWDBOT_STATE_DIR>/memory`)\n3. `<process.cwd()>/memory`\n\n## Install on a gateway host\n\n1. Put this plugin on the gateway host and make it discoverable, e.g.:\n   - Workspace: `<workspace>/.openclaw/extensions/memory-browser/` with `index.ts` + `openclaw.plugin.json`\n   - Or set `plugins.load.paths` to the plugin folder\n\n2. Enable the plugin in `openclaw.json`:\n\n```json5\n{\n  \"plugins\": {\n    \"enabled\": true,\n    \"entries\": {\n      \"memory-browser\": { \"enabled\": true, \"config\": {} }\n    }\n  }\n}\n```\n\nOptional config: `config.memoryDir` to override the memory directory path.\n\n## Call examples (RPC params)\n\nList all `.md` files:\n\n```json\n{ \"method\": \"memory-browser.list\", \"params\": {} }\n```\n\nGet one file:\n\n```json\n{ \"method\": \"memory-browser.get\", \"params\": { \"path\": \"notes/meeting-2024.md\" } }\n```\n\n`path` must be a relative path to a `.md` file inside the memory directory; directory traversal (`..`) is rejected.\n","readmeFilename":"README.md"}