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 集成