Overview
One private memory. Every agent.
FishMem is a privacy-first memory layer for AI agents. It turns conversations into compact durable records by default, stores already-distilled input verbatim when requested, keeps records isolated by scope, and recalls the relevant parts in later sessions.
FishMem has three product surfaces:
- FishMem Desktop — local memory for Codex and Claude Code.
- FishMem Open Source — a self-hosted memory service, REST API, dashboard, and TypeScript engine.
- FishMem Cloud — the managed commercial service, with API keys, observability, operations, and webhooks.
Start here
Desktop agents
Connect Codex or Claude Code to private local memory.
TypeScript and Python SDKs
Use the HTTP API or the local Desktop CLI through first-party clients.
Self-host FishMem
Run the service and dashboard on your own infrastructure.
REST API
Use every memory endpoint directly over HTTP.
Browse by task
Run inferred work durably
Event receipts, retries, terminal state, and accounting.
Build source-preserving RAG
Immutable files, extraction, chunks, citations, and deletion.
Design tenant scope
Projects, users, agents, runs, entities, and filters.
Prepare for production
Identity, memory, documents, recovery, security, and operations gates.
Evaluate memory
Production-shaped traces and layered acceptance criteria.
Migrate safely
Inventory, map, replay, observe, and preserve rollback.
The memory contract
infer: true is the application default: one LLM call extracts refined
canonical records, and only those records are stored. infer: false stores
submitted content records verbatim and makes zero LLM calls. FishMem never
writes both forms for one add and never silently falls back when extraction
fails.
Long text and files follow a separate document path: retain the source and index chunks for RAG instead of pretending every passage is a durable personal fact. Derived state and profile views remain rebuildable projections with provenance back to canonical records.
Recall can combine keyword, vector, temporal, and graph signals when configured. The exact storage and retrieval capabilities depend on the deployment profile; basic storage does not require a hosted embedding provider.
Evaluation snapshot
The frozen 2026-08-24 comparison uses paired items and the same disclosed
write, answer, embedding, and judge configuration for FishMem and mem0 OSS
3.1.2.
| Benchmark | Paired items | FishMem | mem0 | Paired delta (95% CI) |
|---|---|---|---|---|
LongMemEval oracle | 500 | 88.2% | 83.8% | +4.4 pt (+1.0 to +7.8) |
BEAM 100k | 400 | 46.7% | 41.0% | +5.7 pt (+1.8 to +9.5) |
| LoCoMo, categories 1–5 | 1,986 | 67.5% | 71.1% | -3.7 pt (-5.8 to -1.5) |
This is two statistically positive results and one statistically significant
loss—not a universal-superiority claim. The LongMemEval result is the
oracle variant, not LongMemEval-S. Cost and end-to-end wall-clock claims are
withheld because recovered process attempts make the reused baselines unsuitable
for those comparisons. Read the
full evidence report
for configuration manifests, category results, artifact hashes, and all claim
boundaries.