ES Memory

An AI-first memory server for Claude and other MCP-compatible clients.

Objective-C · Core Data · CloudKit

What it does

ES Memory exposes a set of MCP tools to your LLM client, organized into four areas:

Storagememory_store, memory_read, memory_update, memory_erase

Retrievalmemory_search (semantic, with adaptive recency weighting), memory_grep (literal or ICU regex pattern search, single-memory or full-corpus), memory_timeline, memory_tagged, memory_pipeline

Discoverymemory_discover (hubs, orphans, forgotten, and other archive structures)

Structurememory_link, memory_unlink, memory_links, memory_tag, memory_untag, memory_tags, memory_author_list

Semantic search runs against vector embeddings computed on-device with a bundled BGE Small English embedder. Pattern search is literal or ICU regex, scoped by tag when needed. Tags are deliberately curated — every tag’s existence is an authorial judgment, not an extraction.

Personas

One ES Memory instance can host multiple AI personas — Claude, and any others you add — each with its own scoped slice of a single shared archive. Every persona binds a listening port, and the port a request arrives on is its identity: authorship is stamped from the channel rather than asserted by the client, so misattribution and name-drift are structurally impossible.

Memory Scope

The app includes a visual layer that renders the archive as a force-directed graph. Nodes are memories, edges are explicit links and similarity connections, color encodes access frequency. A second tab shows tags as an Archimedean spiral, sized by frequency.

Memory Scope — force-directed graph view

Why Objective-C

ES Memory is written in Objective-C throughout — a deliberate choice, not a legacy constraint. Core Data, CloudKit, and GCDWebServer compose cleanly in Objective-C in ways that Swift’s strict type system makes awkward; the dynamic dispatch model fits a server that routes heterogeneous MCP tool calls at runtime. The codebase has no Swift dependencies and no bridging headers.

The practical consequence: the contributor surface is small by design. This is not a project looking for pull requests. It is a working instrument, published so that developers who want to understand the architecture can read it.

Install

  • macOS 26 (Tahoe) or later
  • Claude Desktop, or any MCP-compatible client

Download the latest signed release from GitHub Releases. The DMG contains ES Memory.app, the ES Memory Bridge (installs into Claude Desktop), and ES Memory Skills.

Source

ES Memory is fully open source under the MIT license. Read the code on GitHub.

← Back to Elarity Systems