Agent Memory
概览
作者提供的说明(英文原文)
Git-native project memory for AI coding agents: Markdown source of truth, reviewable, secret-safe.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i2 项中通过 2 项依据公开信息检查;尚未扫描代码
- 使用情况i起步阶段↓ 131/周 · ★ 15
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 开发者工具
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:2 项中通过 2 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 注册中心没有列出需要填写的密钥。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"agent-memory": {
"command": "npx",
"args": [
"-y",
"@xchucx/agent-memory"
]
}
}
}在终端中运行这条命令
claude mcp add agent-memory -- npx -y @xchucx/agent-memory或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"agent-memory": {
"command": "npx",
"args": [
"-y",
"@xchucx/agent-memory"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"agent-memory": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@xchucx/agent-memory"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
哪些应用可以使用它
依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。
在你的电脑上运行,适用于
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月11日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 xChuCx 验证,该账户拥有此仓库
- ✓ 通过
仍在维护
代码最后更新于39天前
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“开发者工具”中的其他服务器比较i
- 星标数多于此分类中其他 5735 个服务器的 91%
- 发布到注册中心的时间比此分类中其他 5735 个服务器的 42% 更新
- 基础检查结果等于或优于此分类中其他 5735 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
Agent Memory 安全吗?
它在 2 项适用的基础检查中通过了 2 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于39天前,最新版本(0.6.1)于2个月前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
有什么可以替代它?
同一分类中有:REA, Netdata, Front-End Checklist
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Netdata
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Front-End Checklist
Review frontend code and live pages against 386 quality-gated web development rules.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
agent-memory
Local, git-native project memory for AI coding agents. One MCP call in, structured memory updates out — current task state, decisions, conventions, pitfalls, per-module facts. Branch-aware. Secret-safe. Byte-preserving. No cloud, no vector DB — Markdown is the source of truth and git is the sync. Three MCP tools + a full CLI.
Why it's different: memory is plain Markdown committed to your repo, so you can read and git diff it; durable changes stage for human review (review --diff → apply) instead of landing silently; and secrets/PII are scanned out before anything is written. See ROADMAP.md for where this is headed (system-level / multi-repo memory).
Demo
An agent records a durable decision; it stages for review; you see the exact diff, apply it, and a later `fetch` surfaces it — local, git-native, reviewable, secret-safe. The clip is reproducible: docs/demo/demo.sh is the runnable flow and docs/demo/demo.tape renders the gif with vhs — see docs/demo/.
How it compares
| Capability | AGENTS.md / CLAUDE.md | Vendor memory (e.g. Claude) | Vector / DB memory (mem0, Zep) | agent-memory |
|---|---|---|---|---|
| Plain-text, git-versioned source of truth | ✓ flat file | ✗ vendor-managed | ✗ DB / cloud | ✓ Markdown in your repo |
| Structured, section-level updates | ✗ | ✗ | ~ | ✓ |
| Human review gate (see the diff first) | ✗ free edit | ✗ | ✗ | ✓ stage → `review --diff` → apply |
| Vendor-neutral (MCP — any agent) | ~ broad convention | ✗ one vendor | ~ varies | ✓ Claude · Cursor · Codex · Gemini |
| Secret / PII scan on write | ✗ | ✗ | ~ varies | ✓ |
| Team merge for concurrent edits | ✗ text conflicts | ✗ | ✗ | ✓ section merge driver |
| Runs fully local (no cloud) | ✓ | ✗ | ~ varies | ✓ |
| Verifiable Task Protocol (VTP-1) & Machine Receipts | ✗ | ✗ | ✗ | ✓ 5-phase cryptographic lifecycle + Clause B disjoint seat |
These are general characterizations and the tools evolve fast — see something inaccurate? Open an issue and I'll fix the row. agent-memory is complementary to instruction files like AGENTS.md/CLAUDE.md (it even installs one): those say *how to behave*; agent-memory is the *durable, searchable, reviewed knowledge* behind it.
Status
Release 0.6.1 — the Swarm Audit Hardening & Metamorphic Rebase release: bridges durable memory with verifiable autonomous execution and strict fail-closed security invariants:
- Astra Pro Audit Hardening (AM-001..AM-008) — Category-enforced approval routing (
DecideRoutingWithCategory), whole-file pre-state CAS (proposal.PreHashes), polarity/negation qualifier preservation in Jaccard dedup (criticalQualifiers), idempotent pure read-onlyfetch_context, and canonical 3-way merge deletion semantics. - Metamorphic Rebase & Drift Detection (`internal/memory/rebase.go`) — Detects whole-file pre-hash drift during rebase, preventing silent clobber when adjacent sections are concurrently edited, verified by metamorphic composition tests.
- Control-Plane Manifest Isolation — Enforces fail-closed protection of
.agent-memory/meta/manifest.yamlagainst direct modification, symlink bypass, or path traversal attacks. - RFC 8785 (JCS) Determinism (`internal/vtp`) — Strict JSON Canonicalization Scheme compliance passing all 26 official RFC 8785 Appendix B test vectors, ECMAScript float formatting (
1e+21), lone surrogate rejection, and recursive UTF-8 validation. - Fail-Closed Cross-Process SQLite NonceStore (`internal/memory/nonce.go`) — Persistent repo-scoped store using the
withDBpattern to eliminate Windows file descriptor locks, providing zero-drift atomic validation and auto-sweeping expired nonces. - Two-Phase Staging & Compound Rollback (`internal/memory/staging.go`) — Strict path traversal sanitization (
ValidateStagingID,agentfs.ValidateMemoryPath), symlink containment, and atomic multi-file rollback reportingRollbackIncompletecompound errors on partial failure. - VTP-1 Strict Assertion Identification & Dual-Oracle Settlement (`internal/vtp`) — Mandatory identifiable
AssertionResultsmatching declared assertion IDs, verifier key binding validation, and Workpool/0 Clause B disjoint seat enforcement.
It builds on 0.6.0 (anti-ornamental SAR-008 grounding nonces, SAR-007 byte preservation), 0.5.4 (VTP-1 initial protocol engine), 0.5.0 (federation, referenced landscape stores), and 0.4 (section merge driver).
See CHANGELOG.md for the full changelist.
| Document | Purpose |
|---|---|
| ROADMAP.md | Where the project is going, principles, and non-goals. |
| CHANGELOG.md | Per-release feature list and known limitations. |
| Design Doc v0.4.1 | Canonical design this binary implements. |
| Implementation Plan | Historical MVP build log (M0–M8); see ROADMAP for what's next. |
| Retrieval eval | Offline recall/MRR/nDCG benchmark of fetch (method + numbers). |
| Patterns | Reusable design patterns documented per subsystem. |
| Spikes | Pre-M1 spike outcomes (byte-preserving engine, MCP SDK, flock, FTS5). |
Quick start
Install — download a prebuilt binary (recommended): grab the archive for your OS/arch from the latest release, extract it, and put agent-memory on your PATH. No toolchain needed.
# npx (no Go, no manual download): fetches the verified release binary on
first run and caches it — also usable straight from an MCP client config.
npx -y @xchucx/agent-memory --help
Go toolchain alternative (Go 1.25+)
go install github.com/xChuCx/agent-memory/cmd/agent-memory@latest
from source
go build -o agent-memory ./cmd/agent-memory
Homebrew, Scoop, and winget packages are planned. agent-memory is also listed on the MCP Registry.
Then, inside the repo you want to give a memory:
# Scaffold .agent-memory/ in a repo
agent-memory init --name my-project
Install the Claude Code skill + register the project MCP server
(writes .claude/skills/agent-memory/SKILL.md and merges .mcp.json)
agent-memory install claude
Verify (prints the release tag, the go-install version, or dev+vcs locally)
agent-memory version
Read context
agent-memory fetch # bootstrap pack agent-memory fetch "auth" # FTS query
Start MCP server (your agent spawns this automatically once configured)
agent-memory mcp
install claude registers the MCP server for you: it merges a project-scoped .mcp.json at the repo root that runs agent-memory mcp --root ${CLAUDE_PROJECT_DIR:-.}. Claude Code expands CLAUDE_PROJECT_DIR to the repo at spawn, so the server always serves this repo — the config is portable across clones and (by Claude Code's scope precedence, local > project > user) overrides any stray user-scoped server. Commit .mcp.json so your team shares it.
⚠️ Do not register a single user-scoped server with a hardcoded root
(
claude mcp add -s user agent-memory -- agent-memory mcp --root /some/repo):
it serves *every* project from that one repo, so memory you write in project B
silently lands in project A. Per-project registration (what
installwrites)
is the correct model;
agent-memory doctorflags a mis-rooted registration.
The server resolves its repo from --root, then $CLAUDE_PROJECT_DIR, then the working directory. Other runtimes (Cursor, Gemini CLI, anything reading AGENTS.md) use the same server — install their adapter (see below).
Adopt on an existing project
init scaffolds empty memory. To seed it from a real codebase, let your coding agent do the analysis — that's the whole point. After init + install + registering the MCP server (above), restart the agent so the memory.* tools load, then paste the prompt below.
What happens: the agent reads the repo and calls memory.propose_update. Working notes and pitfalls apply immediately; durable categories (conventions, decisions, modules) stage for your review — inspect each with agent-memory review --diff and land it with agent-memory apply (or reject). Nothing durable is written without your approval.
You now have agent-memory MCP tools (memory.fetch_context,
memory.propose_update, memory.status) backed by this repository's .agent-memory/ store. Bootstrap the project's memory from the codebase.
- Call memory.fetch_context with an empty query to see the current (mostly empty) state and the conventions/decisions/pitfalls/modules layout.
- Analyze THIS repository — read the build files, CI config, entry points, and the main packages/modules. Identify:
- build / test / run / lint commands and the toolchain;
- conventions: code style, branching, commit rules, review practices;
- architecture: the major modules/components and what each is for;
- durable decisions: notable choices and WHY (only ones that are real and stable — not speculation);
- pitfalls: footguns, sharp edges, "don't do X because Y" you can infer from the code, tests, or docs.
- Persist what you found via memory.propose_update, choosing the intent per kind:
- update_conventions → conventions.md (build/test/style/workflow)
- refresh_module → modules/ .md (one per major component)
- record_decision → decisions.md (Date / Status / Confidence + sources; type ∈ file|test|user, NOT external)
- add_pitfall → pitfalls.md
- update_shared → local/current.shared.md (a short "current state / where things stand" summary)
Rules:
- Cite provenance: pass sources as file references you actually read (e.g. {"type":"file","ref":"internal/auth/session.go"}). Use confidence=confirmed for facts from code, inferred for deductions.
- Every section needs a unique " " anchor; keep entries concise — this is working knowledge, not a wiki. Decisions need Date, Status (active|superseded|deprecated|proposed), and Confidence fields.
- NEVER put secrets, tokens, or credentials in memory (the server will reject them anyway).
- Work in a few focused passes (conventions + architecture first, then modules, then decisions/pitfalls). Report what you proposed and what staged for review.
No MCP s