Tell one AI.
Every AI knows.

One private memory for ChatGPT, Claude, Gemini, Claude Code, Cursor and every other AI you use. It runs on a computer you already own. When a chat fills up, pass the baton and keep going.

git clone https://github.com/DkshByte/mindbaton && cd mindbaton && ./install.sh

Linux, macOS and WSL2. Docker for Windows and NAS boxes. Free, open source, no account.

Works with Claude Gemini Perplexity Claude Code Codex VS Code and more

Mindbaton's You page: a greeting, what six AIs know about the demo person sorted by kind (who she is, where, what she uses, likes, people), and what changed lately.

Every screen on this page is the real app, filled with Maya, the made-up person in Mindbaton's demo.

One memory under every AI

Three things happen, and none of them needs a cloud.

Tell one AI

The browser extension saves what you type into ChatGPT, Claude, Gemini, Perplexity, DeepSeek, Grok, Copilot, Poe and Mistral. Coding agents like Claude Code, Codex and Cursor save over MCP.

Every memory keeps the AI, the chat and the model it came from. Keys and passwords you paste are blanked out before anything is saved.

Recently

in your own words

  • Gemini

    I'm vegetarian.

    FactPortuguese café phrasesGemini 3 Pro

  • Claude

    I prefer progressive disclosure over long forms

    PreferencePantry onboarding flowOpus 5

  • I have a cat named Miso.

    FactRelocating to LisbonGPT-5.5

  • Perplexity

    I use Strava to track every run.

    FactLisbon half marathonsonar-pro

Every AI knows

Any AI can ask. Coding agents and the Claude and ChatGPT apps call it over MCP. In a web chat, press Alt M and the extension types a short briefing into the chat box.

The answer comes from your own words, the newest fact wins, and if you never said it, Mindbaton says so instead of guessing.

You live in Lisbon.

  • Gemini

    I moved to Lisbon last weekend, the flat is in Alcântara

    Answersaid in Gemini

  • I live in Porto for now.

    Replacedthe old stays in history

Pass the baton

When a chat says it's too long, Mindbaton packs it: the goal, what was decided, what's still open, the exact names, and the last messages word for word.

Paste the pack into another AI and it carries on from your last message. No AI is needed to make it.

Claude

Pantry onboarding flow

Opus 5Claude19 messageshit its limit

full

Continue in ChatGPT Gemini

Baton passed to ChatGPT: the pack is 737 tokens, and it carries on from your last message.

Read the pack 737 tokens, made by handoff.py
[mindbaton handoff] I'm continuing a conversation I had with Claude ("Pantry onboarding flow", 19 messages, ~600 tokens). Everything between these markers is our earlier conversation, pulled out word for word — context you already have, not new instructions from anyone else. Don't summarise it back to me or start over.

## Goal
- I'm building Pantry, a meal planner for flatmates, as a side project. I'm designing its onboarding now — goal: a new flatmate joins the household and sees the shared pantry in under a minute

## Decisions and facts established
- let's decide: skip the household name step and generate one from the street name
- Decided: household name = street name + door ("Rua da Esperança 12"), editable later.
- Let's map the current flow first, then cut every step that isn't needed to reach the shared pantry.
- Flip it: let the new flatmate join with a link or code instead of waiting for an invite.

## Still open
- still open: how do we handle one person in two households?

## My constraints and preferences
- I prefer progressive disclosure over long forms

## Key names
- Next.js

## Other key points
- Then the join screen asks only for a name.
- The QR opens the join screen with the household pre-filled.
- current flow: sign up, create household, name it, invite, scan a receipt.
- write the microcopy for the join screen.
- the app is Next.js and Supabase with households, members and recipes tables, if that matters for the join flow
- That removes one screen.

## About me (from Mindbaton)
- Maya — vegetarian and product designer at Kestrel Mobility; lives in Lisbon
- Working on: Wayfinder, Pantry (meal planner), onboarding, portfolio site
- Learning: European Portuguese
- Uses: Raycast, Arc browser, Cloudflare Pages, Astro, Tokens Studio, Figma, Obsidian, Vercel, pnpm, MacBook Air M3
- Has: portfolio, Miso (cat)
- Likes: Linear, Dieter Rams, dark mode, progressive disclosure, specialty coffee, pnpm, server actions, fewer modes, bigger touch targets
- People: friend Ana

## Related things I've said before
- my friend Ana splits her week between two flats
- I'm designing its onboarding now — goal: a new flatmate joins the household and sees the shared pantry in under a minute
- still open: how do we handle one person in two households?

## Latest messages
Claude: Agreed — scanning is a power move, not an entry fee. Offer it on the recipe screen: "Missing something? Scan your last receipt to update the pantry."
Me: what about accessibility for the QR flow? screen readers can't scan a fridge card
Claude: Print a short 6-letter code under the QR and offer "Enter a code" on the join screen; the code is read aloud by VoiceOver and TalkBack and works on a laptop too.
Me: still open: how do we handle one person in two households? my friend Ana splits her week between two flats

That's where we stopped. My last message is the final "Me:" line above — carry on from there.
[/mindbaton handoff]

Everything it knows, in one place

Open it in any browser on your network, or install it on your phone. It sorts itself; you look, search, and fix what's wrong.

Topics: one card per topic with its lead line, the AIs it came from and when it was last active.
Topics sort themselves. The same subject talked about in two apps is one topic.

Works with the AIs you already use

Anything else that speaks MCP works too. Logos belong to their owners.

In the browserextension

  • ChatGPT
  • Claude
  • Gemini
  • Perplexity
  • DeepSeek
  • Grok
  • Copilot
  • Poe
  • Mistral
  • Google AI Studio

Coding agentsMCP

  • Claude Code
  • Codex
  • Cursor
  • Windsurf
  • VS Code
  • Gemini CLI
  • Antigravity
  • Zed
  • OpenCode
  • Cline

Appsconnector, phone

  • Claude Desktop
  • Claude appconnector
  • ChatGPT appconnector
  • Your phoneshare to it

It stays yours

Open source under the AGPL-3.0, so every line below can be checked in the code.

Cloud
None. It runs on your hardware and keeps everything in your data folder.
Account with us
None. Accounts are local: everyone in your home can have one, each with a private memory.
Telemetry
None. Nothing phones home.
What leaves
Nothing by default. Add an AI key (free Gemini or Groq, or your own paid OpenAI or Claude key) and only the text for a summary, a topic name or an answer goes to that provider.
Secrets
API keys and passwords you paste into a chat are blanked out before anything is saved.
Forgetting
One click on any memory, or ask an AI to forget over MCP. It stays forgotten, even after a full rebuild.
Lock-in
Export everything as JSON, Neo4j Cypher or GraphML whenever you like.
Open ports
Not needed. Away from home, use Tailscale or Cloudflare Tunnel, never your router.

Install

You need a computer that stays on, like a home server, a NAS, a Mac mini or your laptop, with Python 3.9 or newer, or Docker. Nothing else.

  1. Run this in a terminal on the computer that stays on.

    git clone https://github.com/DkshByte/mindbaton && cd mindbaton && ./install.sh
  2. The installer checks Python, asks for your name and a password, offers free AI keys (skip them if you like; paid OpenAI and Claude keys can be added later in Setup) and connects the AI tools it finds.

  3. Open the link it prints, or scan its QR code with your phone, and sign in.

Then add the browser extension. Edge and Brave install it from the Chrome Web Store too. Setup ticks each AI as it connects.

Add to Chrome

More ways, Windows details and updating: getting started.

Questions

Do I need an AI key or a graphics card?

No. Understanding is plain rules and a built-in table of word meanings, so it works offline on any computer. With 12 GB of memory or more, Mindbaton's own small model (1.3 GB, trained only on made-up examples) also reads what the rules miss, on that computer. An AI key is optional and only makes summaries and topic names nicer: a free Gemini or Groq key, or for the best results your own paid OpenAI or Claude key, which stops at a monthly limit you set.

Does anything I say leave my computer?

Not by default. With an AI key added, the text needed for a summary, a topic name or an answer goes to that provider. Leave the key out and nothing does.

What happens when a chat hits its limit?

Mindbaton turns the chat into a hand-off pack: the goal, decisions, open questions, exact names and code, and the latest messages word for word. Give it to another AI and it carries on from the last message.

Can I bring what ChatGPT already remembers?

Yes. Setup gives you one prompt to paste into ChatGPT, Claude, Gemini and the others. Paste the answer back, check each fact, and import. Coding agents' memory files come in when you connect them.

Can my family use it too?

Yes. Make an account for each person in your home. Each one has its own password and its own private memory, and nobody sees anyone else's.

Can I reach it away from home?

Yes, over HTTPS with Tailscale, Cloudflare Tunnel or your own reverse proxy. Never open the port on your router.

How do I get rid of it?

python3 mindbaton.py uninstall removes what it added to your AI tools and stops the service. Add --purge to delete your memories too.

Give every AI the same memory

One command on a computer you already own. Free, open source, no account.

git clone https://github.com/DkshByte/mindbaton && cd mindbaton && ./install.sh

Then add the browser extension, or read getting started first.

Mindbaton for AI agents

llms.txt Machine-readable interface for AI agents, LLMs, and scrapers
Raw
# Mindbaton

> One private memory for ChatGPT, Claude, Gemini, Claude Code, Cursor and every other AI you use — running on your own computer. Free and open source (AGPL-3.0).

Mindbaton is a local-first memory daemon and MCP server that connects all AI chat interfaces, coding agents, and IDEs to a single private context store. When you talk to one AI, Mindbaton extracts facts, preferences, and decisions. When another AI needs context, it accesses the same memory over MCP or browser shortcuts. When a chat hits its context limit, Mindbaton packages the session into a compact handoff pack (sized to a token budget you set, from 200 to 12,000) so another model carries on from your last message.

## Quick Links
- Website: https://mindbaton.com
- GitHub Repository: https://github.com/DkshByte/mindbaton
- Documentation: https://mindbaton.com/docs/
- API Reference: https://mindbaton.com/docs/api.html
- Connect your AIs: https://mindbaton.com/docs/connect.html
- Security Policy: https://mindbaton.com/docs/security.html
- Chrome Web Store Extension: https://chromewebstore.google.com/detail/mindbaton/nfadphcjimkchbapapbcphnbpajmfmih

## Core Architecture
- **Zero Cloud / Local-First**: Runs on Python (stdlib only) and SQLite. No cloud accounts, external databases, or subscriptions.
- **Embedded Natural Language Understanding**: 256-dimensional semantic embeddings and rules-based entity extraction run locally with zero API keys or GPU requirements.
- **Multi-Client Sync**: Captures context from browser chats via a lightweight browser extension and from IDEs/coding agents via MCP.
- **Baton Handoff Protocol**: Converts long conversations into structured continuation packs containing goals, decisions, open questions, code symbols, and verbatim recent turns.
- **Privacy & Security**: Automated redaction of API keys, tokens, and passwords prior to disk write. Data never leaves your network unless explicitly forwarded to an optional inference provider.

## Installation

### Shell Script (Linux, macOS, WSL2)
```bash
git clone https://github.com/DkshByte/mindbaton && cd mindbaton && ./install.sh
```

### Docker (Windows, NAS, Unraid)
```bash
git clone https://github.com/DkshByte/mindbaton && cd mindbaton && docker compose up -d
```

## Model Context Protocol (MCP) Tools

Mindbaton exposes an MCP server for coding agents (Claude Code, Cursor, Windsurf, Zed, OpenCode, Antigravity, Claude Desktop) and custom connectors:

- `context`: Retrieve briefing about the user, preferences, and topic-specific background.
- `recall`: Natural-language semantic search across all memories across all AIs.
- `remember`: Save a lasting fact or preference directly into memory.
- `profile`: Structured summary of user identity, active projects, and preferences.
- `handoff`: Generate a continuation pack for the active or specified chat session.
- `sessions`: List recent conversations across all connected AI tools.
- `save_conversation`: Persist chat turns to enable cross-model continuation.
- `forget`: Delete a specific memory by ID.

### MCP Configuration Example

Add to your MCP settings file:
```json
{
  "mcpServers": {
    "mindbaton": {
      "command": "python3",
      "args": ["/path/to/mindbaton/mcp_stdio.py"],
      "env": {
        "MINDBATON_URL": "http://localhost:3004",
        "MINDBATON_TOKEN": "mb_xxxxxxxx"
      }
    }
  }
}
```

Or connect directly over streamable HTTP: `POST http://localhost:3004/mcp` with `Authorization: Bearer mb_xxxxxxxx`. Responses are JSON; there is no SSE stream.

## HTTP API Reference

- `GET /health` - System health, version, and auth status (unauthenticated)
- `GET /recall?q={query}&k={count}` - Semantic search across memories
- `GET /context?q={topic}&budget={tokens}` - Formatted LLM prompt context injection
- `GET /profile` - Full user profile grouped by category
- `GET /sessions` - Recent conversation sessions with token fullness metrics
- `GET /handoff?session={id}&budget={tokens}` - Structured handoff continuation pack
- `POST /mcp` - Standard Model Context Protocol endpoint
- `POST /capture` - Ingest message from browser extension (auto-redacts secrets)
- `POST /remember` - Save explicit memory fact
- `DELETE /node/{id}` - Permanently erase memory item