CLI + Local MCP - A shared structured memory store across Claude Code, Cursor, Windsurf, Antigravity, and every MCP client. Semantically queryable.
DecisionNode
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
CLI + Local MCP - A shared structured memory store across Claude Code, Cursor, Windsurf, Antigravity, and every MCP client. Semantically queryable.
---
Not a markdown file — structured decisions with semantic search, exposed over MCP.
Install
What a decision looks like
Stored as JSON, embedded as a vector, searchable by meaning.
Decisions are not exactly "Rules" that the AI should have in it's context window the entire time (those are better suited for CLAUDE.md or memory.md). Decisions are thought of to be more like "Memories" that the AI can pull in when it's actually relevant through semantic search.
How it works
1. **A decision is made** — via decide add or the AI calls add_decision through MCP
2. **Embedded as a vector** — using Gemini's gemini-embedding-001, stored locally in vectors.json
3. **AI retrieves it later** — calls search_decisions via MCP, gets back relevant decisions ranked by cosine similarity
The retrieval is explicit — the AI calls search decisions tool via MCP passing a query and getting back the top N decisions ranked by cosine similarity. Nothing is pre-injected into the system prompt.
Two interfaces
| | CLI (decide) | MCP Server (decide-mcp) |
|---|---|---|
| **For** | You (and your AI) | Your AI (and you) |
| **How** | Terminal commands | Structured JSON over MCP |
| **Does** | Setup, add, search, edit, deprecate, export, import, config | Search, add, update, delete, list, history |
Both read and write to the same local store (~/.decisionnode/).
Quick reference
Features
decide ui — visual interface
A local web UI that gives you three live perspectives on your decisions:
- **Graph** — force-directed view where nodes are decisions, edges are cosine similarity. Hover to highlight a decision's neighborhood, drag the threshold slider to tighten/loosen the connections.
- **Vector Space** — UMAP projection of the 3072-dim Gemini embeddings into 2D, drawn as actual vectors radiating from the origin. Lets you literally see semantic clusters form.
- **List** — searchable, filterable, sortable cards grouped by scope. The boring-but-essential view for actually reading what you've stored.
Live MCP pulse: when Claude Code, Cursor, Windsurf, or any MCP client searches your decisions, the matched nodes pulse in real time in the matching tool's color. You're literally watching the AI think.
Local-only HTTP server on localhost:7788 (falls back to a random port). Read-only — the CLI and MCP remain the write paths.
Other features
History tracking — full audit trail with source tracking
Every add, edit, deprecation, and delete is logged. The history shows which tool made each change — cli for terminal commands, or the MCP client name ( claude-code , cursor , windsurf ) for AI-initiated changes.
Conflict detection — catch duplicates before they're saved
When adding a decision, existing decisions are checked at 75% similarity. The CLI warns you and asks to confirm. The MCP server returns the conflicts so the AI can decide whether to update, deprecate, or force-add.