Tvix

Shared agent memory

ChatGPT, Gemini CLI, Claude, and Cursor can share one Tvix brain when they use the same account and MCP host.

Tvix does not push live chat into idle sessions. Connected agents pull on their next turn via MCP.

ClientAutomatic every-turn ingestDurable facts / plans
CursorLifecycle hooks → /agents/ingestHooks + MCP
Claude CodeLifecycle hooks → /agents/ingestHooks + MCP
Claude Desktop ChatDesktop transcript watcher → /agents/ingest (no official hooks)Watcher + MCP capture_memory / wiki
ChatGPT / GeminiNoneExplicit capture_memory

All connected agents read the same Tvix account via MCP. Turns and extracted memories are stamped with agent_key / source_client (and evidence links when available). Wiki notes created via MCP also store agent provenance. Other agents receive context on their next turn via query_shared_brain (memories + wiki) or sync_memory_context.

Requirements

  1. Same account — every agent authenticates as you (OAuth for ChatGPT; Bearer et_… tokens for Gemini CLI / Claude / Cursor).
  2. Same MCP host — either all on Mac Local, or all on cloud. Mixing hosts means separate databases.
EnvironmentChatGPTGemini CLI / Claude / Cursor
Cloudhttps://api.tvix.ai/mcp (OAuth)https://api.tvix.ai/mcp (Bearer)
Tvix for MacHTTPS tunnel from Enable remote agentshttp://127.0.0.1:8000/mcp (Bearer)

Connecting ChatGPT to cloud while Gemini uses Mac Local will not share memories.

Setup

  1. Connect each client from Agents → + Add Agent (ChatGPT, Gemini CLI, Claude, Claude Code, Cursor).
  2. Install hooks for Cursor and/or Claude Code from the wizard (scripts/install-tvix-hooks.sh + paste config).
  3. For Claude Desktop, install the same script and load the Desktop transcript LaunchAgent (wizard step) so completed turns archive automatically.
  4. Paste Shared brain instructions so models call query_shared_brain, search_wiki, and capture_memory for recall and titled handoffs.
  5. Confirm Agents shows heartbeats / last sync for each connection.

How sync works

  1. Agent A writes via hooks, Desktop watcher, and/or capture_memory / create_wiki_note — stamped with that agent’s identity.
  2. Agent B calls query_shared_brain (or search_wiki / sync_memory_context) — Tvix returns memories, wiki notes, and incremental changes with source_client / evidence.
  3. Agent B attributes answers (e.g. “From Cursor: …”) and acknowledges with ack_cursor on the following sync.

Demo: Claude Desktop → Cursor (auto-archive + plan)

  1. Connect Claude (Desktop) and Cursor — separate et_… tokens; same MCP host.
  2. Enable Cursor hooks and the Claude Desktop transcript watcher.
  3. Paste Shared brain instructions into Claude; Always-allow search/capture tools.
  4. Chat normally in Claude Desktop — completed turns archive to Tvix with source_client=claude.
  5. For a titled handoff: Save the complete product plan to Tvix… title "Product plan: <name>" collaboration_thread=product:<slug>.
  6. In Cursor: Find the product plan for <name> in Tvix and implement it. Use only query_shared_brain / search_wiki — do not browse memory_store or Application Support on disk. Attribute Claude as the source and cite evidence_url (tvix://evidence/… on Local, or https://tvix.ai/evidence/… on cloud) or in-app evidence_path / memory_path — never a localhost URL.

Demo: Cursor → Claude Desktop

  1. Chat in Cursor (hooks on) or capture_memory / create_wiki_note.
  2. In Claude: What did Cursor save about <name>? — call query_shared_brain / search_wiki and cite source_client=cursor.

Demo: random number (Cursor + Claude Code)

  1. Connect Cursor and Claude Code with hooks installed.
  2. In Cursor: Generate a random number and share it with my other agents.
  3. In Claude Code: What random number did Cursor generate? — cite evidence_url.

Why paste instructions?

MCP clients choose when to call tools. Hooks/watchers archive transcripts; Shared brain instructions make models search that archive and attribute the creating agent.

Was this page helpful?