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 --from tether-memory tether

…or install it first:

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

(The PyPI package is named tether-memorytether was already reserved on PyPI as a common brand name — but the installed command is still tether.)

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.0.tar.gz (32.3 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.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tether_memory-0.1.0.tar.gz
  • Upload date:
  • Size: 32.3 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.0.tar.gz
Algorithm Hash digest
SHA256 d78494ecb7a0b3179881b7aa7e4b0bade38a206fc71719412c907145b01dc573
MD5 9e92d46602bd81350224399b7194c715
BLAKE2b-256 96a49d2764966522b18397835c29e54beacb4762e33c0eb674270d4c04d1052f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tether_memory-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: tether_memory-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.5 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb923f50f3734e4c3033c66fa56e094631adf35686a8d578c01b4c56b55ad191
MD5 151ddee9d3b4b2b26d9a31b9ead412ef
BLAKE2b-256 e6f402d2aac9825b2a49644c6f762da7cf882f2cbbb916e719450cea56e5ec04

See more details on using hashes here.

Provenance

The following attestation bundles were made for tether_memory-0.1.0-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