OmniMem

by Unknown

Not rated
Website

About

A self-hosted MCP server that gives AI Agents persistent memory across sessions, projects, and machines.

Details

Author
Unknown
Categories
Other, AI

Give your AI agent persistent, self-hosted memory across sessions, projects, and machines — ask it to "check the graveyard before suggesting a library that already failed."

- Session briefing— Ask for abriefing()to get project context, experience stats, stale memories, new articles, and skill suggestions in one call.
- Avoid past dead ends— Have the agent check the graveyard before suggesting a library or pattern that previously failed.
- Recall past decisions— Userecallto surface decisions, fixes, and patterns from earlier sessions across projects.
- Record hard-won experience— Log a fix withrecord_experienceso lessons that took real effort surface more readily next time.
- Deduplicate memories— Runfind_duplicates()to flag and bulk-clean near-identical stored memories.
- Backup your memory— Export everything to a JSON file you own withdump_to_file().

Self-hosted semantic memory for AI Agents. Persistent sessions, experience scoring, and a graveyard for dead ends, backed by knowledge acquired from the RSS you read and stored in a Valkey vector search then exposed as an MCP server.https://omnimem.org

Security Scans / Bandit SAST (push) Successful in 7s

Security Scans / Dependency Audit (mcp_server) (push) Successful in 40s

Security Scans / Dependency Audit (rss_worker) (push) Successful in 30s

Security Scans / Dependency Audit (web_ui) (push) Successful in 27s

Security Scans / Test Coverage (push) Successful in 1m23s

Security Scans / Secret Scan (push) Successful in 4s

Docker Build & Push / Build mcp_server (push) Successful in 17m57s

Docker Build & Push / Build web_ui (push) Successful in 15m23s

Docker Build & Push / Build rss_worker (push) Successful in 2m5s

Development happens onCodeberg— issues and PRs there please.

Every Claude Code session starts from zero. No memory of your project. No memory of what failed last week. No memory that you spent three hours last Tuesday discovering whyonnxruntimeexplodes on Alpine before finding something that actually works.

So you explain the project again. Claude suggests the same broken library again. Same alarm. Same song. You are Bill Murray and Claude is Punxsutawney.

OmniMem fixes that. It is a self-hosted MCP server that gives your AI agent persistent memory across sessions, projects, and machines. It runs on your own hardware and it is free forever.

claude> use onnxruntime for the embeddings ⚠ WARNING: previously abandoned approach onnxruntime — SIGILL crash on Alpine musl libc (effort: 4/5) → switched to sentence-transformers instead

That warning came from memory, not luck. The mistake you already paid for does not get to charge you twice.

One command gets the full stack running from the pre-built Docker Hub images:

curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash

Then point your agent at it — thequick startwalks through the rest, or jump to the fullerquick start sectionbelow.

Five kinds of memory, all searched together at recall time:

- Episodic— the decisions you made, the bugs you fixed, the patterns you discovered. The things that took real effort to learn and should not have to be re-learned every morning.
- Project context— your stack, goals, and current state. The agent arrives at every session already briefed rather than starting cold.
- Knowledge— RSS feeds you configure, fetched on a schedule, summarised by Claude Haiku, embedded, and stored. When a relevant article landed last week, it surfaces as a starting point worth reading.
- Preferences— prescriptive rules about how you want to work ("always update the README after a feature lands"), extracted from your conversations automatically and surfaced whenever they apply.
- Skills— SKILL.md documents compiled from your accumulated experience in a domain, so the agent works your way from the first prompt. Derived from the other namespaces, never hand-edited, and every change goes through your review. See
the skill compiler.

The top recall result might be a decision from six months ago on a different project, a solution from yesterday, or an article that landed on Tuesday night. It does not matter where it came from as long as it is useful.

Not just a key-value store with an MCP wrapper. OmniMem models how memory actually works: things fade over time, they sometimes contradict each other, and the hard-won stuff earns its place.

- The Graveyard— every dead end gets logged with what you tried, why it failed, and how much time you burned. The agent checks it before suggesting a library or pattern.
-
Experience scoring— something that took four attempts and a weird platform workaround to crack is gold. The harder it was, the more readily it surfaces next time.
-
Memory lifecycleACTIVE → DEPRIORITISED → ARCHIVED → DELETED. "Forget about X" usually means stop bringing it up, not wipe it from existence. Deprioritised memories can earn their way back.
-
Contradiction detection— if a new memory disagrees with something stored, OmniMem catches it. Fast heuristic on every write, optional deeper analysis via Claude Haiku.
-
Semantic deduplication— near-identical memories get flagged at write time and cleaned up in bulk withfind_duplicates().
-
One-call briefing— a singlebriefing()returns project context, experience stats, stale memories, new articles, contradiction warnings, and skill suggestions. No three-step warm-up.
-
The skill compiler— distils reinforced lessons and dead ends into loadable skills, behind a propose-and-accept gate so bad lessons cannot become policy silently.
-
Auto-maintenance— duplicates archived, contradictions flagged, expired knowledge cleaned up, all in the background.
-
Web UI— browse, search, and manage everything from an htmx dashboard, with telemetry and a Prometheus/metricsendpoint.

The ranking formula behind every recall:

score = similarity x surface_score x recency x experience_weight

Four factors decide what comes back. Semantic similarity alone is not enough — lifecycle state, age, and how hard the lesson was to learn all play a role.

One memory layer for all of them:claude.ai,Claude Code,Claude Desktop,Cursor,GitHub Copilot,GitLab Duo,AWS Kiro,OpenCode,OpenAI Codex CLI, andOpen Design.

Four containers. Nothing leaves your machine. Local embeddings via sentence-transformers, storage in Valkey with vector search, and both front doors share the same memory engine.

flowchart TB agent["AI agent<br/>Claude Code · claude.ai · Cursor · Copilot · ..."] browser["Browser"] agent -- "MCP · Streamable HTTP / SSE · :8765" --> mcp browser -- "HTTP · :8080" --> webui subgraph stack["Docker Compose stack"] mcp["MCP server<br/>Python · FastMCP<br/><i>remember · recall · briefing<br/>compile_skill · record_experience</i>"] webui["Web UI<br/>Starlette · htmx · Jinja2<br/><i>dashboard · search · skills<br/>projects · backups · /metrics</i>"] rss["RSS worker<br/>feedparser · APScheduler<br/>Claude Haiku summaries"] valkey[("Valkey + valkey-search<br/>HNSW vector indexes<br/><i>idx:episodic · idx:project · idx:knowledge<br/>idx:preference · idx:skill</i>")] mcp <--> valkey webui <--> valkey rss --> valkey end

The full picture — the recall pipeline, storage model, and design decisions — is indocs/architecture.md.

No SaaS. No vendor lock-in. No context shipped to someone else's servers.

- Valkeyis an open source Redis fork. All your data stays in a named Docker volume on your own machine.
- Multi-arch Docker imagesfor amd64 and arm64. It runs on a Raspberry Pi, AWS Graviton, or Apple Silicon just as well as x86.
- sentence-transformersruns embeddings locally with no API calls.
- MIT licensedmeans fork it, extend it, run it wherever you want.
- One backup commandcallsdump_to_file()and exports everything to a JSON file you own.

Expose the MCP port through your reverse proxy and every machine you work from shares the same memory. One deployment, everywhere — seedocs/remote-access.md.

The installer checks Docker is installed, generates secure passwords, writes a sensible.env, and starts everything from the pre-built Docker Hub images:

curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash
git clone https://codeberg.org/ric_harvey/omnimem.git && cd omnimem cp .env.example .env # Set VALKEY_PASSWORD and ANTHROPIC_API_KEY in .env docker compose up -d

Then point your agent at it —Claude Code(~/.claude.json):

{ "mcpServers": { "omnimem": { "type": "sse", "url": "http://localhost:8765/sse" } } }

The server delivers its usage guide to any connecting agent automatically via the MCPinstructionsfield — no configuration file needed. The web dashboard is athttp://localhost:8080.

The full walkthrough, including auth tokens, permission settings, and the other agents, is indocs/quick-start.md.

Per-namespace storage specifications, if you want to know exactly what gets written to Valkey and by whom:overview·episodic·project·knowledge·preference·skill

Issues and PRs are welcome. Development happens onCodeberg— issues and PRs there please. OmniMem is designed to be extended and the scoring pipeline is structured so new multipliers can be added without touching the core. New MCP tools, additional namespace types, and alternative embedding backends are all reasonable directions.

MIT. Free to use, fork, and modify. No enterprise tier, no hosted version, no strings.

Built by Ric Harvey @SquareCows Ltd, an AI and automation consultancy for people who would rather own their tools.

AI trading memory layer for MT5/forex with 15 MCP tools — store/recall trades, pattern discovery, strategy evolution, and Outcome-Weighted Memory.

Hosted MCP server for persistent, shared AI agent memory

Two-layer memory for AI agents with an immune system — episodes compress into identity through citation-validated graduation. Zero dependencies, 5 MCP tools.

A lightweight MCP server for semantic memory storage, knowledge graphs, and cross-session context

A production-ready Model Context Protocol (MCP) server that provides a powerful, vector-native memory bank for AI agents. Built with the Protocol-Lattice Go Agent Framework, this server offers persistent, searchable, and shareable memory with multiple database backends.

Turn AI conversations into vocabulary learning: capture new words and grammar mistakes from chat into spaced-repetition flashcards, read your review queue and known words, and reinforce vocabulary with SM-2. Remote, OAuth 2.1, EU-hosted.

Mnemex is a Python MCP server that provides AI assistants with human-like memory dynamics through temporal decay and natural spaced repetition, storing memories locally in human-readable JSONL and Markdown formats.

Persistent cross-agent semantic memory for AI agents. Recall past sessions, share knowledge across agents. Multi-agent (isolated writes, shared reads), local-first (SQLite + FTS5), works with any LLM — local Ollama at $0 or cloud APIs like Gemini and OpenAI. Integrations for Claude Code, Claude Desktop, and OpenClaw.

The media memory layer for AI agents and their humans. Track books, movies, music, shows, and anime.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.