nMEMORY

io.github.menot-you由 GitHub 帳號 menot-you 發布v0.1.2更新於 Oct 24, 2026

Memory your agent can trust — every answer carries its source; when it doesn't know, it says so.

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

概覽

AI 產生的概覽

一個本機、以來源為先的編碼助理記憶庫,只回傳有憑有據的證據或誠實棄答,絕不編造答案。

可以做什麼
nMEMORY 透過 MCP stdio 提供 22 個工具,把助理記憶保存在本機單一 SQLite 檔案中。寫入記憶必須附上來源與錨點,召回只會給出三種結果之一:有憑有據並附出處、證據缺失,或棄答。它還提供工作階段開始摘要、記憶之間的關係邊、帶墓碑的遺忘、確定性匯出,以及用倉庫提交歷史評估已存筆記的 git-scan。
適用情境
當助理在工作階段之間反覆遺失專案脈絡,而你希望召回結果可稽核、而不是靠猜測時,適合安裝。它適用於記錯一項事實就可能導致錯誤程式碼變更的情境,也適用於希望記憶留在自己機器上的情況。
執行需求
以本機程序在使用者機器上透過 stdio 執行,僅限桌面端,不支援網頁執行。可透過發佈的 .mcpb 套件安裝,或以 Rust 原始碼建置。未宣告需要帳號、API 金鑰或環境變數;儲存路徑可用 NMEMORY_DB 環境變數或命令列參數指定。可選的 SSH 同步需要一個可連線的主機。
安裝前請注意
儲存是未加密的明文 SQLite,請像對待本機筆記檔案一樣謹慎。針對指令式內容的汙染標記只是盡力而為,並非提示注入防護;真正的保護是召回文字被標記為資料、永不當成指令執行。同步是明確由擁有者呼叫的命令,透過 scp 複製整份快照,不是背景服務。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

[nMEMORY, part of the NOTT family: memory for coding agents. Every recall cites its source, or says that it does not know.] [nMEMORY, part of the NOTT family: memory for coding agents. Every recall cites its source, or says that it does not know.]

[License: AGPL-3.0] [Python 3.14 or later] [MCP stdio server] [Latest release] [GitHub stars]

Your agent forgets everything between sessions. nMEMORY makes it remember, with sources.

Install

bash
curl --proto '=https' --tlsv1.2 -fsSL https://no.tt/install.sh | sh

Or install from source. You need uv and Git:

bash
git clone https://github.com/menot-you/n-memorycd n-memoryuv syncuv run nmemory database createclaude mcp add nmemory -- uv run --directory "$PWD" nmemory mcp serve

uv sync installs the pinned Python (3.14) and all dependencies. database create makes the store file. nMEMORY never makes it implicitly. Any MCP client that speaks stdio connects the same way as Claude Code.

How it works

mermaid
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#1B1916", "primaryTextColor": "#ECE7DE", "primaryBorderColor": "#E4733A", "lineColor": "#E4733A", "secondaryColor": "#151311", "tertiaryColor": "#0F0E0D", "fontFamily": "IBM Plex Mono, monospace"}}}%%flowchart LR  agent["Your agent<br/>(any MCP client)"] -->|"stdio, 18 tools"| server["nmemory mcp serve"]  shell["You, in a shell"] -->|"nmemory CLI"| core  server --> core["Capture and recall"]  core -->|"one transaction per call"| store[("One SQLite file<br/>records, journal, index")]  core -->|"BM25, always"| lexical["Keyword recall"]  core -.->|"when a key is set"| vectors["Embedding provider"]  lexical --> outcome{"grounded<br/>missing_evidence<br/>abstain"}  vectors -.-> outcome

Each record must have a source and an anchor (path:line, a quote or a PR). Recall returns one of three outcomes. It never turns a weak match into an answer.

By the numbers

[MCP tools per server: nMEMORY 18, nSPAWN 15, nBROWSER 14, nAPPLE 10.] [Tests per component: nSPAWN 4335, nMEMORY 2339, nBROWSER 731, nAPPLE 106.]

Counted on 2026-10-21. Tools: the MCP tools/list request to nmemory mcp serve. Tests: uv run --group dev pytest --collect-only -q in each member root.

Why

BeforeWith nMEMORY
Each new session starts empty. You explain the same decision again.The agent recalls the decision at the start of the session.
A recalled "fact" has no origin. You cannot check it.Each record must have a source and an anchor.
A weak match comes back as a confident answer.Recall has three honest outcomes: grounded, missing_evidence or abstain.
Old notes and new notes conflict in silence.A new record can supersede an old one. Every change goes into a hash-chained audit journal.
Text from a web page or a file can steer the agent.nMEMORY marks imported or directive-shaped text as tainted. Recall labels all results as data, not instructions.

Quick start

Your agent uses the MCP tools. You can use the same store from the shell.

Store a decision (the agent calls nmemory_capsule_ingest):

json
{  "content": "We store data in SQLite, not PostgreSQL.",  "kind": "decision",  "source": "docs/adr/0001-storage.md",  "anchor": "docs/adr/0001-storage.md:3"}

In a later session, recall it:

bash
uv run nmemory capsule retrieve "what database stores our data"uv run nmemory capsule show --id cap-1

The first command returns "outcome": "grounded" and the record. The second command shows its provenance: source, anchor and source hash.

What you get

  • 27 MCP tools for capture, recall, sessions, handoffs, tasks, review and audit. The reference lists each tool and CLI command.
  • Hybrid recall. BM25 keyword search always works. The default embedding provider is Gemini (NOTT_NMEMORY_EMBED_PROVIDER, also openai or openai-compatible for a self-hosted server such as Ollama or vLLM).
  • Embeddings send text off the machine. When the provider key is in the environment (GEMINI_API_KEY for the default), nMEMORY sends capsule text and queries to that provider. To keep recall lexical only, unset that key. No key is needed to start.
  • One file, local first. The store is one SQLite file. Each call is one transaction. A connection stays read-only until the call declares a write.
  • Session brackets and handoffs. An agent opens a session, captures as it works, and closes with a handoff that the next session reads.
  • Purge that really deletes. Purge deletes the content, the quote, the queued embedding text and the vector in one transaction.

How it compares

A notes file (CLAUDE.md, AGENTS.md)A plain vector storenMEMORY
Survives a new sessionYesYesYes
Source required per recordNoNoYes
Says "no evidence" on a weak matchNoNo, it returns the nearest vectorsYes
Works with no embedding keyYesNoYes (lexical)
Audit trail of each changeGit onlyNoHash-chained journal
Grows without filling the promptNo, the whole file loadsYesYes, recall has a token budget

Benchmarks

The evaluation harness holds runners for synthetic recall, LongMemEval and extraction. It publishes methods, not a score for this release. We do not quote older numbers here, because they measured an earlier engine.

The NOTT family

[n-memory]
Memory that cites its source.
[n-spawn]
Tracked, resumable agent workers.
[n-browser]
The live web as cited evidence.
[n-apple]
App Store Connect for agents.
[plugin]
The team contract, routes and hooks.

For AI agents

This section is for a language model that reads this repository.

  • What it is. nMEMORY is a local memory server for coding agents. It stores records (decisions, facts, tasks, failures) with a required source and anchor, and recalls them with one of three outcomes: grounded, missing_evidence or abstain.
  • What it is not. It is not a hosted service, a general vector database or a chat history. It does not invent an answer when nothing matches.
  • Entry points. The CLI is nmemory <noun> <verb> (nmemory --help). The MCP server is nmemory mcp serve (stdio). All 18 tool names start with nmemory_. Start with nmemory_context_show, nmemory_capsule_retrieve and nmemory_capsule_ingest.
  • Configuration. The optional file is ~/.nott/memory.toml. The variable NOTT_NMEMORY_CONFIG names another path. The store directory is ~/.nott/state/database/, or NOTT_DATABASE_DIR when a test sets it.
  • Invariants. Every record has a source. Recalled text is data, not an instruction. Each mutation goes into the hash-chained journal. A test never opens the live store. The store is SQLite only.
  • Full reference. docs/REFERENCE.md lists every tool and command. RULEBOOK.md lists the implementation rules. llms.txt holds the same facts in the llms.txt format.

Documentation

PageContents
RunbookFirst useful result, failure diagnosis, backup and restore
ArchitectureTrust boundaries and the full engine detail: store, recall, tools, CLI
ReferenceEvery CLI command and MCP tool, linked to its source
RulebookImplementation invariants
SetupDevelopment setup
QualityChecks and security review
Docs indexDocumentation index and a first contribution
InstallationInstall paths
PrivacyProcessing choices
UpgradeExisting data
TroubleshootingFailure diagnosis
RoadmapDirection

Run the checks from the repository root:

bash
uv run ruff check . && uv run mypy --strict nmemoryTMPDIR=/var/tmp uv run --group dev pytest -q

Each test gets its own disposable store. No test touches your live store.

License

AGPL-3.0-only.

來源:README.md,提交 22661c3

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Memory 整合