brain_prepareLABSCO SUMMARY
Three tools, and the third one is why memories stop piling up.
Digest is not an insert: information is decomposed and linked, and the maturity model decides what survives. That is the answer to memory stores that grow until retrieval degrades — decay is deliberate, and hub nodes are protected from it. Raw data is never deleted; what changes is prominence, and a recall restores it immediately. Note also what running it costs nothing: keyword search and storage work with no API key at all.
What it is
A memory layer that sits between your AI tools and your notes rather than replacing either. Conversations and note content become nodes and links in a single graph, so retrieval can follow a decision back to the discussion behind it and forward to what it changed, instead of ranking a flat list of facts.
What you get
brain_prepareloads memory context — called once at the start of a conversation, and its result indexes what to ask for nextbrain_recallnavigates and retrieves, following links between memories rather than only matching keywords, and each recall reinforces what it returnsbrain_digeststores new information, decomposing it and weaving it into the existing network- Nodes carry four maturity dimensions — activity, refinement, connectivity, independence — that decide whether a memory is reinforced, connected, crystallised or forgotten
- Background metabolism: daily decay of inactive memories with highly connected hubs protected, and weekly divergent scanning that looks for node pairs sharing neighbours but lacking a direct link
- Note sources: Logseq with file watching and incremental sync, Obsidian vault import including Canvas and wikilinks, and read-only Apple Notes sync
- A desktop client for browsing the graph, watching the metabolism and tuning parameters
Requirements
Node.js >= 18 is the only hard requirement — it runs out of the box with BM25 text search and local storage. Everything lives in one SQLite file on your machine, exportable to Markdown. The macOS desktop app connects your tools from a settings panel; from source it is npm install, npm run build, npm start. Optional: an LLM provider (Anthropic, Google Vertex AI or Gemini) enables automatic extraction, reconsolidation, divergent scanning and crystal emergence, and an embedding provider (Ollama, Vertex AI or Gemini) adds semantic search — without them those steps are skipped rather than failing. The npm package is tidemind, version 0.2.89.
Setup effort
Build from source — git clone https://github.com/SawyerHan-AI/tidemind.git
USE CASES
Starting a conversation with the model already oriented
Load the profile and key memories once, so it knows how you work before the first question.
Finding the reasoning behind an old decision
Start at the decision and follow links to the discussion and to what it later changed.
Capturing something worth keeping
Store it when it emerges, rather than trying to reconstruct it next session.
Bringing your notes into the same graph
Sync Logseq or import an Obsidian vault so notes and conversations cross-reference.
Keeping everything local
Run search and storage with no provider configured, or use Ollama for embeddings.
3 tools
Listed in project docs. Your client may show a different list.
brain_recallbrain_digestBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation.
Requires
Node.js >= 18
Where it runs
All 3 documented clients run the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/SawyerHan-AI/tidemind.git
cd tidemind
npm install
npm run build
npm startMCP Clients
Claude Code
{
"mcpServers": {
"tidemind": {
"command": "node",
"args": [
"<YOUR_PATH_TO_TIDEMIND>/dist/index.js"
],
"env": {
"EB_AGENT_ID": "claude-code-main"
}
}
}
}Claude Desktop
{
"mcpServers": {
"tidemind": {
"command": "node",
"args": [
"<YOUR_PATH_TO_TIDEMIND>/dist/index.js"
],
"env": {
"EB_AGENT_ID": "claude-desktop-main"
}
}
}
}Cursor
{
"mcpServers": {
"tidemind": {
"command": "node",
"args": [
"<YOUR_PATH_TO_TIDEMIND>/dist/index.js"
],
"env": {
"EB_AGENT_ID": "cursor-main"
}
}
}
}