OwnMemory
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OwnMemoryremember I prefer TypeScript for backend work"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OwnMemory
Local-first persistent memory for AI agents. Runs entirely on your machine — SQLite storage, on-device embeddings, hybrid search, and a Cursor-compatible MCP server. No Supermemory account. No cloud API. Your silicon, your data.
This is a replacement component, not a client shell around someone else’s service.
What you get
Capability | How OwnMemory does it |
Save / forget memories |
|
Semantic + keyword recall | Hybrid FTS5 + snowflake-arctic-embed-s |
Spaces / projects |
|
Profile / context injection | Preference heuristics + recent activity |
Inspect account |
|
Browse / manage | Web console on port 47321 |
Data directory (default): ~/.ownmemory/
ownmemory.db— memories + FTS indexmodels/— cached embedding weights (downloaded once from Hugging Face, then offline)
Related MCP server: Memory MCP
Quick start
npm install
npm run devOpen http://127.0.0.1:47321.
Smoke-test the engine (isolated temp DB):
npm run smokeCursor plugin / MCP (the important part)
This repo ships as a Cursor MCP server (stdio plugin). Project config is already in:
.cursor/mcp.jsonOpen this folder in Cursor → Settings → MCP → enable ownmemory (approve project MCP if prompted). Tools memory, recall, whoAmI, listSpaces then appear in the agent tool list.
OwnMemory-owned ~/.cursor slices
Canonical copies live in this repo under .cursor-home/ and are symlinked into ~/.cursor (do not reverse the ownership):
Repo (canonical) | Symlink |
|
|
|
|
|
|
After clone (or to repair links):
# edit .cursor-home/mcp.json args to this machine's absolute bin path, then:
ln -sfn "$PWD/.cursor-home/mcp.json" ~/.cursor/mcp.json
ln -sfn "$PWD/.cursor-home/hooks/ownmemory-context.py" ~/.cursor/hooks/ownmemory-context.py
ln -sfn "$PWD/.cursor-home/rules/ownmemory-over-mem0.mdc" ~/.cursor/rules/ownmemory-over-mem0.mdc.cursor/mcp.json stays project-scoped (${workspaceFolder}). ~/.cursor/hooks.json and chat-compressor files stay in the home Cursor directory.
Env overrides are optional — unset values use ~/.ownmemory and Snowflake/snowflake-arctic-embed-s.
Run the server by hand (stdio; used by Cursor, not for browsers):
npm run mcpAgent behavior for this workspace is also steered by .cursor/rules/ownmemory.mdc.
Connectors
Optional host plugins — enable only what the machine uses:
Cursor — standalone Cursor plugin (MCP + hooks + skills).
./connectors/cursor/scripts/install-local.shOpenClaw — memory plugin with recall, store, forget, and turn hooks.
Open WebUI — a Workspace tool plus a filter that call this same HTTP API.
Mem0 packaging notes (local plugin cache audit): docs/mem0-cursor-plugin-report.md.
MCP tools (Supermemory-shaped + 0.3 additive)
memory—{ content, action?: "save"|"forget", containerTag? }recall—{ query, includeProfile?, containerTag? }whoAmI— local statuslistSpaces— list spacesget_memory—{ id }update_memory—{ id, content?, metaType?, pinned?, branch?, meta? }delete_memory—{ id, hard? }list_memories—{ containerTag?, limit?, offset? }
Resources: ownmemory://profile, ownmemory://projects
Prompt: context — system-context injection text
HTTP API
Method | Path | Purpose |
GET |
| Status + embedding readiness |
GET/POST/DELETE |
| List / save·forget / hard-delete |
POST |
| Hybrid recall |
GET/POST |
| List / create spaces |
GET |
| Profile + context prompt |
Environment
Variable | Meaning |
| Data root (default |
| Override DB file path ( |
| HF id override (wins over GUI/ |
| Disallow remote model download |
| Allow Arctic-L on CPU (default: CUDA required) |
Default embedder is arctic-s (~67MB). GUI / settings.json can select MiniLM (~23MB fallback) or arctic-l (~1.3GB ONNX, 1024-d, CUDA required — otherwise falls back to arctic-s). Stock @xenova/transformers / onnxruntime-node is CPU-only; a CUDA EP build plus enough free VRAM is needed for Arctic-L. First use downloads weights into models/. After changing the embedder, run npm run reembed and reload MCP. If embeddings fail, keyword (FTS5) search still works.
Architecture
Cursor / agents ──stdio──► MCP server (src/mcp/server.ts)
│
Web console / HTTP ───────────┼──► engine (src/lib/memory/*)
│
├── SQLite + FTS5
└── @xenova/transformers (local)Nothing phones home for memory storage or search.
What this is not (yet)
Cloud connectors (Drive, Gmail, Notion)
Proprietary long-horizon extraction models (bring your own Ollama later if you want distillation)
Multi-machine sync (your problem to solve with backups / syncthing if needed)
Those are optional layers. The core loop — remember → recall → forget on your disk — is here.
License
OwnMemory is free software. You can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. The license is GPL-2.0-only: version 2 applies, and later versions of the GNU GPL are not granted by this notice.
OwnMemory is distributed in the hope that it will be useful, but without any warranty, without even the implied warranty of merchantability or fitness for a particular purpose. The full terms are in LICENSE.
Copyright (C) 2026 Rob Bloodgood.
Each original source file carries the same copyright notice and the standard GPL version 2 grant. That notice is the boilerplate for this program. It is not a substitute for the license text.
Third-party material
Packages listed in package.json remain under their own licenses. The interface primitives in src/components/ui/ were generated from the shadcn/ui registry and remain available under the MIT License. Including those files in this tree does not relicense them. See NOTICE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory for AI agents. Search, store, and recall across sessions.
Persistent memory for AI agents. Search and store durable facts, preferences and decisions.
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
Universal persistent memory and knowledge retrieval layer for AI agents and LLMs.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceProvides persistent local memory functionality for AI assistants, enabling them to store, retrieve, and search contextual information across conversations with SQLite-based full-text search. All data stays private on your machine while dramatically improving context retention and personalized assistance.3-
- FlicenseNot gradedqualityDmaintenanceProvides persistent AI agent memory using a local vector database for long-term semantic storage and short-term session scratchpads. It enables low-latency memory operations including search, storage, and bulk management without external cloud dependencies.-
- AlicenseAqualityCmaintenanceLocal-first memory for AI agents. On-device hybrid retrieval over a single SQLite file.163Apache 2.0
- AlicenseAqualityAmaintenanceGives AI agents persistent, local-first memory using SQLite and on-device embeddings, enabling semantic search and recall across sessions with no cloud calls.87MIT