by SMJAI
An open standard for portable, interoperable AI memory across tools, sessions, and devices.
# Add to your Claude Code skills
git clone https://github.com/SMJAI/open-memory-protocolGuides for using mcp servers skills like open-memory-protocol.
open-memory-protocol is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by SMJAI. An open standard for portable, interoperable AI memory across tools, sessions, and devices. It has 50 GitHub stars.
open-memory-protocol's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/SMJAI/open-memory-protocol" and add it to your Claude Code skills directory (see the Installation section above).
open-memory-protocol is primarily written in TypeScript. It is open-source under SMJAI on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh open-memory-protocol against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
An open standard for portable, interoperable AI memory across tools, sessions, and devices.
Every AI tool remembers you differently — and only within its own walls.
Every time you switch tools, your AI forgets you. You repeat yourself. Context is lost. The AI that was finally starting to know you resets to a stranger.
This is the AI memory silo problem. And it has the same solution as every silo problem before it: an open protocol.
Open Memory Protocol is a vendor-neutral specification for how AI tools store, retrieve, and share memory about users and their context.
It is:
Any AI tool that implements OMP can instantly share memory with any other OMP-compatible tool.
Requirements: Node.js 22 or newer
npx omp-server
Or with Docker:
docker run -p 3456:3456 -v omp-data:/data ghcr.io/smjai/omp-server
Your server is now running at http://localhost:3456. Test it:
curl http://localhost:3456/v1/health
# {"status":"ok","version":"0.1","compliance":"OMP-Core","memories_count":0}
Find your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.jsonAdd to it:
{
"mcpServers": {
"omp": {
"command": "npx",
"args": ["omp-mcp"],
"env": {
"OMP_SERVER": "http://localhost:3456",
"OMP_API_KEY": "your-omp-key"
}
}
}
}
To enable AI-powered memory extraction and compression, also set these on the server:
OMP_AI_PROVIDER=anthropic # or "openai"
OMP_AI_API_KEY=sk-ant-... # your Anthropic or OpenAI key
Without a system prompt, you have to ask Claude to use OMP tools manually. To make it automatic, create a Project in Claude Desktop and add this system prompt:
You have access to OMP memory tools (omp_remember, omp_recall, omp_list).
At the start of every conversation, use omp_recall to search for memories
relevant to what the user is asking about.
Whenever the user shares anything worth remembering — preferences, decisions,
projects, facts about themselves — automatically use omp_remember to save it
without being asked.
Never tell the user you are saving a memory. Just do it silently.
This makes OMP invisible — Claude just remembers, automatically, across every session.
The OMP Bridge browser extension makes this seamless. No copying JSON, no manual steps.
How it works:
You can also save manually at any point: click the OMP Bridge extension icon → "Save this conversation to OMP".
The handoff brief (AI-generated) looks like:
We were exploring MCP (Model Context Protocol) with ChatGPT — specifically what it
is, how it compares to function calling, and why it's more portable across providers.
I'm ready to go deeper on real-world implementations. Can you show me how to build
an MCP server from scratch?
API — save and replay conversations programmatically:
# Save a conversation
curl -X POST http://localhost:3456/v1/conversations \
-H "Content-Type: application/json" \
-d '{
"model": "chatgpt",
"topic": "MCP deep dive",
"messages": [
{"role": "user", "content": "Tell me about MCP"},
{"role": "assistant", "content": "MCP stands for..."}
]
}'
# Generate a handoff brief for another model
curl -X POST http://localhost:3456/v1/handoff \
-H "Content-Type: application/json" \
-d '{
"conversation_id": "conv_abc123",
"target_model": "claude"
}'
# → { "brief": "We were exploring MCP with ChatGPT...", "topic": "...", "source_model": "chatgpt" }
curl -X POST http://localhost:3456/v1/memories \
-H "Content-Type: application/json" \
-d '{
"content": "User prefers TypeScript over JavaScript and dislikes verbose comments",
"type": "semantic",
"source": { "tool": "claude" },
"tags": ["preferences", "coding"]
}'
curl "http://localhost:3456/v1/memories/search?q=coding+preferences"
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Claude │ │ Cursor │ │ Your Agent │
│ (MCP) │ │ (SDK) │ │ (REST API) │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└───────────────────┼───────────────────┘
│
┌────────▼────────┐
│ OMP Server │
│ (self-hosted) │
│ │
│ ┌───────────┐ │
│ │ SQLite │ │
│ │ / Pgvec │ │
│ └───────────┘ │
└─────────────────┘
Every tool reads and writes to a single OMP server you control. One memory store. All tools. Zero silos.
OMP defines:
episodic (events), semantic (facts/preferences), procedural (how-to knowledge)Read the full specification: SPEC.md
{
"id": "mem_01j9xk2p3q4r5s6t",
"content": "User is building a fintech startup, prefers clean architecture, dislikes over-engineering",
"type": "semantic",
"source": {
"tool": "claude",
"session_id": "sess_abc123",
"timestamp": "2026-06-29T12:00:00Z"
},
"tags": ["profile", "preferences", "engineering"],
"created_at": "2026-06-29T12:00:00Z",
"updated_at": "2026-06-29T12:00:00Z",
"expires_at": null
}
| Tool | Status | How |
|---|---|---|
| Claude Desktop | ✅ Working | MCP adapter — automatic memory save/recall |
| Claude.ai (web) | ✅ Working | OMP Bridge extension — handoff toast on new chat |
| ChatGPT (web) | ✅ Working | OMP Bridge extension — reads DOM, saves conversation |
| Gemini (web) | ✅ Working | OMP Bridge extension |
| Perplexity (web) | ✅ Working | OMP Bridge extension |
| Claude Code (CLI) | ✅ Working | claude mcp add omp-mcp — same MCP tools |
| Any AI CLI (Aider etc.) | ✅ Working | omp CLI — inject context, save sessions |
| Cursor | 🙋 Help wanted | Open issue |
| Copilot / VS Code | 🙋 Help wanted | Open issue |
| Custom (REST) | ✅ Available | Any HTTP client |
Install the omp CLI:
npm install -g omp-cli
Claude Code (VS Code or terminal) — full MCP integration:
omp setup claude-code # prints the exact command to run
# then run:
claude mcp add omp -- npx omp-mcp
Claude Code gets omp_remember, omp_recall, omp_compress as tools — same as Claude Desktop.
Cursor — injects memories into .cursorrules:
omp inject --for cursor # run this in your project folder
# Cursor reads .cursorrules automatically on every chat
GitHub Copilot — injects memories into .github/copilot-instructions.md:
omp inject --for copilot
OpenAI Codex CLI — injects into AGENTS.md (auto-read by Codex):
omp inject --for codex && codex
# OR pipe directly:
codex --instructions "$(omp context)"
Continue.dev and any other CLI:
omp context | <your-ai-cli> # pipe memories as context
omp handoff --from chatgpt # continue a web conversation in a CLI
Cross-tool handoff (web → CLI or CLI → web):
# ChatGPT → Claude Code
claude "$(omp handoff --from chatgpt)"
# Claude.ai → Codex
codex --instructions "$(omp handoff --from claude)"
# Save any CLI session back to OMP
omp save --model codex < session.txt
The browser extension brings OMP to the web versions of every AI tool with zero setup on their side.
What it does: