
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@memtensor/memos-lite-openclaw-plugin
Advanced tools
MemOS Lite memory plugin for OpenClaw — full-write, hybrid-recall, progressive retrieval
Persistent local conversation memory for OpenClaw AI Agents. Every conversation is automatically captured, semantically indexed, and instantly recallable — with smart task summarization and automatic skill evolution.
Full-write | Hybrid Search | Task Summarization | Skill Evolution | Memory Viewer
| Problem | Solution |
|---|---|
| Agent forgets everything between sessions | Persistent memory — every conversation auto-captured to local SQLite |
| Fragmented memory chunks lack context | Smart task summarization — conversations organized into structured tasks with goals, steps, results |
| Agent repeats past mistakes on similar tasks | Skill evolution — reusable skills auto-generated from real executions, continuously upgraded |
| No visibility into what the agent remembers | Memory Viewer — full visualization of all memories, tasks, and skills |
| Privacy concerns with cloud storage | 100% local — zero cloud uploads, anonymous opt-out telemetry only, password-protected |
agent_end event (consecutive assistant messages merged into one)active (in progress), completed (with LLM summary), skipped (too brief, excluded from search)before_agent_start hook (invisible to user). When nothing is recalled (e.g. long or unclear query), the agent is prompted to call memory_search with a self-generated short query. The bundled skill memos-memory-guide documents all tools and when to use them.From npm (recommended):
openclaw plugins install @memtensor/memos-lite-openclaw-plugin
The plugin is installed under ~/.openclaw/extensions/memos-local-openclaw-plugin and registered as memos-local-openclaw-plugin.
Important: The Memory Viewer starts only when the OpenClaw gateway is running. After install, configure
openclaw.json(step 2) and start the gateway (step 3); the viewer will then be available athttp://127.0.0.1:18799.
From source (development):
git clone https://github.com/MemTensor/MemOS.git
cd MemOS/apps/memos-lite-openclaw
npm install && npm run build
openclaw plugins install .
Add the plugin config to ~/.openclaw/openclaw.json:
{
"agents": {
"defaults": {
// IMPORTANT: Disable OpenClaw's built-in memory to avoid conflicts
"memorySearch": {
"enabled": false
}
}
},
"plugins": {
"slots": {
"memory": "memos-local-openclaw-plugin"
},
"entries": {
"memos-local-openclaw-plugin": {
"enabled": true,
"config": {
"embedding": {
"provider": "openai_compatible",
"endpoint": "https://your-api-endpoint/v1",
"apiKey": "sk-••••••",
"model": "bge-m3"
},
"summarizer": {
"provider": "openai_compatible",
"endpoint": "https://your-api-endpoint/v1",
"apiKey": "sk-••••••",
"model": "gpt-4o-mini",
"temperature": 0
}
}
}
}
}
}
Critical: You must set
agents.defaults.memorySearch.enabledtofalse. Otherwise OpenClaw's built-in memory search runs alongside this plugin, causing duplicate retrieval and wasted tokens.
| Provider | provider value | Example model | Notes |
|---|---|---|---|
| OpenAI / compatible | openai_compatible | bge-m3, text-embedding-3-small | Any OpenAI-compatible API |
| Gemini | gemini | text-embedding-004 | Requires apiKey |
| Cohere | cohere | embed-english-v3.0 | Separates document/query embedding |
| Voyage | voyage | voyage-2 | |
| Mistral | mistral | mistral-embed | |
| Local (offline) | local | — | Uses Xenova/all-MiniLM-L6-v2, no API needed |
No embedding config? The plugin falls back to the local model automatically. You can start with zero configuration and add a cloud provider later for better quality.
| Provider | provider value | Example model |
|---|---|---|
| OpenAI / compatible | openai_compatible | gpt-4o-mini |
| Anthropic | anthropic | claude-3-haiku-20240307 |
| Gemini | gemini | gemini-1.5-flash |
| AWS Bedrock | bedrock | anthropic.claude-3-haiku-20240307-v1:0 |
No summarizer config? A rule-based fallback generates summaries from the first sentence + key entities. Good enough to start.
You can optionally configure a dedicated model for skill generation (for higher quality skills):
{
"config": {
"skillSummarizer": {
"provider": "anthropic",
"apiKey": "sk-ant-xxx",
"model": "claude-sonnet-4-20250514",
"temperature": 0
},
"skillEvolution": {
"enabled": true,
"autoEvaluate": true,
"autoInstall": false
}
}
}
If skillSummarizer is not configured, the plugin uses the regular summarizer model for skill generation.
Use ${ENV_VAR} placeholders in config to avoid hardcoding keys:
{
"apiKey": "${OPENAI_API_KEY}"
}
openclaw gateway stop # if already running
openclaw gateway install # ensure LaunchAgent is installed (macOS)
openclaw gateway start
Once the gateway is up, the plugin loads and starts the Memory Viewer at http://127.0.0.1:18799.
tail -20 ~/.openclaw/logs/gateway.log
You should see:
memos-lite: initialized (db: ~/.openclaw/memos-lite/memos.db)
memos-lite: started (embedding: openai_compatible)
╔══════════════════════════════════════════╗
║ MemOS Memory Viewer ║
║ → http://127.0.0.1:18799 ║
║ Open in browser to manage memories ║
╚══════════════════════════════════════════╝
Step A — Have a conversation with your OpenClaw agent about anything.
Step B — Open the Memory Viewer at http://127.0.0.1:18799 and check that the conversation appears.
Step C — In a new conversation, ask the agent to recall what you discussed:
You: 你还记得我之前让你帮我处理过什么事情吗?
Agent: (calls memory_search) 是的,我们之前讨论过...
MemOS Lite operates through three interconnected pipelines that form a continuous learning loop:
Conversation → Memory Write Pipeline → Task Generation Pipeline → Skill Evolution Pipeline
↓
Smart Retrieval Pipeline ← ← ← ← ← ← ← ← ←
Conversation → Capture (filter roles, strip system prompts)
→ Semantic chunking (code blocks, paragraphs, error stacks)
→ Content hash dedup → LLM summarize each chunk
→ Vector embedding → Store (SQLite + FTS5 + Vector)
[STORED_MEMORY]...[/STORED_MEMORY]) are stripped to prevent feedback loopsNew chunks → Task boundary detection (LLM topic judge / 2h idle / session change)
→ Boundary crossed? → Finalize previous task
→ Chunks ≥ 4 & turns ≥ 2? → LLM structured summary → status = "completed"
→ Otherwise → status = "skipped" (excluded from search)
Why Tasks matter:
task_summary, not just fragmentsCompleted task → Rule filter (min chunks, non-trivial content)
→ Search for related existing skills
→ Related skill found (confidence ≥ 0.7)?
→ Evaluate upgrade (refine/extend/fix) → Merge new experience → Version bump
→ No related skill (or confidence < 0.3)?
→ Evaluate create → Generate SKILL.md + scripts + evals
→ Quality score (0-10) → Install if score ≥ 6
Why Skills matter:
Auto-recall (every turn): The plugin hooks before_agent_start, runs a memory search with the user's message, then uses an LLM to filter which candidates are relevant and whether they are sufficient to answer. The filtered memories are injected into the agent's system context (invisible to the user). If no memories are found or the query is long/unclear, the agent is prompted to call memory_search with a self-generated short query.
On-demand search (memory_search):
Query → FTS5 + Vector dual recall → RRF Fusion → MMR Rerank
→ Recency Decay → Score Filter → Top-K (e.g. 20)
→ LLM relevance filter (minimum information) → Dedup by excerpt overlap
→ Return excerpts + chunkId / task_id (no summaries)
→ sufficient=false → suggest task_summary(taskId), skill_get(taskId), memory_timeline(chunkId)
before_agent_start). The agent sees this as system context; the user does not.memory_search with a self-generated short query (e.g. key topics or a rephrased question).memos-memory-guide into ~/.openclaw/workspace/skills/memos-memory-guide/ and ~/.openclaw/skills/memos-memory-guide/. This skill documents all memory tools, when to call them, and how to write good search queries. Add skills.load.extraDirs: ["~/.openclaw/skills"] in openclaw.json if you want the skill to appear in the OpenClaw skills dashboard.memory_search returns excerpts (original content snippets) and IDs (chunkId, task_id), not summaries. The agent uses memory_get(chunkId) for full original text, task_summary(taskId) for structured task context, memory_timeline(chunkId) for surrounding conversation, and skill_get(skillId|taskId) for reusable experience guides.The plugin provides 8 smart tools (7 registered tools + auto-recall) and auto-installs the memos-memory-guide skill:
| Tool | Purpose | When to Use |
|---|---|---|
auto_recall | Automatically injects relevant memories into agent context each turn (via before_agent_start hook) | Runs automatically — no manual call needed |
memory_search | Search memories; returns excerpts + chunkId / task_id | When auto-recall returned nothing or you need a different query |
memory_get | Get full original text of a memory chunk | When you need to verify exact details from a search hit |
memory_timeline | Surrounding conversation around a chunk | When you need the exact dialogue before/after a hit |
task_summary | Full structured summary of a completed task | When a hit has task_id and you need the full story (goal, steps, result) |
skill_get | Get skill content by skillId or taskId | When a hit has a linked task/skill and you want the reusable experience guide |
skill_install | Install a skill into the agent workspace | When the skill should be permanently available for future turns |
memory_viewer | Get the URL of the Memory Viewer web UI | When the user asks where to view or manage their memories |
| Parameter | Default | Range | Description |
|---|---|---|---|
query | — | — | Natural language search query (keep it short and focused) |
maxResults | 20 | 1–20 | Maximum candidates before LLM filter |
minScore | 0.45 | 0.35–1.0 | Minimum relevance score |
role | — | user / assistant / tool | Filter by message role (e.g. user to find what the user said) |
Open http://127.0.0.1:18799 in your browser after starting the gateway.
Pages:
| Page | Features |
|---|---|
| Memories | Timeline view, pagination, session/role/kind/date filters, CRUD, semantic search; evolution badges and merge history on cards |
| Tasks | Task list with status filters (active/completed/skipped), chat-bubble chunk view, structured summaries, skill generation status |
| Skills | Skill list with status badges, version history with changelogs, quality scores, related tasks, one-click ZIP download |
| Analytics | Daily write/read activity charts, memory/task/skill totals, role breakdown |
| Logs | Tool call log (memory_search, auto_recall, memory_add, etc.) with input/output, duration, and tool filter; auto-refresh |
| Import | 🦐 OpenClaw native memory migration — scan, one-click import with real-time SSE progress, smart dedup, pause/resume; post-processing for task & skill generation |
| Settings | Online configuration for embedding model, summarizer model, skill evolution settings, viewer port |
Viewer won't open?
openclaw gateway start~/.openclaw/openclaw.jsontail -30 ~/.openclaw/logs/gateway.log — look for MemOS Memory ViewerForgot password? Click "Forgot password?" on the login page and use the reset token:
grep "password reset token:" ~/.openclaw/logs/gateway.log 2>/dev/null | tail -1
Copy the 32-character hex string after password reset token:.
All optional — shown with defaults:
{
"config": {
"recall": {
"maxResultsDefault": 6, // Default search results
"maxResultsMax": 20, // Max search results
"minScoreDefault": 0.45, // Default min score threshold
"minScoreFloor": 0.35, // Lowest allowed min score
"rrfK": 60, // RRF fusion constant
"mmrLambda": 0.7, // MMR relevance vs diversity (0-1)
"recencyHalfLifeDays": 14 // Time decay half-life
},
"dedup": {
"similarityThreshold": 0.75, // Cosine similarity for smart-dedup candidates (Top-5)
"enableSmartMerge": true, // LLM judge: DUPLICATE / UPDATE / NEW
"maxCandidates": 5 // Max similar chunks to send to LLM
},
"skillEvolution": {
"enabled": true, // Enable skill evolution
"autoEvaluate": true, // Auto-evaluate tasks for skill generation
"minChunksForEval": 6, // Min chunks for a task to be evaluated
"minConfidence": 0.7, // Min LLM confidence to create/upgrade skill
"autoInstall": false // Auto-install generated skills
},
"viewerPort": 18799, // Memory Viewer port
"telemetry": {
"enabled": true // Anonymous usage analytics (default: true, set false to opt-out)
}
}
}
MemOS Lite collects anonymous usage analytics to help us understand how the plugin is used and improve it. Telemetry is enabled by default and can be disabled at any time.
Add telemetry to your plugin config in ~/.openclaw/openclaw.json:
{
"plugins": {
"entries": {
"memos-local-openclaw-plugin": {
"enabled": true,
"config": {
"telemetry": {
"enabled": false
}
// ... other config
}
}
}
}
}
Or set the environment variable:
TELEMETRY_ENABLED=false
~/.openclaw/memos-lite/.anonymous-id)If you see "plugin already exists" or "plugin not found":
Option A — Clean reinstall via OpenClaw CLI:
rm -rf ~/.openclaw/extensions/memos-local-openclaw-plugin
openclaw plugins install @memtensor/memos-lite-openclaw-plugin
cd ~/.openclaw/extensions/memos-local-openclaw-plugin && npm install --omit=dev
openclaw gateway stop && openclaw gateway start
Option B — Manual install (when config already references memos-local-openclaw-plugin):
rm -rf ~/.openclaw/extensions/memos-lite
cd /tmp
npm pack @memtensor/memos-lite-openclaw-plugin
tar -xzf memtensor-memos-lite-openclaw-plugin-*.tgz
mv package ~/.openclaw/extensions/memos-local-openclaw-plugin
cd ~/.openclaw/extensions/memos-local-openclaw-plugin && npm install --omit=dev
openclaw gateway stop && openclaw gateway start
Plugin shows as "error" in openclaw plugins list? (e.g. Cannot find module '@sinclair/typebox')
cd ~/.openclaw/extensions/memos-local-openclaw-plugin && npm install --omit=dev
Then restart the gateway.
Note the exact error — e.g. plugin not found, Cannot find module 'xxx', Invalid config.
Check plugin status
openclaw plugins list
~/.openclaw/extensions/memos-local-openclaw-pluginCheck gateway logs
tail -50 ~/.openclaw/logs/gateway.log
Search for memos-lite, failed to load, Error, Cannot find module.
Check environment
node -v (requires >= 18)ls ~/.openclaw/extensions/memos-local-openclaw-plugin/package.jsonls ~/.openclaw/extensions/memos-local-openclaw-plugin/node_modules/@sinclair/typebox
If missing: cd ~/.openclaw/extensions/memos-local-openclaw-plugin && npm install --omit=devCheck configuration — Open ~/.openclaw/openclaw.json and verify:
agents.defaults.memorySearch.enabled = false (disable built-in memory)plugins.slots.memory = "memos-local-openclaw-plugin"plugins.entries.memos-local-openclaw-plugin.enabled = trueMemory conflict with built-in search — If the agent calls both the built-in memory search and the plugin's memory_search, it means agents.defaults.memorySearch.enabled is not set to false.
Skills not generating — Check:
skillEvolution.enabled is trueSkillEvolver output in the gateway log| File | Path |
|---|---|
| Database | ~/.openclaw/memos-lite/memos.db |
| Viewer auth | ~/.openclaw/memos-lite/viewer-auth.json |
| Gateway log | ~/.openclaw/logs/gateway.log |
| Plugin code | ~/.openclaw/extensions/memos-local-openclaw-plugin/ |
| Memory-guide skill | ~/.openclaw/workspace/skills/memos-memory-guide/SKILL.md (and ~/.openclaw/skills/memos-memory-guide/) |
| Generated skills | ~/.openclaw/memos-lite/skills-store/<skill-name>/ |
| Installed skills | ~/.openclaw/workspace/skills/<skill-name>/ |
Run the test suite:
cd MemOS/apps/memos-lite-openclaw
npm test
Test coverage includes:
MIT — See LICENSE for details.
FAQs
MemOS Lite memory plugin for OpenClaw — full-write, hybrid-recall, progressive retrieval
The npm package @memtensor/memos-lite-openclaw-plugin receives a total of 2 weekly downloads. As such, @memtensor/memos-lite-openclaw-plugin popularity was classified as not popular.
We found that @memtensor/memos-lite-openclaw-plugin demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.