Skip to main content
Pre-release

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

Tessera — Portable context for AI tools

PyPI Python License CI

A local-first context layer for agents and AI tools. Tessera stores durable user and project context in an encrypted SQLite vault, exposes it through a scoped MCP surface, and retrieves cross-facet bundles with hybrid search, rerank, SWCR, and token budgeting.

Open source. Local-first. Apache 2.0.


Install

From PyPI (recommended):

pip install --pre tessera-context
# or pin explicitly:
pip install tessera-context==0.5.0rc1

pip's default resolver skips pre-releases, so --pre or an explicit version pin is required. The PyPI distribution name is tessera-context; the CLI binary and Python import path remain tessera. The short tessera name on PyPI is held by a 2017-dormant Graphite dashboard project; PEP 541 reclaim is pursued in parallel.

From source (for development):

git clone https://github.com/Mathews-Tom/Tessera.git
cd Tessera && uv sync --dev
uv run tessera --help

Core local flow

# one-time setup: pin a passphrase in your shell so commands run flag-free.
# the vault path defaults to ~/.tessera/vault.db; override with $TESSERA_VAULT.
export TESSERA_PASSPHRASE='your-passphrase-here'   # add to ~/.zshrc or your global .env

tessera init                          # creates ~/.tessera/vault.db
tessera models set --name nomic-ai/nomic-embed-text-v1.5 --dim 768 --activate
tessera daemon start                  # starts tesserad, picks up the env var
tessera connect claude-desktop        # mints token, writes config
# or wire every detected client in one shot:
tessera connect all

The tessera models set --activate step picks the embedder Tessera will use; the daemon refuses to start without an active model. Embedding runs in-process via fastembed (ONNX Runtime) — no Ollama, no torch, no separate model server. The first daemon start downloads the model weights to ~/.cache/fastembed (~520 MB for the default nomic-embed-text-v1.5; one-time cost). Reranking runs in the same stack via Xenova/ms-marco-MiniLM-L-12-v2.

--vault and --passphrase flags are still accepted for one-off use, multi-vault setups, or scripted invocations. Resolution order is flag → $TESSERA_VAULT / $TESSERA_PASSPHRASE → default. See docs/quickstart.md for the env-var setup and docs/troubleshooting.md for multi-vault disambiguation.

ChatGPT Developer Mode is deferred to v0.1.x because the current ChatGPT flow requires HTTPS/OAuth/canonical HTTP MCP compatibility that Tessera v0.1 does not yet ship. The v0.1 demo flow uses Claude Desktop and Claude Code as the MCP-capable clients.

What is Tessera

A local daemon owns a single-file SQLite vault that holds five v0.1 context facets:

  • identity — stable user facts
  • preference — behavioral rules and tool preferences
  • workflow — repeated procedures
  • project — active work context
  • style — writing voice samples

Two transports reach the vault, sharing one daemon dispatcher and one token-based auth model:

  • MCP at /mcp for tool-aware AI clients that auto-discover Tessera (Claude Desktop, Claude Code, Cursor, Codex). Six MCP tools: capture, recall, show, list_facets, stats, forget, plus the v0.3 learn_skill / get_skill / list_skills / resolve_person / list_people surface.
  • REST at /api/v1/* for hooks, skills, and shell scripts. Curl-friendly endpoints that skip MCP's JSON-RPC envelope so high-frequency hook calls do not pay the per-call envelope tax. See docs/api.md for the full reference and copy-pasteable recipes; tessera curl --print recall "..." emits canonical curl invocations safe to paste into hook scripts.

A bare recall (either transport) searches every facet type the token can read and returns a budgeted cross-facet bundle.

The lead user is the AI-native developer who wants durable context across Claude Code, Claude Desktop, Cursor, Codex, local model workflows, and custom harnesses without handing memory to a hosted service.

Where to read, by role

If you want to Read
Walk through install + first capture in ~10 minutes docs/quickstart.md
Build a hook, skill, or shell script that talks to the daemon docs/api.md
Pitch to a colleague or evaluate whether this is interesting docs/pitch.md
Understand the market position, category claim, and trade-offs docs/system-overview.md
Understand the architecture, schema, retrieval pipeline, encryption docs/system-design.md
Understand the SWCR retrieval algorithm and its ablation bar docs/swcr-spec.md
Understand the security model and threat analysis docs/threat-model.md
Understand how migrations are safe docs/migration-contract.md
Understand how debuggability works without telemetry docs/determinism-and-observability.md
Know what ships in v0.1, v0.3, v0.5, v1.0 docs/release-spec.md
Know what will never ship docs/non-goals.md
Review the load-bearing decisions docs/adr/
Fix an install failure, bad first run, or a broken connector docs/troubleshooting.md

Posture

This is a solo-developer craft project by Tom Mathews, paced by evening and weekend velocity while a dissertation on agentic memory systems lands in parallel. The v0.1 commitment is explicit; v0.3 and beyond are contingent on real-user signal. There is no telemetry, no hosted service in v0.1, and no model reselling ever. See docs/non-goals.md for the full list of things Tessera will not become.

The reason this exists is that the amnesia tax is real for a growing audience — T-shaped users operating across three or more AI tools a week — the engineering shape is interesting, and the adjacent products in the space treat memory as flat blobs in someone else's cloud. Tessera treats it as structured context on disk.

License

Apache 2.0. No CLA.

Metadata

Release files for tessera-context 0.5.0rc1

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

Source distribution (sdist)

Source distribution for tessera-context 0.5.0rc1
File Size Uploaded
tessera_context-0.5.0rc1.tar.gz 965.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tessera-context 0.5.0rc1
File Interpreter ABI Platform
tessera_context-0.5.0rc1-py3-none-any.whl Python 3 none any Details

Total release size: 1.3 MB

Release files / tessera_context-0.5.0rc1.tar.gz

Download URL tessera_context-0.5.0rc1.tar.gz
Size 965.8 kB
Tags Source
SHA-256 checksum
How to use checksums
7b046fd7cbb775210fa72d318808d9bf22b5c45af5d92371a32e9476380043d3
BLAKE2b-256 checksum
How to use checksums
8439eeb11c26d14d68144ff8a08b2c4c7ff841b932cd9d9e199ef98d6ca226ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.14

Release files / tessera_context-0.5.0rc1-py3-none-any.whl

Download URL tessera_context-0.5.0rc1-py3-none-any.whl
Size 312.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d8b76d8e0a9e736f69feebf4055f715c09d12935255c31d9f80ef2dadc057dd
BLAKE2b-256 checksum
How to use checksums
ec1395c543cebe0580e04e7ac0108b30f2d7143053ac8cf10a75f435a56289fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.14
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