Skip to main content
MemSDK extracts Supermemory’s public API surface into a backend-agnostic TypeScript contract. Application code can target one memory interface, then swap adapters without rewriting its memory layer.
“Oh wow that is awesome” — Dhravya Shah, founder of Supermemory

The problem

Every AI memory backend ships a different SDK. Moving from Supermemory to Letta to another backend usually means rewriting document add, search, forget, and list workflows even when the product behavior is conceptually the same.

The approach

MemSDK freezes a proven interface instead of inventing a new one. It provides:
  • SupermemoryInterface as a type-level contract.
  • Zod schemas for runtime request validation.
  • Adapters that prove the contract can map to real backends.

Repositories

RepositoryPurpose
memsdkCore interface and schemas
memsdk-lettaLetta-backed implementation
memsdk-worldsWorlds-backed implementation
memsdk-e2ePrivate conformance scenarios across backends

Example

import type { SupermemoryInterface } from "memsdk";

function buildApp(client: SupermemoryInterface) {
  return client.search.documents({ q: "project notes" });
}

Status

MemSDK is useful when you want memory portability more than hosted-memory lock-in. The public surface focuses on memory-domain methods first: add, profile, documents, search, and memories.