Skip to main content

MCP memory server with semantic search, graph, and bi-temporal tracking

Project description

🧠 Symbiosis Brain

Stop re-explaining your project to Claude. Make it remember. Build your symbiosis.

Persistent memory for Claude Code — a markdown brain that lives next to your code, with skills and hooks that make Claude actually use it. Local, file-based, Obsidian-compatible.

PyPI Python License


What changes

You stop saying "Hi Claude, my stack is X, last week we decided Y…" every session. Claude remembers your stack, your projects, your past decisions. Painful lessons resurface before you trip on them. Knowledge flows between repos. A smart hook saves the session before /compact swallows it.

Symbiosis Brain vault — Obsidian graph view
368 notes, 431 entities, all wiki-linked — and this is just a few weeks of real work. This is what your head looks like when you're juggling five projects at once. Don't panic — Claude knows exactly where to look.

Install (30 seconds)

uv tool install symbiosis-brain
symbiosis-brain setup claude-code

That's it. Restart Claude Code — brain-welcome introduces itself, asks two friendly questions, and you're done.

Don't have uv? Or prefer installing straight from GitHub?

Install uv first (one-time, ~30 seconds — uv is a fast Python package manager):

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

Install Symbiosis Brain straight from GitHub (no PyPI involved):

uv tool install git+https://github.com/Krill113/symbiosis-brain.git
symbiosis-brain setup claude-code

Same result — installs the latest main branch directly from the repo. Useful if you want to track unreleased changes or install from a fork.

🤖 Want Claude Code to install it for you? Paste this prompt:

Install Symbiosis Brain from https://github.com/Krill113/symbiosis-brain — use the default vault path, then remind me to restart Claude Code.

Claude will read this README, run the install with --vault ~/symbiosis-brain-vault, and tell you when it's time to restart. You'll need to restart Claude Code manually — the running session can't pick up its own new MCP server until you do.

🤝 Augments Claude Code — never overrides it. Symbiosis Brain adds a memory layer. Every built-in Claude Code feature keeps working. Your existing hooks, skills, slash commands, and settings stay intact — we deep-merge our config with a .bak backup, and symbiosis-brain uninstall restores everything.


Why a markdown brain?

  • 📂 Your knowledge, your files. Plain .md in a folder you pick. Human-readable, git-trackable, opens in Obsidian as a graph.
  • 🔍 Hybrid search, all local. Local embeddings + local index, no API key — memory calls don't add an API bill on top of Claude.
  • 🔗 Wiki-links connect your projects. brain_context walks the graph N hops — decisions in one repo surface as context in another.
  • Bi-temporal. Every fact has a valid_from / valid_to date. Stale knowledge gets a warning, not silent rot.
  • 🪶 Quiet by design. No Clippy, no nag. Hooks fire only when they earn the interruption (e.g., context at 70% → "save before /compact swallows this").
  • 🧩 Skills shipped, not just storage. brain-init, brain-recall, brain-save, brain-project-init make Claude use the memory — not pray that it does.
  • 🤝 Layered, never invasive. Adds capability without disabling any of Claude Code's defaults. Uninstall is one command.

What it feels like

You:    Continue from where we left off yesterday.

Claude: [brain-recall fires silently]
        I see we paused on the auth migration after deciding to
        skip JWT rotation — the blocker was the legacy refresh
        token format. Pick up there?

Same vault, days apart, different process. No prompt engineering, no copy-pasting context. The skill brain-recall fired on its own because the request triggered it.

How it works (60 seconds)

A tiny MCP server backed by a folder of markdown notes. SQLite indexes them with FTS5 + vector search; wiki-links form a graph; companion skills wire the recall/save loop into Claude Code's own session lifecycle (SessionStart, Stop, PreCompact hooks).

You write nothing manually. The vault grows as you work.

Why this, not…

  • Plain CLAUDE.md / MEMORY.md — they grow into a 10K-line blob with no search and no decay. Symbiosis Brain decomposes into searchable, scoped, time-stamped notes.
  • basic-memory — closest in spirit (markdown + Obsidian). We add hybrid search (FTS5 + vector), skills/hooks that drive use, bi-temporal valid_to, per-project + global scope.
  • mem0 / Letta — different category (cloud SaaS / agent SDK). We're local-first storage your existing Claude Code uses.
  • mcp-memory-service — they ship REST/dashboard. We ship human-readable markdown + skills.

Maintenance

symbiosis-brain doctor                       # health check
symbiosis-brain setup claude-code --repair   # fix only what's broken
symbiosis-brain uninstall                    # restore settings, vault preserved
uv tool upgrade symbiosis-brain              # update

FAQ

Is my knowledge private? 100%. Everything is local files + a local SQLite index. No cloud, no telemetry, no API calls.

Will this break my Claude Code setup? No. Symbiosis Brain layers on top of Claude Code — it never disables built-in features, overrides your hooks, or removes your existing skills. Config is deep-merged with a .bak backup. uninstall restores everything.

Can I open the vault in Obsidian? Yes — that's a first-class use case. The welcome flow can install Obsidian for you and open your first note as a graph.

Does it work with other AI agents? Today: tuned for Claude Code. The MCP layer is portable; skill-driven UX is Claude-Code-specific but the storage works anywhere MCP works.

What about the name? Symbiosis — a mutually beneficial partnership. The tool lives next to Claude; Claude becomes more useful; your knowledge survives the next /compact. Build your symbiosis.

How do I delete everything? symbiosis-brain uninstall restores your settings.json from backup. The vault folder is preserved — delete it manually if you want a clean slate.

Release process (maintainer notes)

Releases are auto-published to PyPI on v* git tags via GitHub Actions (Trusted Publisher OIDC, no API tokens).

Workflow:

  1. hatch version <patch|minor|major> — bumps src/symbiosis_brain/__init__.py
  2. Move [Unreleased] items in CHANGELOG.md into a new [X.Y.Z] — YYYY-MM-DD section
  3. git commit -am "release: vX.Y.Z"
  4. git tag vX.Y.Z && git push --follow-tags
  5. Watch Actionsbuild, publish, verify jobs must all pass
  6. Verify on pypi.org/project/symbiosis-brain

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

symbiosis_brain-0.2.0.tar.gz (332.7 kB view details)

Uploaded Source

Built Distribution

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

symbiosis_brain-0.2.0-py3-none-any.whl (67.7 kB view details)

Uploaded Python 3

File details

Details for the file symbiosis_brain-0.2.0.tar.gz.

File metadata

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

File hashes

Hashes for symbiosis_brain-0.2.0.tar.gz
Algorithm Hash digest
SHA256 68e252893afb79ea5a38d5c8b9d784d58479c6b7418f991766c9cbfc52dfa7a1
MD5 f99df418f7dd99b969b58cade02147e3
BLAKE2b-256 393bf5209fdd3acda05a2c68a58833641b8691671078d569e370aa7a259b11fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for symbiosis_brain-0.2.0.tar.gz:

Publisher: publish.yml on Krill113/symbiosis-brain

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

File details

Details for the file symbiosis_brain-0.2.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for symbiosis_brain-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8e32dcd14b191f712ea05a7943a97251e1aee51cd9608cfe0432124a38d082a7
MD5 2c891b0c8fb1a969c815f1847beb0ad5
BLAKE2b-256 e5929a6eab9531c11de9a819fec8641730893bd82261ada7e84444d061d02280

See more details on using hashes here.

Provenance

The following attestation bundles were made for symbiosis_brain-0.2.0-py3-none-any.whl:

Publisher: publish.yml on Krill113/symbiosis-brain

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