Skip to main content
A “provider” in MemoryBench is any memory or RAG system that can ingest sessions and answer a search query — Supermemory, Mem0, and Zep ship as built-in providers, and your own memory implementation is just another provider. Once it’s registered, it runs through the exact same pipeline and gets scored on the exact same footing as everything else. There are two ways to do this: let the skill generate the provider for you, or write it by hand.

The fast path: the MemoryBench skill

MemoryBench ships a Claude Code skill (benchmark-context) that automates the whole flow — from reading your code to a finished comparison report — without you writing any MemoryBench-specific code yourself.
It walks through 7 phases: Before it does anything, it asks 5 quick questions: your provider’s name, where your memory code lives, which benchmark to run, which providers to compare against (Supermemory, Mem0, Zep, or the no-API-key filesystem/rag baselines), and how many questions to sample (5 for a quick check, 20 for a real signal, or the full set).
Run it from your project’s root, not from inside memorybench — the skill clones the framework as a subdirectory and analyzes your code via relative paths.

Doing it by hand

If you’d rather write the adapter yourself, every provider implements the same interface (src/types/provider.ts):
Steps:
  1. Create src/providers/myprovider/index.ts implementing Provider
  2. Register it in src/providers/index.ts
  3. Add the name to ProviderName in src/types/provider.ts
  4. Add its config (API key, base URL, etc.) in src/utils/config.ts
  5. Optionally override prompts (ProviderPrompts) if your search results need custom formatting before they’re handed to the answering LLM or the judge
Full interface, including async-indexing and custom-prompt examples: src/providers/README.md in the repo.

Next

Building a Benchmark

Run your provider against a dataset built for your own use case.

Measuring Results

What the report actually tells you.