FishMem

Open Source

The FishMem TypeScript engine and self-hostable memory service.

FishMem provides two open-source building blocks.

TypeScript engine

The fishmem package runs in your process and exposes the memory engine directly. You choose the graph store, vector/keyword index, embedder, and LLM.

import { Memory } from "fishmem";

const memory = await Memory.create({
  graphStore: { provider: "memory" },
  vectorStore: { provider: "memory" },
  embedder: { provider: "mock" },
  llm: { provider: "mock" },
});

await memory.add("The user says this project uses pnpm.", {
  userId: "alex",
  infer: true,
});

The default inferred add makes one LLM extraction call and stores only refined canonical records. Use infer: false for already-distilled, verbatim content. State and profile remain rebuildable projections rather than parallel canonical stores.

Self-hosted service

apps/web packages the memory service, REST API, dashboard, authentication, operations, and observability. Applications call it through @fishmem/sdk or direct HTTP.

Use the service when multiple applications or users need one memory platform. Use the embedded engine when memory belongs inside a single process.

Managed cloud

FishMem Cloud is the commercial managed deployment. It adds operated infrastructure and service guarantees; it is not a different memory model.

On this page