Local-first Context OS for AI agents. One SQLite file. No Docker. No cloud. Sub-ms vector search.
Synapse Memory gives coding agents the best relevant context before they act — bounded, cited, freshness-aware, and signed. It runs entirely on your machine, ships as a single binary, and scales from a 5-line demo to a 294k-doc production brain.
Core promise: best context, not biggest context.
| Synapse Memory | Mem0 | Letta (MemGPT) | Zep | Chroma | Qdrant | |
|---|---|---|---|---|---|---|
| Local-first, no Docker | ✅ one binary | ❌ Python+Docker | ❌ Python+Docker | ❌ server | ❌ server | |
| SQLite-backed | ✅ one file | ❌ Postgres/Neo4j | ❌ Postgres/SQLite | ❌ Postgres | ✅ | ❌ custom |
| Hybrid search (FTS5 + ANN + RRF + rerank) | ✅ sub-ms | ❌ | ||||
Decision-chain graph (why()) |
✅ recursive CTE | ❌ | ❌ | ❌ | ❌ | |
| Ed25519 doc signing | ✅ 25µs s+v | ❌ | ❌ | ❌ | ❌ | ❌ |
| CRDT merge (offline sync) | ✅ | ❌ | ❌ | ❌ | ❌ | |
| MCP server (Claude/Cursor native) | ✅ 6+ tools | ❌ | ❌ | ❌ | ||
| Tag system + auto-rules | ✅ | ❌ | ❌ | ❌ | ||
| Prometheus + JSON metrics | ✅ | ❌ | ❌ | ❌ | ||
| zstd backup (64% compression) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| LoCoMo + LongMemEval bench | ✅ | ❌ | ❌ | ❌ | ❌ | |
| 6-native CI (linux/macos/windows × x64/arm64) | ✅ | ❌ | ❌ | ❌ | ||
| License | MIT | Apache-2.0 | Apache-2.0 | Apache-2.0 | Apache-2.0 | Apache-2.0 |
Download the latest release for your platform from GitHub Releases:
# Linux/macOS
tar -xzf synapse-<target>.tar.gz
cd synapse-<target>
sudo cp bin/synx bin/synapse-ultra /usr/local/bin/
# Windows
Expand-Archive synapse-x86_64-pc-windows-msvc.zip
# Copy bin\synx.exe and bin\synapse-ultra.exe to a PATH directorycargo install --locked --path crates/synapse-cli
cargo install --locked --path crates/synapse-ultragit clone https://github.com/Supersynergy/synapse-agent-memory.git
cd synapse-agent-memory
cargo build --release -p synapse-cli -p synapse-ultra
# Binaries at target/release/synx and target/release/synapse-ultrasynx --version
synapse-ultra --version
synx doctor -f ~/.synapse/brain.dbsynx -f ~/.synapse/brain.db prime .
synx -f ~/.synapse/brain.db remember --kind decision "Use Synapse context packs before major code edits."
synx -f ~/.synapse/brain.db context "current repo task" --mode coding
synx -f ~/.synapse/brain.db fresh-context --cwd . --prompt "latest package API changes"
synx -f ~/.synapse/brain.db doctor --fixsynapse-ultra health --db ~/.synapse/brain.db
synapse-ultra health --db ~/.synapse/brain.db --json # for monitoringChecks: integrity, WAL mode, synchronous, foreign keys, FTS5 index, indexes, triggers, schema version, DB size, page cache, ultra schema.
synapse-ultra backup --db ~/.synapse/brain.db
# → ~/.synapse/backups/brain-<ts>.db.zst (64% compression, sha256 manifest)synapse-ultra metrics --db ~/.synapse/brain.db --format prometheus
synapse-ultra metrics --db ~/.synapse/brain.db --format jsonExposes: synapse_events_total, synapse_decisions_total, synapse_docs_total,
synapse_db_size_bytes, synapse_tags_total, synapse_tag_associations_total, and more.
synapse-ultra tags add rust --color "#dea584" --description "Rust language"
synapse-ultra tags tag 42 rust --source manual
synapse-ultra tags bulk --ids 1,2,3,4,5 rust --source auto
synapse-ultra tags rule refactor refactoring # keyword → tag auto-applied on ingest
synapse-ultra tags merge rust-lang into rust # repoint + delete
synapse-ultra tags cleanup # remove orphan tags
synapse-ultra tags stats
synapse-ultra tags export > tags.json
synapse-ultra tags import tags.jsongraph TD
CLI["synx CLI"] --> Daemon["synapsed (Unix-socket)"]
MCP["synapse-mcp (agent memory tools)"] --> Daemon
Daemon --> Core["synapse-core (SQLite + FTS5 + sqlite-vec)"]
CLI --> Context["context / prime / fresh-context / feedback"]
Context --> Core
Context --> Learn["synapse-learn feedback loop"]
Daemon --> Ann["synapse-ann (usearch HNSW)"]
Daemon --> Fts["synapse-fts (Tantivy)"]
Daemon --> Rerank["synapse-rerank (ColBERT-i8)"]
Core --> DB[(brain.db)]
Ann --> DB
Fts --> DB
Ultra["synapse-ultra (events + graph + tags + ops)"] --> DB
| Crate | Role |
|---|---|
synapse-core |
Store, FTS5, sqlite-vec index, KG triples, zstd/blake3 |
synapse-engine |
ABI bridge + RRF fusion |
synapsed |
Unix-socket RPC daemon |
synapse-cli |
CLI: put / find / hybrid / merge / sign / verify / stats |
synapse-mcp |
MCP server (6+ tools, Claude/Cursor native) |
synapse-ultra |
Event log + graph-v2 + tags + ops (health/backup/metrics) |
synapse-space |
Agent-memory hierarchy: Space → Wing → Room → Drawer |
synapse-learn |
Thompson-sampling bandit router |
synapse-rerank |
Cross-encoder rerank (identity default; ONNX optional) |
synapse-extract |
Text extraction + chunking |
synapse-temporal |
NL date parser, bitemporal filter |
synapse-kernel |
NEON int8/f16/hamming kernel crate |
synapse-quant |
f32→i8/f16/binary, Matryoshka MRL |
synapse-ann |
HNSW via usearch + brute-force SIMD scan |
synapse-fts |
Tantivy persistent index (BMP block-max pruning) |
synapse-fusion |
MUVERA RRF API |
synapse-colbert |
MaxSim late-interaction scaffold |
synapse-splade |
Neural-sparse inverted index (SPLADE-v3) |
synapse-cluster |
CRDT gossip + Raft CP-mode |
synapse-graph |
Knowledge-graph triples + Datalog ( |
synapse-media |
Video keyframe + audio + image embedding index |
synapse-multimodal |
Multimodal asset pipeline |
synapse-py |
PyO3 wheel (Brain, LangChain/LlamaIndex adapters) |
synapse-js |
JS/TS SDK via napi-rs |
synapse-cms |
WordPress/CMS Thompson-Beta TTL bandit |
synapse-market |
HFT/backtest: OHLCV + regime-vec |
synapse-migrate |
Import from Qdrant/LanceDB/Chroma |
synapse-obs |
OTel + Prometheus dashboards |
synapse-stream |
Pub/sub + CDC (pub/sub: 76 ns/msg; CDC: 2,241/s SQLite-bottleneck) |
synapse-tsdb |
Time-series: 4.26M inserts/s (fallback store; Arrow-path unbenched) |
synapse-mlx-olap |
GROUP BY analytics CPU: ~25M rows/s (Metal path not verified) |
synapse-jit |
Cranelift JIT filter: 2× vs SQLite (no speedup vs interpreter) |
synapsql |
MySQL-wire proxy (MariaDB bench: 700×/32×/1.85×) |
synapse-raft |
WAL-Raft segments, 3-node election <1s |
synapse-spann |
Disk-tier SPANN scaffold |
Stubs — excluded from default workspace build.
| Crate | Status |
|---|---|
synapse-mysql |
MySQL wire-protocol proxy (0 tests) |
synapse-pg |
Postgres wire-protocol proxy (0 tests) |
synapse-edge |
Pingora HTTP frontend (RUSTSEC blocked) |
synapse-rank |
LambdaMART scaffold (skeleton only) |
synapse-embed-gpu |
GPU embedding bridge (standalone workspace) |
Full bench files in bench-dashboard/.
Source: SIFT1M_BENCH_2026-05-12.md
| Mode | p50 ms | QPS | R@10 | Notes |
|---|---|---|---|---|
| hnsw-i8 (ef=64) | 0.10 | 10 474 | 0.908 | lowest latency, recall loss |
| hnsw-f16 (ef=64) | 0.18 | 5 723 | 0.979 | balanced |
| hnsw-f16 (ef=192) | 0.32 | 3 240 | 0.993 | recommended production |
| hnsw-f32 (ef=64) | 0.34 | 3 013 | 0.982 | highest recall potential |
| brute-force i8 | 5.43 | 182 | 0.969 | exact, no index |
| brute-force f32 | 18.53 | 54 | 1.000 | exact, no index |
Source: REAL_BENCH_2026-05-11.md
| Metric | Value |
|---|---|
| hybrid search p50 | 35 ms (FTS5 + ANN + RRF + rerank, single Unix-socket call) |
| put-batch | 334 k/s (FTS5 + vec + CRDT, persisted) |
| Qdrant gRPC vs synapse put-batch | Synapse 56× faster (local, not iso-recall) |
Automated harness in eval/. Run:
python3 eval/harness.py download
python3 eval/harness.py ingest --db /tmp/eval-brain.db
python3 eval/harness.py run --db /tmp/eval-brain.db --k 5
python3 eval/harness.py reportMetrics: Recall@k, MRR, latency p50/p95, per-category breakdown.
Source: FAIR_DURABILITY_BENCH_2026-05-13.md
| Durability | Batch-1 | Batch-1000 |
|---|---|---|
| strict (fsync) | 7 K/s | 943 K/s |
| batched | 45 K/s | 926 K/s |
| fast (no fsync) | 110 K/s | 1.1 M/s |
| in-memory | 384 K/s | 1.3 M/s |
| Feature | Status | Notes |
|---|---|---|
| BM25 full-text (FTS5) | ✅ stable | 23µs/q on 10k docs |
| sqlite-vec ANN | ✅ stable | |
| Tantivy BM25 | ✅ stable | 18.3× warm-start |
| usearch HNSW | ✅ stable | 0.10ms p50 at ef=64 (SIFT-1M) |
| RRF hybrid fusion | ✅ stable | NEON SIMD 5–8× vs scalar |
| ColBERT-i8 rerank | ✅ stable | 12.2× speed, 3.9× storage vs f32 |
| SPLADE neural-sparse (BMP) | ✅ stable | 9.7× vs naive scan |
| MUVERA full pipeline | ✅ stable | Dense+SPLADE+RRF+ColBERT, sub-ms |
| Conformal R=1.0 guarantee | ✅ stable | split-conformal, LongMemEval validated |
| CRDT gossip cluster | ✅ stable | <200ms LAN convergence |
| Raft CP-mode | ✅ minimal | cluster-raft feature, 3-node <1s election |
| Ed25519 signing | ✅ stable | 25µs sign + verify |
| MCP server (6+ tools) | ✅ stable | Claude + Cursor native |
| Tag system + auto-rules | ✅ stable v2.1.0 | bulk-tag, merge, cleanup, export/import |
| Health check (11-point) | ✅ stable v2.1.0 | integrity, WAL, FTS, indexes, triggers |
| zstd backup | ✅ stable v2.1.0 | 64% compression, sha256 manifest |
| Prometheus + JSON metrics | ✅ stable v2.1.0 | synapse_* exposition format |
Event log + why() operator |
✅ stable v2.0.0 | recursive CTE, BLAKE3 dedup |
| Graph-v2 (SQLite CTE) | ✅ stable v2.0.0 | replaces broken Datalog |
| Token cost log | ✅ stable v2.0.0 | per-call usage analytics |
| LoCoMo + LongMemEval bench | ✅ stable v2.1.0 | automated harness in eval/ |
| 6-native CI matrix | ✅ stable v2.1.0 | linux/macos/windows × x64/arm64 |
| Pub/sub stream | ✅ stable | 76 ns/msg |
| TSDB insert | ✅ partial | fallback store 4.26M/s; Arrow-path unbenched |
| JIT filter (Cranelift) | ✅ partial | 2× vs SQLite, no gain vs interpreter |
| Metal/MLX OLAP | CPU-only confirmed; Metal dispatch not observed | |
| Datalog (synapse-graph) | ❌ broken | semi-naive quadratic, 7s for 100 facts |
| Python wheel (PyO3) | 🔜 planned | synapse-py maturin publish |
| CLIP cross-modal | ✅ scaffold | multimodal feature, ONNX swap-path |
| Audio CLAP | ✅ scaffold | audio-clap feature |
| VJEPA-2 video | ✅ scaffold | ONNX swap-path |
- Datalog semi-naive: delta-join + HashMap index (currently broken above 100 facts)
- HNSW parallel batch insert (target <10s for 1M vs current 197–672s)
- glass-backend CPU-SIMD beam search (expected ≥2× QPS vs usearch)
- io_uring durability bench on bare-metal Linux
- Metal dispatch verification for
synapse-mlx-olap - MTEB full 56-task suite (2/56 measured today)
- Python wheel publish to PyPI (
synapse-pyvia maturin) -
synapse-raftproduction hardening
MIT — library crates.
synapse-engine — source-available Engine License (non-commercial free; commercial license available).
See LICENSE-CORE.md and LICENSE-ENGINE.md.
See CONTRIBUTING.md. Known issues: KNOWN-ISSUES.md.