loading…
Search for a command to run...
loading…
Record development decisions as structured JSON, embed as vectors via Gemini, and search semantically over MCP. Shared store across Claude Code, Cursor, Windsur
Record development decisions as structured JSON, embed as vectors via Gemini, and search semantically over MCP. Shared store across Claude Code, Cursor, Windsurf, and any MCP client. CLI + MCP server, local-only, free Gemini embedding tier.
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.
npm install -g decisionnode
cd your-project
decide init # creates project store
decide setup # configure Gemini API key (free tier)
# Connect to Claude Code (run once)
claude mcp add decisionnode -s user decide-mcp
{
"id": "backend-007",
"scope": "Backend",
"decision": "Skipped connection pooling for the embeddings DB — single writer, revisit if we add a sync daemon",
"status": "active",
"rationale": "Only one process writes at a time in the current architecture. Pooling added complexity with no measurable benefit. If we add a background sync process this will need to change.",
"constraints": [
"Do not add concurrent writers without revisiting this first"
],
"createdAt": "2024-11-14T09:22:00Z"
}
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.
decide add or the AI calls add_decision through MCPgemini-embedding-001, stored locally in vectors.jsonsearch_decisions via MCP, gets back relevant decisions ranked by cosine similarityThe 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.
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/).
decide add # interactive add
decide add -s Backend -d "Skipped connection pooling for the embeddings DB — single writer, revisit if we add a sync daemon"
decide add --global # applies to all projects
decide search "connection pooling" # semantic search
decide list # list all (includes global)
decide deprecate ui-003 # soft-delete (reversible)
decide activate ui-003 # bring it back
decide check # embedding health
decide embed # fix missing embeddings
decide export json > decisions.json # export to file
decide ui # launch local web UI (graph + vector space + list)
decide ui -d # run UI in background, return the terminal
decide ui stop # stop the background UI
decide ui — visual interfaceA local web UI that gives you three live perspectives on your decisions:
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.
decide ui # foreground (Ctrl+C to stop)
decide ui -d # background (terminal returns immediately)
decide ui status # check whether the background server is running
decide ui stop # stop the background server
Local-only HTTP server on localhost:7788 (falls back to a random port). Read-only — the CLI and MCP remain the write paths.
cli for terminal commands, or the MCP client name (claude-code, cursor, windsurf) for AI-initiated changes.
search_decisions tool description sent to the AI. Strict (default) tells the AI searching is mandatory before any code change. Relaxed lets the AI decide when searching is relevant.
decide check shows which decisions are missing embeddings. decide embed generates them. decide clean removes orphaned vectors from deleted decisions.
Full docs at decisionnode.dev/docs
For LLM consumption: decisionnode.dev/decisionnode-docs.md
See ROADMAP.md for what's coming next. Bug fixes, features, docs improvements, or just ideas are all welcome. See CONTRIBUTING.md for how to get started.
MIT — see LICENSE.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"decisionnode-decisionnode": {
"command": "npx",
"args": []
}
}
}PRs, issues, code search, CI status
Database, auth and storage
Reference / test server with prompts, resources, and tools.
Secure file operations with configurable access controls.