Tessera — Memory layer for every AI. 58 MCP tools, 54 REST endpoints, local-first, AES-256 encrypted.
Tessera
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Every AI conversation produces knowledge. When the session ends, it's gone. Tessera keeps it.**
One knowledge base for Claude Desktop, with an HTTP API for scripts and automation. Runs locally. No API keys, no Docker, no data leaving your machine.
---
Why Tessera over alternatives
| | Tessera | Mem0 | Basic Memory | mcp-memory-service |
|--|---------|------|--------------|-------------------|
| Works without API keys | Yes | No (needs OpenAI) | Yes | Partial |
| Works without Docker | Yes | No | Yes | No |
| Document search (40+ types) | Yes | No | Markdown only | No |
| ChatGPT integration (via tunnel) | Yes | No | No | No |
| Contradiction detection | Yes | No | No | No |
| Memory confidence scoring | Yes | No | No | No |
| Encrypted vault (AES-256) | Yes | No | No | No |
| HTTP API for non-MCP tools | 58 endpoints | Yes | No | Yes |
| Auto-learning from conversations | Yes | Yes | No | No |
| MCP tools | 58 | ~10 | ~15 | 24 |
The short version
Most memory tools store text and search it. Tessera does that, plus:
- **HTTP API**: 58 REST endpoints let scripts, ChatGPT (via tunnel + Custom GPT Actions), and local LLMs read and write the same knowledge base.
- **Self-maintaining**: finds contradictions between old and new memories, scores confidence by reinforcement frequency, flags stale knowledge, auto-merges near-duplicates.
- **Zero infrastructure**: pip install and go. LanceDB and fastembed are embedded -- no Docker, no database server, no API keys.
- **Encrypted**: set TESSERA_VAULT_KEY and all memories are AES-256-CBC encrypted at rest.
---
Architecture
How search works (query path)
How ingestion works (ingest path)
System overview
---
Get started
1. Install
Or with uv:
2. Setup
Creates workspace config, downloads embedding model (~220MB, first time only), configures Claude Desktop.
3. Restart Claude Desktop
Ask Claude about your documents. It searches automatically.
Use with ChatGPT (Custom GPT Actions)
Full setup guide at http://127.0.0.1:8394/chatgpt-actions/setup. Swagger docs at http://127.0.0.1:8394/docs.
---
How it works
Hybrid search with reranking
Every search goes through four stages:
1. Query decomposition -- the query is split into 2-4 search angles (core keywords, individual terms, reversed emphasis)
2. Hybrid retrieval -- vector similarity (LanceDB) and keyword matching (FTS/BM25) run in parallel
3. Reranking -- a LinearCombinationReranker merges the two result sets (70% semantic, 30% keyword weight)
4. Verdict scoring -- each result gets a label: confident match (>= 45%), possible match (25-45%), or low relevance ( ", "source": "chatgpt"}'
bash
curl http://127.0.0.1:8394/export?format=obsidian
yaml
workspace.yaml
hooks:
on_memory_created:
- script: ./notify-slack.sh
on_contradiction_found:
- script: ./alert.py
bash
pip install project-tessera[api]
tessera api # http://127.0.0.1:8394
bash
Search documents
curl -X POST http://127.0.0.1:8394/search \
-H "Content-Type: application/json" \
-d '{"query": "database architecture", "top_k": 5}'
Save a memory
curl -X POST http://127.0.0.1:8394/remember \
-H "Content-Type: application/json" \
-d '{"content": "Use PostgreSQL for production", "tags": ["db"]}'
Export memories