1. Conduid
  2. RAG
  3. Omem
MCP server · RAG

Omem

Shared Memory That Never Forgets — persistent memory for AI agents with Space-based sharing across agents and teams. Plugins for OpenCode, Claude Code, OpenClaw, MCP Server.

52Fair

Scored 5 months ago · breakdown

About Omem

Omem is an MCP server in the RAG category: shared Memory That Never Forgets — persistent memory for AI agents with Space-based sharing across agents and teams. Plugins for OpenCode, Claude Code, OpenClaw, MCP Server. It has been installed 0 times through Conduid.

Install

Clone
git clone https://github.com/ourmem/omem

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Omem

Powered by Claude · Grounded in docs

I know everything about Omem. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • ·Scoped permissionsNot checked yet.

README


The Problem

Your AI agents have amnesia — and they work alone.

  • 🧠 Amnesia — every session starts from zero. Preferences, decisions, context — all gone.
  • 🏝️ Silos — your Coder agent can't access what your Writer agent learned.
  • 📁 Local lock-in — memory tied to one machine. Switch devices, lose everything.
  • 🚫 No sharing — team agents can't share what they know. Every agent re-discovers the same things.
  • 🔍 Dumb recall — keyword match only. No semantic understanding, no relevance ranking.
  • 🧩 No collective intelligence — even when agents work on the same team, there's no shared knowledge layer.

ourmem fixes all of this.

What is ourmem

ourmem gives AI agents shared persistent memory — across sessions, devices, agents, and teams. One API key reconnects everything.

🌐 Website: ourmem.ai

🧑‍💻 I use AI coding tools

Install the plugin for your platform. Memory works automatically — your agent recalls past context on session start and captures key info on session end.

→ Jump to Quick Start

🔧 I'm building AI products

REST API with 48+ endpoints. Docker one-liner for self-deploy. Embed persistent memory into your own agents and workflows.

→ Jump to Self-Deploy

Core Capabilities

📖 Memory Pipeline Architecture — Technical deep-dive into how ourmem stores, retrieves, and evolves memories.

🔗 Memory Sharing Architecture — How memories flow across agents and teams: sharing, provenance, versioning, and cross-space search.

Feature Overview

Category Feature Details
Platforms 4 platforms OpenCode, Claude Code, OpenClaw, MCP Server
Sharing Space-based sharing Personal / Team / Organization with provenance
Provenance tracking Every shared memory carries full lineage
Quality-gated auto-sharing Rules fire on memory creation (async, non-blocking)
Vector-enabled shared copies Shared copies carry source vector embeddings for full search
Idempotent sharing Re-sharing returns existing copy (no duplicates)
Version tracking Memories track version counter, shared copies detect staleness via ?check_stale=true
Re-share stale copies Refresh outdated shared copies with latest source content and vector
Convenience sharing One-step cross-user share (share-to-user) and bulk share (share-all-to-user) with auto-bridging
Organization management One-step org creation (org/setup) and publish (org/publish) with auto-share rules
Cross-space search Search across all accessible spaces at once
Ingestion Smart dedup 7 decisions: CREATE, MERGE, SKIP, SUPERSEDE, SUPPORT, CONTEXTUALIZE, CONTRADICT
Noise filter Regex + vector prototypes + feedback learning
Admission control 5-dimension scoring gate (utility, confidence, novelty, recency, type prior)
Dual-stream write Sync fast path (<50ms) + async LLM extraction
Post-import intelligence Batch import → async LLM re-extraction + relation discovery
Adaptive import strategy Auto/atomic/section/document — heuristic content type detection
Content fidelity Original text preserved, dual-path search (vector + BM25 on source text)
Cross-reconcile Discover relations between memories via vector similarity
Batch self-dedup LLM deduplicates facts within same import batch
Privacy protection <private> tag redaction before storage
Retrieval 11-stage pipeline Vector + BM25 → RRF → reranker → decay → importance → MMR diversity
User Profile Static facts + dynamic context, <100ms
Retrieval trace Per-stage explainability (input/output/score/duration)
Lifecycle Weibull decay Tier-specific β (Core=0.8, Working=1.0, Peripheral=1.3)
Three-tier promotion Peripheral ↔ Working ↔ Core with access-based promotion
Auto-forgetting TTL detection for time-sensitive info ("tomorrow", "next week")
Multi-modal File processing PDF, image OCR, video transcription, code AST chunking
GitHub connector Real-time webhook sync for code, issues, PRs
Deploy Open source Apache-2.0
Self-hostable Single binary, Docker one-liner, ~$5/month
musl static build Zero-dependency binary for any Linux x86_64
Object storage AWS S3 or any S3-compatible storage, with IAM role support
Hosted option ourmem.ai — nothing to deploy

From Isolated Agents to Collective Intelligence

Most AI memory systems trap knowledge in silos. ourmem's three-tier Space architecture enables knowledge flow across agents and teams — with provenance tracking and quality-gated sharing.

Research shows collaborative memory reduces redundant work by up to 61% — agents stop re-discovering what their teammates already know. — Collaborative Memory, ICLR 2026

Personal Team Organization
Scope One user, multiple agents Multiple users Company-wide
Example Coder + Writer share preferences Backend team shares arch decisions Tech standards, security policies
Access Owner's agents only Team members All org members (read-only)

Provenance-tracked sharing — every shared memory carries its lineage: who shared it, when, and where it came from. Shared copies include the source memory's vector embedding, so they're fully searchable in the target space.

Quality-gated auto-sharing — rules filter by importance, category, and tags. Rules fire automatically when new memories are created. Only high-value insights cross space boundaries.

How It Works

┌──────────────────────────────────────────────────────────────────┐
│   Your AI Agent (OpenCode / Claude Code / OpenClaw / Cursor)     │
│                                                                  │
│   Session Start → auto-recall relevant memories                  │
│   During Work   → keyword detection triggers recall              │
│   Session End   → auto-capture decisions, preferences, facts     │
└───────────────────────────┬──────────────────────────────────────┘
                            │ REST API (X-API-Key)
                            ▼
┌──────────────────────────────────────────────────────────────────┐
│                       ourmem Server                              │
│                                                                  │
│  ┌─ Smart Ingest ─────────────────────────────────────────────┐  │
│  │  Messages → LLM extraction → noise filter → admission      │  │
│  │  → 7-decision reconciliation (CREATE / MERGE / SUPERSEDE / │  │
│  │    SUPPORT / CONTEXTUALIZE / CONTRADICT / SKIP)            │  │
│  │  → cross-reconcile relations → privacy redaction           │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                  │
│  ┌─ Hybrid Search (11 stages) ────────────────────────────────┐  │
│  │  Vector + BM25 → RRF fusion → cross-encoder reranker       │  │
│  │  → Weibull decay boost → importance scoring                │  │
│  │  → MMR diversity → parallel cross-space aggregation        │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                  │
│  ┌─ Sharing Engine ───────────────────────────────────────────┐  │
│  │  Personal / Team / Organization spaces                     │  │
│  │  → provenance tracking → version-based stale detection     │  │
│  │  → auto-share rules → one-step share-to-user              │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                  │
│  ┌─ Lifecycle ────────────────────────────────────────────────┐  │
│  │  Weibull decay (Core β=0.8 / Working β=1.0 / Peripheral   │  │
│  │  β=1.3) → 3-tier promotion → auto-forgetting TTL          │  │
│  └────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────┘
  • Write once, recall everywhere — memories persist across sessions, devices, and agents
  • Gets smarter over time — reconciliation merges, updates, and contradicts memories automatically
  • Share across boundaries — Personal → Team → Organization knowledge flow with full provenance
  • No manual memory management — Weibull decay handles lifecycle, auto-share rules handle distribution

Key Concepts

API Key = Tenant ID = Your Identity

When you create a tenant, the returned id is your API Key. They're the same UUID. There is no separate "tenant ID".

curl -X POST https://api.ourmem.ai/v1/tenants -d '{"name": "alice"}'
# → {"id": "a1b2c3d4-...", "api_key": "a1b2c3d4-...", "status": "active"}
#          ↑ same value ↑

API Key vs Space ID

Concept What it is Example How many
API Key Your identity. Goes in X-API-Key header. a1b2c3d4-... 1 per user
Space ID A memory storage address. Each is an isolated database. personal/a1b2c3d4-... Multiple per user

One API Key owns multiple Spaces:

API Key "a1b2c3d4"
  │
  ├── personal/a1b2c3d4     ← auto-created, your private memories
  ├── team/e5f6g7h8          ← team space you created (you = Admin)
  ├── team/i9j0k1l2          ← team space you were invited to (you = Member)
  └── org/m3n4o5p6           ← organization you joined (you = Reader)

Sharing = Passing Your API Key

To share memories with another user, you pass their API Key as target_user:

# Share all your preferences to user Bob
curl -X POST https://api.ourmem.ai/v1/memories/share-all-to-user \
  -H "X-API-Key: your-api-key" \
  -d '{"target_user": "bobs-api-key", "filters": {"categories": ["preference"]}}'

The system automatically creates a bridging Team Space between you and Bob. No manual space management needed.

Quick Start

Agent Install (recommended)

One message to your AI agent. It handles everything — API key, plugin install, config, verification.

Hosted (ourmem.ai — nothing to deploy):

Platform Copy this to your agent
OpenClaw Read https://ourmem.ai/SKILL.md and follow the instructions to install and configure ourmem for OpenClaw
Claude Code Read https://ourmem.ai/SKILL.md and follow the instructions to install and configure ourmem for Claude Code
OpenCode Read https://ourmem.ai/SKILL.md and follow the instructions to install and configure ourmem for OpenCode
Cursor / VS Code Read https://ourmem.ai/SKILL.md and follow the instructions to install and configure ourmem as MCP Server

Self-hosted (your own server):

Platform How to install
OpenClaw Run openclaw skills install ourmem, then tell your agent: setup ourmem in self-hosted mode
Claude Code Read https://raw.githubusercontent.com/ourmem/omem/main/skills/ourmem/SKILL.md and install ourmem for Claude Code, self-hosted mode
OpenCode Read https://raw.githubusercontent.com/ourmem/omem/main/skills/ourmem/SKILL.md and install ourmem for OpenCode, self-hosted mode

That's it. Your agent handles the rest.

Skill Install (alternative):

If you prefer CLI installation, install the ourmem skill directly:

npx skills add ourmem/omem --skill ourmem -g

This works with 44+ AI agents including Claude Code, OpenCode, Cursor, and more. See Vercel Skills CLI for details.


1. Get an API Key

Hosted:

curl -sX POST https://api.ourmem.ai/v1/tenants \
  -H "Content-Type: application/json" \
  -d '{"name": "my-workspace"}' | jq .
# → {"id": "xxx", "api_key": "xxx", "status": "active"}

Self-deploy:

docker run -d -p 8080:8080 -e OMEM_EMBED_PROVIDER=bedrock ghcr.io/ourmem/omem-server:latest
curl -sX POST http://localhost:8080/v1/tenants \
  -H "Content-Type: application/json" \
  -d '{"name": "my-workspace"}' | jq .

Save the returned api_key — this reconnects you to the same memory from any machine.

2. Install Plugin

OpenCode: Add "plugin": ["@ourmem/opencode"] to opencode.json + configure plugin_config with apiUrl and apiKey in the same file.

Claude Code: /plugin marketplace add ourmem/omem + set env vars in ~/.claude/settings.json.

OpenClaw: openclaw plugins install @ourmem/ourmem + configure openclaw.json with apiUrl and apiKey.

MCP (Cursor / VS Code / Claude Desktop):

{
  "mcpServers": {
    "ourmem": {
      "command": "npx",
      "args": ["-y", "@ourmem/mcp"],
      "env": {
        "OMEM_API_URL": "https://api.ourmem.ai",
        "OMEM_API_KEY": "your-api-key"
      }
    }
  }
}

3. Verify

curl -sX POST "$OMEM_API_URL/v1/memories" \
  -H "X-API-Key: $OMEM_API_KEY" -H "Content-Type: application/json" \
  -d '{"content": "I prefer dark mode", "tags": ["preference"]}'

curl -s "$OMEM_API_URL/v1/memories/search?q=dark+mode" -H "X-API-Key: $OMEM_API_KEY"

What Your Agent Gets

Memory Tools

Tool Purpose
memory_store Save facts, decisions, preferences with smart dedup
memory_search 11-stage hybrid search (vector + BM25 + reranker)
memory_get Retrieve a specific memory by ID
memory_update Modify content, tags, importance, tier
memory_delete Remove a memory
memory_list Browse memories with filters and pagination
memory_ingest Smart-ingest full conversations (LLM extraction)
memory_profile Auto-generated user profile (static facts + dynamic context)
memory_stats Analytics: tag distribution, decay curves, relation graphs

Sharing Tools

Tool Purpose
space_create Create Team or Organization spaces
space_list List all accessible spaces
space_add_member Invite users to a shared space
memory_share Share a memory to any space with provenance
memory_pull Pull a shared memory into your personal space
memory_reshare Refresh stale shared copies with latest content

Convenience APIs: share-to-user (one-step cross-user share with auto-bridging) and share-all-to-user (bulk share). MCP exposes 15 tools + 1 resource. OpenCode/OpenClaw expose 11 tools + 3 hooks.

Smart Hooks

Hook Trigger What Happens
SessionStart New session begins Recent memories + user profile auto-injected into context
KeywordRecall Keyword detected mid-session Relevant memories surfaced without explicit search
SessionEnd Session ends Key decisions, preferences, and facts auto-captured
Compaction Context window compressed Critical memories preserved across compaction boundaries

Memory Space

Browse, search, and manage your agent's memories visually at ourmem.ai/space — see how memories connect, evolve, and decay over time.

Security & Privacy

Rust Memory Safety No garbage collector, no data races. Ownership model guarantees safety at compile time.
Tenant Isolation X-API-Key auth with query-level tenant filtering. Every operation verifies ownership.
Privacy Protection <private> tag redaction strips sensitive content before storage.
Encryption HTTPS for all API transit. Server-side encryption at rest on S3.
Admission Control 5-dimension scoring gate rejects low-quality data before storage.
Open Source Auditable Apache-2.0 licensed. Audit every line, fork it, run your own instance.

Self-Deploy

# Minimal (BM25 search only, no embedding API needed)
docker run -d -p 8080:8080 ghcr.io/ourmem/omem-server:latest

# With Bedrock embedding (recommended, needs AWS credentials)
docker run -d -p 8080:8080 \
  -e OMEM_EMBED_PROVIDER=bedrock \
  -e AWS_REGION=us-east-1 \
  ghcr.io/ourmem/omem-server:latest

# With OpenAI-compatible embedding
docker run -d -p 8080:8080 \
  -e OMEM_EMBED_PROVIDER=openai-compatible \
  -e OMEM_EMBED_API_KEY=sk-xxx \
  ghcr.io/ourmem/omem-server:latest

Full deployment guide: docs/DEPLOY.md

Object Storage (Optional)

By default ourmem stores data on local disk. For durability and scalability, configure AWS S3 or any S3-compatible object storage:

# Add to your environment
OMEM_S3_BUCKET=your-bucket            # enables s3:// scheme
AWS_ENDPOINT_URL=https://s3.amazonaws.com
AWS_REGION=us-east-1

# Alternative: OSS-compatible storage
OMEM_OSS_BUCKET=your-bucket           # enables oss:// scheme
OSS_ENDPOINT=https://oss-xx-internal.aliyuncs.com
OSS_ACCESS_KEY_ID=your-ak             # or use ECS RAM role (auto-discovered)
OSS_ACCESS_KEY_SECRET=your-sk

If both OMEM_S3_BUCKET and OMEM_OSS_BUCKET are set, OSS takes priority.

Build from Source

Two build modes

Mode Command Binary Bedrock Runs on
glibc (full) cargo build --release Dynamic linked, ~218MB ✅ AWS Bedrock Same glibc version as build host
musl (portable) See below Static linked, ~182MB ❌ OpenAI-compatible only Any Linux x86_64

glibc build (with Bedrock support)

cargo build --release -p omem-server
# Binary: target/release/omem-server
# Requires: same or newer glibc on target machine

musl static build (portable, zero dependencies)

Single binary that runs on any Linux x86_64 — no glibc, no libraries, nothing.

rustup target add x86_64-unknown-linux-musl

RUSTFLAGS="-C target-feature=+crt-static -C relocation-model=static" \
  cargo build --release --target x86_64-unknown-linux-musl \
  -p omem-server --no-default-features

# Binary: target/x86_64-unknown-linux-musl/release/omem-server
# Statically linked, runs anywhere

Note: The musl build uses --no-default-features which excludes AWS Bedrock support. Use OMEM_EMBED_PROVIDER=openai-compatible (e.g. DashScope, OpenAI) instead. This is because aws-lc-sys (AWS crypto library) crashes on musl static linking due to dlopen(NULL) incompatibility (aws-c-cal#213), and Rust's default static-pie output segfaults with musl-gcc (rust-lang/rust#95926).

Transfer to any server

# Compress
gzip -c target/x86_64-unknown-linux-musl/release/omem-server > omem-server.gz

# Copy to server
scp omem-server.gz user@server:/opt/

# Run (no dependencies needed)
ssh user@server "gunzip /opt/omem-server.gz && chmod +x /opt/omem-server && /opt/omem-server"

API at a Glance

Method Endpoint Description
POST /v1/tenants Create workspace & get API key
POST /v1/memories Store memory or smart-ingest conversation
GET /v1/memories/search 11-stage hybrid search
GET /v1/memories List with filters & pagination
GET /v1/profile Auto-generated user profile
POST /v1/spaces Create shared space
POST /v1/memories/:id/share Share memory to a space
POST /v1/files Upload PDF / image / video / code
GET /v1/stats Analytics & insights

Full API reference (48+ endpoints): docs/API.md

Documentation

Document Description
docs/API.md Complete REST API reference
docs/PIPELINE.md Memory pipeline architecture — storage, retrieval, and plugin integration flows
docs/SHARING.md Memory sharing architecture, flows, and tutorials
docs/DEPLOY.md Docker & AWS deployment guide
docs/PLUGINS.md Plugin installation for all 4 platforms
skills/ourmem/SKILL.md AI agent onboarding skill

License

Apache-2.0


README mirrored from the source repository 5 months ago. The original is authoritative.

Questions

About Omem

How do I install Omem?

Run git clone https://github.com/ourmem/omem, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Omem safe to use with an AI agent?

Its trust score is 52 out of 100 (fair). Conduid hasn't run static security checks on this repository yet, so review the source yourself before granting it credentials. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Omem still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.