SQLite Local AI Memory

io.github.cheveguerra由 GitHub 帳號 cheveguerra 發布v1.5.3更新於 Oct 25, 2026

100% In-Process Bare-Metal Hybrid Memory Engine & MCP Server for LLMs (SQLite + Int8 Vectors).

發布方自己的服務:Memory.fit

已驗證STDIO僅桌面資料庫知識與記憶

概覽

AI 產生的概覽

以本機 SQLite 為後端的長期記憶伺服器,讓 AI 助理跨工作階段儲存、檢索、追溯與整理事實。

可以做什麼
  • 將原子事實、偏好與技術規則寫入本機記憶檔案,自動去重並建立向量索引
  • 以關鍵字與語意混合排序檢索記憶,並支援指定時間點的查詢
  • 依識別碼追溯某條事實的修訂與被取代歷程
  • 讀取目前工作看板,掌握進行中的重點與近期里程碑
  • 執行整理流程,彙整進度、封存過時筆記並重建看板
適用情境
適合希望程式開發助理或聊天用戶端在不同工作階段之間記住你的技術堆疊、偏好與過去決策、不必反覆貼上脈絡的情況,也適合偏好單一私有檔案而非託管向量資料庫的使用者。
執行需求
以 npm 套件形式透過 stdio 在本機執行,需要 Node.js。可選擇設定 GEMINI_API_KEY 以使用雲端推理與向量嵌入,或改用本機 Ollama 模型。SQLITE_MEM_PATH 可自訂資料庫檔案位置,預設位於使用者家目錄下。僅支援桌面用戶端。
安裝前請注意
記憶檔案以一般 SQLite 形式保存關於你與專案的事實,應視為敏感資料,備份或刪除需謹慎。設定 GEMINI_API_KEY 後,筆記內容會傳送至 Google Gemini API 用於嵌入與整理,可能產生少量 API 費用;使用 Ollama 可讓處理留在本機。儲存與整理工具會寫入並改寫已存記憶,包括封存舊筆記。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SQLite Local AI Memory,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

🧠 SQLite Local AI Memory

Give your AI assistant a real, permanent memory in 60 seconds.
No monthly database subscriptions. No Docker setup. Just a single private file on your computer.


🛑 The Problem: Why does your AI keep forgetting?

If you use AI coding assistants or chatbots (Claude Desktop, Cursor, Antigravity, etc.), you already know the frustration:

  1. Total Amnesia: The moment you close the chat or start a new window, the AI forgets who you are, your tech stack, your server IPs, and your personal preferences.
  2. Copy-Paste Hell: You have to re-explain the same context over and over, or paste giant text files into every single prompt.
  3. Wasted Money & Sluggish Chats: Shoving massive chat histories into every prompt burns through your token budget, costs real money, and makes the AI slower and prone to confusion.

✨ The Solution: A Private Brain in a Single File

sqlite-local-ai-memory gives your AI assistant a permanent, organized brain stored safely in a single file (memoria.db) right on your own machine.

How it works (In Plain English):

  • 📝 1. The Active Notepad (What we are doing right now):
    Keeps track of your immediate focus: active tasks, decisions made today, and next steps. When you open a fresh chat tomorrow, your AI instantly knows where you left off.
  • 📚 2. The Knowledge Vault (Facts that rarely change):
    Stores concrete knowledge—like your server configurations, preferred coding styles, or family rules. When something changes (e.g., an IP changes), it updates the active fact while keeping an audit trail of the past.
  • 🌙 3. Nightly Cleanup / AutoDream (Keeping the brain tidy):
    Just like the human brain organizes thoughts during sleep, when your AI is idle, it quietly reviews raw notes, merges duplicates, and connects related facts into a clean summary.

⚡ What Makes This Unique? (The "Secret Sauce")

Unlike simple chat logs or generic vector databases that dump raw text into a black box, this system uses 6 smart cognitive mechanisms that make your AI truly understand its memory:

🌙 1. AutoDream Engine (Sleep-Cycle Memory Cleanup)

Instead of letting thousands of chat messages pile up into an unreadable mess, AutoDream acts like the human brain during REM sleep:

  • Live Dashboard: Keeps an active summary of what you are building today.
  • Permanent Knowledge: Automatically distills key technical decisions into compact facts in SQLite.
  • Never Loses Unfinished Work: If a problem is left open or unresolved, AutoDream safely archives it with an [UNRESOLVED_CASE] tag so your AI can resume debugging weeks later without losing historical clues.

🐣 2. Open Case Incubator & Dynamic Memory Window

When troubleshooting a complex bug over multiple days, active investigations stay safely in an "incubator". When the AI finally consolidates the case, it doesn't just read the last message—it dynamically rewinds back in time to the exact moment the issue started, giving the AI 100% of the historical context to write the permanent fix.

⚖️ 3. Real-Time Contradiction Arbiter (Curing AI "Time Blindness")

Standard vector databases are completely blind to time. If you tell an AI "My server IP is .100" and two weeks later say "We moved the server to .205", normal vector search returns both and the AI hallucinates. Our Semantic Arbiter detects state contradictions instantly: it archives the old IP and sets the new IP as active in real time.

🚀 4. 100% Embedded Storage (Zero Database Servers)

Zero Docker containers to maintain. You don't need to install Chroma, run PostgreSQL with pgvector, or pay for cloud databases like Pinecone. Everything—keyword indexing and vector math—lives inside a single local SQLite file. It retrieves active notes in under 0.1 ms and deep memories in under 1.5 ms.

🛡️ 5. Two-Layer Noise Firewall (Chatter Blocker)

Protects your database and API bill from clutter:

  • Layer 1 (Instant Filter, 0 ms): Discards casual pleasantries ("hello", "thanks", "sounds good") immediately.
  • Layer 2 (Smart Sifter, 10 ms): Uses a tiny, fast model to drop non-knowledge conversation before invoking larger models.

🔎 6. Dual Hybrid Search (Exact Match + Meaning Combined)

Runs two searches simultaneously in parallel:

  • Exact Keyword Search (FTS5): Finds exact IP addresses, variable names, and error codes in < 0.5 ms.
  • Semantic Vector Search: Finds concepts even if you use completely different words.
    It blends both results using reciprocal rank scoring to return the exact right answer every time.

🛡️ 7. Graceful Offline Fallback (Never Crashes)

If your internet drops or you run without API keys, the system never hangs or crashes. It gracefully falls back to bare-metal mode: your AI can still save facts directly and search everything locally via fast keyword search.

[!NOTE] Degradation Notice: While the system operates reliably without an LLM, the real magic and intelligence (AutoDream consolidation, contradiction arbitration, and semantic vector search) come alive when connected to an AI model (Google Gemini or local Ollama).


🔍 Honest Transparency: What is Local vs Cloud?

We believe in 100% honesty about how your AI memory operates:

  • Your Data & Storage: 100% Local & Private.
    All your memories, search indexes, and notes live in a single standard SQLite file on your drive. You never pay for cloud vector databases (no Pinecone, no Qdrant, no monthly SaaS bills).
  • The AI Reasoning Layer (3 Operating Modes):
    To organize notes, detect contradictions, and synthesize summaries, the system needs an AI model:
    • 🟢 Mode 1: Cloud-Assisted (Recommended / Default): Uses lightweight Google Gemini API. It gives you flawless JSON formatting and deep reasoning for literally pennies (<$0.50 a month for thousands of notes).
    • 🟡 Mode 2: 100% Offline with Ollama (Private Local AI): Works out-of-the-box with Ollama (qwen2.5-coder + nomic-embed-text) if you prefer to run entirely offline on your own hardware without sending a single byte to the internet.
    • 🔴 Mode 3: Pure Bare-Metal Zero-LLM (Not Recommended): If you provide no API keys and Ollama is not installed, the engine gracefully falls back to raw SQLite FTS5 keyword storage without crashing. Warning: This mode is not ideal. Without an LLM, you lose intelligent noise filtering, contradiction arbitration, entity extraction, and AutoDream consolidation. It behaves merely as a fast keyword database rather than an intelligent cognitive brain.

🚀 Quick Start: Choose Your Scenario

FeatureScenario 1: MCP Server (Recommended)Scenario 2: Direct Node.js Library
Best For90% of users: Cursor, Claude Desktop, VS CodeDevelopers building custom agents, bots, or backends
Setup Time60 seconds (Zero coding required)5 minutes (Standard npm install import)
How it worksYour AI client talks to memory via stdio toolsIn-process native execution with sub-millisecond calls

🌟 Scenario 1: As an MCP Tool (Cursor, Claude Desktop, VS Code)

1. Add to your MCP Config (claude_desktop_config.json or .cursor/mcp.json):
json
{  "mcpServers": {    "sqlite-memory": {      "command": "npx",      "args": ["-y", "sqlite-local-ai-memory"],      "env": {        "GEMINI_API_KEY": "your-gemini-api-key"      }    }  }}

(Prefer 100% offline with Ollama? Replace GEMINI_API_KEY with ORCHESTRATOR_MODEL=ollama/qwen2.5:1.5b and OLLAMA_HOST=http://localhost:11434!)

2. The Secret Sauce: Add this Prompt to your .cursorrules or CLAUDE.md

To get true autonomous persistent intelligence, paste this instruction into your AI's rules:

markdown
# Persistent Memory ProtocolYou have access to the `sqlite-memory` MCP server. Follow this operating cycle:
1. 🌅 Session Start: On your very first turn, call `get_current_state` silently to load your active working dashboard and tasks.2. 🔎 Memory Recall: Before answering that you don't recall a technical decision or bug, run `search_memory("keywords")`.3. 🔨 Milestone Learning: When you solve a bug or make an architectural decision, call `save_fact` with Causal Syntax:   `[TYPE: BUGFIX|ARCHITECTURE] [CAUSE: <symptom>] -> [DECISION: <fix>] -> [EFFECT: <impact>]`4. 🌙 Session Wrap-up: When wrapping up or when the user says goodbye, call `consolidate` to synthesize the dashboard and prune resolved issues.

💻 Scenario 2: As a Direct Node.js / TypeScript Library

For developers building standalone agents, CLI tools, or Discord/WhatsApp bots:

bash
npm install sqlite-local-ai-memory
typescript
import { MemoryEngine } from "sqlite-local-ai-memory";
const memory = new MemoryEngine({  dbPath: "./agent_memory.db",  userId: "developer_1"});
// 1. Cold-start: Load active working state in < 0.1 msconst dashboard = memory.getDashboard("developer_1");
// 2. Just-in-Time RAG: Search hybrid memory in < 1.5 msconst hits = await memory.search("PostgreSQL port configuration");
// 3. Save atomic causal facts (anti-collision arbiter built-in)await memory.saveFact("[BUGFIX] [CAUSE: Port conflict] -> [DECISION: Moved to 5433] -> [EFFECT: Resolved]");
// 4. Maintenance: Run AutoDream cognitive consolidation at closeconst result = await memory.consolidate("developer_1", "BACKEND_PROJECT");

🛠️ The 5 Simple Tools your AI Gets

Once connected via MCP, your AI assistant automatically gains these 5 commands:

CommandWhat it does in plain words
save_fact"Remember that my PostgreSQL runs on port 5432." Saves an important fact permanently with automatic deduplication.
search_memory"How do we deploy this project?" Searches your memory vault using hybrid keyword + semantic search in < 2 ms.
get_current_state"What was I working on?" Reads the active project blackboard. (Note: Requires running consolidate at least once so the AI can synthesize the initial dashboard).
get_fact_lineage"How did this server IP change over time?" Inspects the complete historical audit trail and past superseded versions of any fact.
consolidate"Organize my notes and catch up." Reviews recent interactions, merges duplicates, archives resolved tasks, and builds the active currentState dashboard.

🔬 Need deep technical specs?
For in-depth math on Int8 scalar quantization, Reciprocal Rank Fusion (RRF), benchmark telemetry, and database PRAGMAs, check out the full Technical Architecture Reference (README_TECHNICAL.md).


💬 Frequently Asked Questions (FAQ)

Q: Where are my files stored?
A: In ~/.local-ai-memory/memoria.db on your computer. You can back it up, copy it, or delete it anytime. It is a standard SQLite file.

Q: Do I need Docker or complex database software?
A: No! Zero Docker containers, zero database servers. It runs directly inside Node.js.

Q: Is it safe for my privacy?
A: Yes. Your database never leaves your machine.


📄 License

MIT License — Free and open source for everyone.

來源:README.md,提交 ec0d305

工具

5

save_fact

Persists an atomic fact, preference, or technical rule into long-term memory with automatic semantic deduplication and vector indexing (append-only write). Use for immediate logging; for search use 'search_memory', for evolution audits use 'get_fact_lineage', and for batch synthesis use 'consolidate'. Returns the assigned fact UUID and status.

輸入參數fact必填sourceuserId

search_memory

Searches long-term memory using hybrid FTS5 BM25 lexical and vector cosine similarity with RRF ranking (read-only). Supports Point-in-Time queries via 'as_of'. Use for factual lookup and technical recall. For active high-level board use 'get_current_state'; for fact revisions use 'get_fact_lineage'. Returns ranked list of scored memory items.

輸入參數as_oflimitquery必填userIdhistory

get_fact_lineage

Traces the full evolutionary history and supersede chain of a fact by its UUID (read-only). Use when auditing how or why a rule changed, or resolving conflicting facts. Obtain the UUID via 'search_memory'. Returns chronological revisions and rationale.

輸入參數point_id必填

get_current_state

Retrieves the active executive working dashboard, active project focus, and recent milestones (read-only). Use during session bootstrap or task switching for high-level orientation. Do NOT use for granular fact searches (use 'search_memory'). Returns formatted markdown dashboard.

輸入參數userId

consolidate

Executes cognitive memory maintenance (AutoDream): synthesizes progress, archives obsolete notes, and updates the project dashboard (batch write). Call only at session close or after major milestones, NOT on every turn. Preserves other projects' cards. Returns triage summary report.

輸入參數sourceuserId

版本歷史

5
  1. v1.5.3最新Oct 23, 2026
  2. v1.5.0Oct 19, 2026
  3. v1.4.7Oct 19, 2026
  4. v1.4.6Oct 18, 2026
  5. v1.4.5Oct 18, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Memory 整合