Skip to main content

A shared memory layer for personal agents, across devices: an MCP server over local SQLite with opt-in libSQL/Turso sync.

Project description

tether

A shared memory layer for personal agents, across devices. tether is an MCP server backed by a local SQLite file. Any MCP-compatible agent can remember, recall, link, and forget durable notes — facts about you, your projects, your preferences — so context follows you instead of dying with each session.

It runs local-only with zero configuration. Point it at a hosted libSQL/Turso primary and the same file becomes an embedded replica that syncs your memory across every device in near-real-time.

Why

The near future is personal agents living across many devices — laptop, desktop, phone. For that to feel like one assistant rather than several amnesiac ones, memory has to be a substrate that follows you: readable and writable from every device and from any agent, not siloed inside a single tool.

tether is that substrate. It is deliberately a convenience layer — it makes an agent more useful when present, and never breaks the agent's work when degraded.

Status

v0.1 is implemented. Design and rationale: docs/superpowers/specs/2026-07-03-tether-design.md. Implementation plan: docs/superpowers/plans/2026-07-03-tether-v0.1-implementation.md.

Design at a glance

  • Four verbs, nothing more: remember · recall · link · forget.
  • Upsert on write so the store doesn't rot into near-duplicates.
  • Rich recall (id, type, title, body, tags, updated_at) so an agent can judge staleness and cite what it updates.
  • An auto-loaded boot index — a compact one-line-per-memory list surfaced to the agent each session, so memory helps even when the agent doesn't think to search.
  • Local-first, sync optional — the local path is untouched when no backend is configured; degradation never throws.
  • Keyword search now, embeddings later — the SQLite schema is built so semantic search and a full entity/edge graph slot in without migrating data.

Install

Requires Python ≥3.10 on a POSIX system (Linux/macOS).

Register it with Claude Code — with uv:

claude mcp add tether -- uvx tether-memory

…or install it first:

pip install tether-memory
claude mcp add tether -- tether-memory

(The package is named tether-memory on PyPI — tether was already reserved as a common brand name. tether in claude mcp add tether -- ... is just the label Claude Code uses to refer to this server; it doesn't need to match the installed command.)

By default memory lives in a local SQLite file at ~/.local/share/tether/memory.db (override with TETHER_DB). No accounts, no network — this is the whole tool for a single machine.

Sync across devices (optional)

Point tether at a Turso / libSQL database and the local file becomes an embedded replica — local-speed reads, writes that propagate to your other devices. Install the extra and set two env vars:

pip install 'tether-memory[sync]'
export TETHER_SYNC_URL='libsql://<your-db>.turso.io'
export TETHER_SYNC_TOKEN='<your-auth-token>'

If the backend is unreachable, tether logs sync offline and keeps working against the local file; writes converge when it comes back.

Tools

Tool What it does
remember(type, title, body, tags?, links?) Save a memory; upserts on type+title so facts refine rather than duplicate
recall(query, type?, limit?) Keyword search; returns id/type/title/body/tags/updated_at
link(id_a, id_b) Bidirectional link between two memories
forget(id) Delete a memory

Plus an auto-loaded resource tether://memory-index — a compact one-line-per-memory index surfaced each session.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tether_memory-0.1.1.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tether_memory-0.1.1-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file tether_memory-0.1.1.tar.gz.

File metadata

  • Download URL: tether_memory-0.1.1.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tether_memory-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c71ed83df9d86f89ca261b3d422a3b5712792f441da533132226f76b353255a1
MD5 054352aa4622e7797ffc1e1acbe55641
BLAKE2b-256 44ffb327dddcce23a08653e2c13818d3ba363101d3a77680e19382f4949ce21d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tether_memory-0.1.1.tar.gz:

Publisher: release.yml on sidyellur/tether

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tether_memory-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tether_memory-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tether_memory-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f4275e9cae60d9d5d5d15bee153efe5b10b045ae29c9cb5b92dfe962d1a13e34
MD5 84d2701e967dc629d8e5fd54459899f6
BLAKE2b-256 08005111492c3d5dd3ac8bb529856286c2f88bb5e3b50af50534e04b695f7c2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tether_memory-0.1.1-py3-none-any.whl:

Publisher: release.yml on sidyellur/tether

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page