Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Summary

OpenClaw plugin exposing 0 skills.

Install to Claude Code

openclaw plugin add ourmem/omem

Run in Claude Code. Add the marketplace first with /plugin marketplace add ourmem/omem if you haven't already.

README.md

<p align="center"> <strong>OMEM</strong><br/> Shared Memory That Never Forgets </p>

<p align="center"> <a href="https://github.com/ourmem/omem/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="License"></a> <a href="https://ourmem.ai"><img src="https://img.shields.io/badge/hosted-ourmem.ai-green.svg" alt="Hosted"></a> <a href="https://github.com/ourmem/omem"><img src="https://img.shields.io/github/stars/ourmem/omem?style=social" alt="Stars"></a> </p>

<p align="center"> <strong>English</strong> | <a href="README_CN.md">简体中文</a> </p>

---

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

<table> <tr> <td width="50%" valign="top">

🧑‍💻 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

</td> <td width="50%" valign="top">

🔧 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

</td> </tr> </table>

Core Capabilities

<table> <tr> <td width="25%" align="center"> <h4>🔗 Shared Across Boundaries</h4> Three-tier Spaces — Personal, Team, Organization — let knowledge flow across agents and teams with full provenance tracking. </td> <td width="25%" align="center"> <h4>🧠 Never Forget</h4> Weibull decay model manages the memory lifecycle — core memories persist, peripheral ones gracefully fade. No manual cleanup. </td> <td width="25%" align="center"> <h4>🔍 Deep Understanding</h4> 11-stage hybrid retrieval: vector search, BM25, RRF fusion, cross-encoder reranking, and MMR diversity for precise recall. </td> <td width="25%" align="center"> <h4>⚡ Smart Evolution</h4> 7-decision reconciliation — CREATE, MERGE, SUPERSEDE, SUPPORT, CONTEXTUALIZE, CONTRADICT, or SKIP — makes memories smarter over time. </td> </tr> </table>

📖 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.

---

<details> <summary><b>Manual Install</b> (without agent assistance)</summary>

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"

</details>

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 | | docs/TWEETCLAW_OPENCLAW.md | OpenClaw workflow for storing TweetClaw X/Twitter research decisions in ourmem | | skills/ourmem/SKILL.md | AI agent onboarding skill |

License

Apache-2.0

---

<p align="center"> <strong>Shared Memory That Never Forgets.</strong><br/> <a href="https://ourmem.ai">ourmem.ai</a> · <a href="https://github.com/ourmem/omem">GitHub</a> </p>

Related plugins

Browse all →