Open Source
The fishmem engine and the self-hostable control-plane that powers FishMem Cloud.
FishMem is open-core. The part that does the work — extracting facts, reconciling them, and recalling them — is fully open source. There is no secret fork: the hosted cloud runs the same engine code you can read and embed yourself.
There are two open-source pieces, and you can use either or both.
1. The fishmem engine
fishmem (Apache-2.0) is a library
you embed in your own app. You construct a Memory instance, point it at an LLM
provider, an embedding provider, a graph store, and a vector index, and call
add / search / get / update / delete / history directly — no network
hop, no API key.
import { Memory } from 'fishmem'
const memory = new Memory({
llm: { provider: 'openai', model: 'gpt-4o-mini' },
embedder: { provider: 'openai', model: 'text-embedding-3-small' },
})
await memory.add(
[{ role: 'user', content: 'I prefer dark mode and write TypeScript.' }],
{ userId: 'alex' },
)This is the right starting point if you want memory inside a single service and are happy to manage your own stores and provider keys. Start with the quickstart.
2. The self-hostable control-plane
The engine is a library. The control-plane is the full application that wraps
it: a web dashboard, API key management, the mem0-compatible REST API, usage
views, workspace isolation, and webhooks. It ships as the apps/web app in this
same open-source fishmem-labs/fishmem
repo, and is the same app that powers FishMem Cloud.
It runs on your own Cloudflare account — Workers for SSR and the API, D1 for the graph store, Vectorize for the vector index, and R2 for object storage. Run this when you want a team-facing platform (keys, dashboard, REST surface) rather than an embedded library. See Run the dashboard.
Open-core, honestly
The engine and the control-plane are both open source. The managed FishMem Cloud does not run different memory code — it runs the same engine and the same control-plane app. What you pay for on the managed cloud is operations: billing, usage metering and credits, scaling, updates, and an SLA. The memory behavior is identical whether you self-host or use the cloud.
For a side-by-side on which to choose, see Platform vs. open source.
Where to go next
Quickstart
Install the engine and run add + search in your own code.
Configuration
The config object: LLM, embedder, graph store, vector index.
Architecture
How the engine works inside — write path, read path, bi-temporal model.
How memory works
Extract, reconcile, store — the three steps of every add.
Self-host the engine
Run the fishmem library against your own stores and providers.
Run the dashboard
Run the full control-plane on your own Cloudflare account.