Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

MemTether — cross-client AI memory in action

MemTether

* Engram (arXiv 2606.09900) achieves 83.6% on LongMemEval retrieval but has no governance layer, multi-agent coordination, or source attribution. MemTether combines retrieval quality (EAF +13.2pp paired) with governance.

Your AI agents forget everything. MemTether gives them one shared brain.

One physical SQLite database, shared by every AI client via file-level pointers. No cloud. No API fees. No sync daemon. Greppable, git-able, yours.

PyPI CI License

mcp-name: io.github.lanbass869-cell/memtether MCP Registry

Try in browser · Install · Docs · Reproduce · 中文文档


Documentation

Quick Start

pip install memtether
memtether init    # creates DB + connects all detected AI clients

That's it. MemTether detects Claude Code, Cursor, Windsurf, Codex, Gemini CLI and 18 more clients on your machine, writes MCP config, and verifies.

More install options
# One client at a time
memtether setup claude-code
memtether setup cursor
memtether setup gemini-cli    # run `memtether setup list` for all 23

# With semantic search (local embedding, no cloud)
pip install "memtether[vector]"

# With REST API server + web dashboard
pip install "memtether[server]"
memtether dashboard

# Docker
docker-compose up

Why MemTether

The one thing no other memory system does: corrections don't delete

# Monday: Claude Code writes
$ memtether remember "Deploy to port 8080" --source claude-code

# Wednesday: you correct it via Cursor
$ memtether correct fact-xxx "Deploy to port 9090" --reason "port changed"

# Friday: another agent searches
$ memtether search "deploy port" --list
  1. [fact] Deploy to port 9090 (active)          ← current truth
     Old "port 8080" is superseded, not deleted.
     Full chain: memtether timeline fact-xxx

Every memory has valid_from / valid_to (business time) + recorded_at / invalidated_at (system time). You can query "what did the system know on Tuesday?"

How it's different

MemTether engram mem0 agent-memory
Storage SQLite via file pointers SQLite (Go binary) Cloud API Markdown files
Supersession ✅ bi-temporal, never delete ❌ ⚠️ partial ✅
Source attribution ✅ every fact tagged ❌ ❌ ❌
Q-Value feedback ✅ used memories rank higher ❌ ❌ ❌
Poisoning defense ✅ OWASP LLM01/02/06 ❌ ⚠️ faithfulness check ❌
Cross-client ✅ file-level pointers (23 adapters) ✅ MCP ✅ API ✅ CLI
Cloud required ❌ optional ✅ ❌
Feature comparison vs cognee / zep / letta
Feature MemTether cognee zep letta Engram*
Local-first ✅ ❌ ❌ ⚠️ self-hosted ✅
Zero config ✅ ❌ (Neo4j) ❌ (Docker) ⚠️ ✅
Single file DB ✅ ❌ ❌ ❌ ✅
REST API ✅ (12 endpoints) ✅ ✅ ✅ ❌
MCP server ✅ ❌ ✅ ✅ ❌
Web dashboard ✅ ❌ ✅ ✅ ❌
Supersession chain ✅ ❌ ❌ ⚠️ ❌
Bi-temporal ✅ ❌ ❌ ❌ ✅
Source attribution ✅ ❌ ⚠️ ❌ ❌
Q-Value ranking ✅ ❌ ❌ ❌ ❌
Poisoning defense ✅ ❌ ❌ ❌ ❌
Export as markdown ✅ ❌ ❌ ❌ ✅
23 client adapters ✅ ❌ ❌ ❌ ❌
Governance layer ✅ ❌ ⚠️ ❌ ❌

Architecture

Claude Code ────┐                  ┌──── Cursor
                │   symlink /      │
Codex ──────────┤   junction       ├──── Windsurf
                │                  │
Gemini CLI ─────┤                  ├─── WorkBuddy
                └───────┬──────────┘
                        │
                        ▼
              ┌──────────────────┐
              │   memory.db      │  ← One physical SQLite
              │   (WAL mode)     │
              ├──────────────────┤
              │ FTS5 trigram     │  ← BM25 full-text
              │ ChromaDB + bge-m3│  ← Semantic (optional)
              │ RRF fusion       │  ← Multi-path merge
              │ 4-factor rerank  │  ← Z-score + sigmoid
              │ Supersession     │  ← Never delete
              │ Bi-temporal      │  ← T-axis + T'-axis
              │ Q-Value          │  ← Usage-based ranking
              │ Hubguard         │  ← Concurrent write lock
              │ Poisoning guard  │  ← OWASP LLM defense
              └──────────────────┘
Technical details
Component Technology Purpose
Database SQLite (WAL mode) Single-file, zero-config, cross-platform
Full-text FTS5 trigram + triggers O(1) BM25 search, SQL-level sync
Vector ChromaDB + bge-m3 (1024-dim) Semantic search, local embedding
Fusion Reciprocal Rank Fusion (K=60) Merge multi-path results
Re-ranking 4-factor (sem .45 + rec .25 + freq .05 + imp .10) Z-score + sigmoid
Governance Supersession + bi-temporal + conflict detection Never delete
Concurrency Hubguard (file lock + atomic write) Cross-process safe
Security memtether_guard (OWASP LLM01/02/06) Poisoning defense
API FastAPI REST (12 endpoints) + MCP server (4 tools) Any language
Packaging PyPI + Docker + 23 client adapters pip install memtether

Connect Your Clients

# All detected clients (recommended)
memtether init

# One at a time
memtether setup claude-code
memtether setup cursor
memtether setup windsurf
memtether setup codex

Supported (23): Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Zed, JetBrains, Cline, Roo Code, Kilo Code, Continue, Cody, Amazon Q, Gemini CLI, Neovim, Codex CLI, WorkBuddy (CN + Intl), CodeBuddy, ZCode, DSH, OpenClaw, Agents-Neutral


Memory Operations

memtether remember "User prefers dark theme" --source claude-code
memtether search "theme" --list        # L0: one-line + uid
memtether search "theme"               # Full content
memtether correct <uid> "Updated"      # Supersede, never delete
memtether timeline <uid>               # Audit chain
memtether stats
memtether export-md --out ./backup     # Export as markdown
memtether dashboard                    # Web UI

Benchmarks

LongMemEval (500 questions, full run, 2026-10-02)
Metric Score Notes
Strict match (global) 62.6% 209/334 applicable
LLM judge (global) 55.7% 264/474
Multi-session strict 48.8% 39/80
Multi-session LLM judge 60.0% 72/120
EAF 75.7% 253/334 — multi-session 32.5%→60.0%
Type n Strict LLM Judge
knowledge-update 78 76.6% 62.5%
multi-session 133 48.8% 60.0%
single-session-assistant 56 40.4% 41.1%
single-session-preference 30 N/A 43.3%
single-session-user 70 86.4% 85.7%
temporal-reasoning 133 60.7% 40.5%

Results use our own harness. Not directly comparable with mem0's reported numbers.

Test suite
Test Result
pytest 30/30 (CI runs full tests/ directory)
hard_bench 62/62
e2e_verify 13/13
refuse_bench 26/26 (wordform gate; 09-25 calibration; known blind spot: same-form-different-attribute)
check_packaging ✅

Security

  • Poisoning defense: memtether_guard detects prompt injection, code execution, sensitive info (OWASP LLM01/02/06), 12 rules
  • Input validation: content ≤10K, type whitelist, source format, confidence range, scope whitelist
  • Scope isolation: shared / private / restricted
  • Concurrency: Hubguard file lock + atomic write (WAL mode)
  • SQL: All parameterized. No f-string SQL

Known Limitations

  1. tether_connect detect may falsely report "not connected" for same-source-different-path configs
  2. DSH deep customizations (cordis.patch.yml) cannot be safely rewritten — use plan to preview
  3. Semantic search requires optional deps (chromadb, onnxruntime) — without them, degrades to keyword search
  4. Windows-first. macOS/Linux should work but not fully tested
  5. Exchange adapters for mem0/zep are experimental — they require the corresponding library installed

REST API

memtether dashboard   # starts server + opens browser
# or: uvicorn api_server:app --port 8820

12 endpoints: /health /remember /search /stats /correct /retire /list /timeline/{uid} /absorb /qvalue /dashboard


Contributing

See CONTRIBUTING.md.

License

Apache-2.0


Star History

Metadata

Release files for memtether 0.1.0a39

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for memtether 0.1.0a39
File Size Uploaded Provenance Actions
memtether-0.1.0a39.tar.gz 286.2 kB Without provenance Details for memtether-0.1.0a39.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for memtether 0.1.0a39
File Interpreter ABI Platform Actions
memtether-0.1.0a39-py3-none-any.whl Python 3 none any Details for memtether-0.1.0a39-py3-none-any.whl

Total release size: 813.9 kB

Release files / memtether-0.1.0a39.tar.gz

Download URL memtether-0.1.0a39.tar.gz
Size 286.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fe736612081a8316359e55410de878d18baaa5139a5dfce09216ab36bb3d8c55
BLAKE2b-256 checksum
How to use checksums
d704b814b54143baa2c804187c275f124e647f2a04a08e4026e2dbc7604ddf6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / memtether-0.1.0a39-py3-none-any.whl

Download URL memtether-0.1.0a39-py3-none-any.whl
Size 527.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f3390db77fa27e3f114362d03adfb34541d7c3c034ec9b1df403250337844bd
BLAKE2b-256 checksum
How to use checksums
40b504c7b376f334fd57b056936ebdb4ee8d77d2e5532bd48ec705dff81f99a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for memtether 0.1.0a39

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page