Linksee Memory
概览
作者提供的说明(英文原文)
Hand a project over with the reasons attached. Local-first cross-agent memory MCP + drift detection.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i1 项中通过 1 项依据公开信息检查;尚未扫描代码
- 使用情况i起步阶段↓ 1548/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 搜索与 AI 记忆
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:1 项中通过 1 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 注册中心没有列出需要填写的密钥。
你需要
- npm已安装 Node.js(用于 npx 命令)
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"linksee-memory": {
"command": "npx",
"args": [
"-y",
"linksee-memory"
]
}
}
}在终端中运行这条命令
claude mcp add linksee-memory -- npx -y linksee-memory或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"linksee-memory": {
"command": "npx",
"args": [
"-y",
"linksee-memory"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"linksee-memory": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"linksee-memory"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 michielinksee 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“搜索与 AI 记忆”中的其他服务器比较i
- 星标数多于此分类中其他 5716 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 5716 个服务器的 94% 更新
- 基础检查结果等于或优于此分类中其他 5716 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
Linksee Memory 安全吗?
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(0.19.0)于前天进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
有什么可以替代它?
同一分类中有:Context7, Codebase Memory, Exa
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
linksee-memory
A local MCP memory server: one SQLite file on your machine that Claude Code, Cursor, Windsurf, OpenAI Codex and Gemini CLI all read and write. No account, no credit card, no cloud, no API key. The server makes no network calls; telemetry is opt-in and off by default.
It is for handing a project over — to your next session, to another client, to the person after you — with the reasons attached. Every client can save and search the memory. In Claude Code, hooks also bring a recorded decision back at session start and before an edit. Drift detection shows which recorded decisions the code has since left.
Needs Node.js 22.16 or later (recommended: SQLite with FTS5 is built into Node, nothing is compiled), and Claude Code or Codex to try it (either one is enough). Node 20 and Node 22.0–22.15 still work through better-sqlite3, which then has to be built on install — on npm 12 that means allowing its install script (see troubleshooting).
Install
Claude Code, from inside a session (plugin: MCP server and skill, no hooks):
/plugin marketplace add michielinksee/linksee-memory
/plugin install linksee-memory@linksee-memory
Or from a shell, which also installs the hooks:
npx -y linksee-memory setup # Claude Code: MCP server, skill, hooks
codex mcp add linksee -- npx -y linksee-memory # Codex: the same memory
The plugin starts the server with npx -y linksee-memory@latest and ships the same skill setup installs. It has no hooks: the Stop hook (auto-capture) and the re-injection guard come only from setup. One or the other, not both:
- Already ran
setup? Do not add the plugin. With both, Claude Code runs the server twice (linkseeandplugin:linksee-memory:linksee). - Installed the plugin and want the hooks? Disable it (
/plugin→ Installed → linksee-memory → disable, orclaude plugin disable linksee-memory@linksee-memory), then runnpx -y linksee-memory setup. The memory file is the same; nothing is lost. - Plugin only: no hooks, so nothing is saved unless the agent calls
remember(the skill tells it when). - Windows: after installing the plugin, run
/mcpand check thatplugin:linksee-memory:linkseeis connected. If it is not, disable the plugin first (previous bullet), then runnpx -y linksee-memory setupfrom the shell block above.setupregisters the server withclaude mcp add, the form that is known to work on Windows, and it does not disable the plugin for you.
One command for Claude Code. setup --dry-run prints what it would change. It edits ~/.claude/settings.json, so the hooks apply in every repo, and keeps the old file as settings.json.bak- (what it writes).
First round trip
A new install has an empty memory, so "how did we solve this before?" finds nothing yet. Try this instead:
- In Claude Code or Codex, say: *"Remember: in this repo we decided to use X, because Y. Use Linksee."*
- Open a new session — in either one — and ask: *"What did we decide about X? Use Linksee."*
- Two repos: record a decision in repo A, then in repo B (e.g. Codex) ask the same. It does come back — the memory is per machine, not per repo — labelled
entity: repo-aandby:;entity_nameon the recall narrows by a part of the entity name (repo-aalso matchesrepo-a-backup). - Reverse it:
rememberthe new decision withsupersedes:.recallthen shows only the new one (supersedes #);include_superseded: trueshows both.
Works for me
Where the first round trip is known to work. Most cells are empty because nobody has tried them yet, not because they fail.
| Client | Windows | macOS | Linux |
|---|---|---|---|
| Claude Code | verified | reported | untested |
| Codex | untested | untested | untested |
| Cursor | untested | untested | untested |
| Windsurf | untested | untested | untested |
| Gemini CLI | untested | untested | untested |
- verified: run by the maintainer with a record. Claude Code on Windows: remember in one session, recall in a new one, on 0.18.1 (record). The plugin install path connected on 2026-11-05; its round trip is not in the record.
- reported: someone said it works, without a version or log. Claude Code on macOS: the maintainer on one Mac (#16); the hooks there are not checked.
- untested: nobody has reported it either way.
If you fill one cell, your name goes in the weekly report under "Added by others". Report your client and OS — five fields, no database contents.
Weekly report: Discussion #16.
What it does not do
- Reminders and blocks before an edit are Claude Code hooks. Cursor, Windsurf, Codex and Gemini CLI share the memory but get no warning before an edit.
- Saving every session automatically is also Claude Code only. Other clients save when the agent calls
remember. - The memory is shared on one machine. There is no sync to another machine; to hand it over, copy
~/.linksee-memory/(with every client closed). - A database from a very early version (schema 1–5) is refused without being changed. Close every client and keep them closed while it runs, then
npx -y linksee-memory@0.17.2 migrate --dryandnpx -y linksee-memory@0.17.2 migrate: it migrates a copy and moves the original files, as one set, intomemory.db.pre-migrate- /(details and how to go back).
Docs: docs.linksee.app · Site: linksee.app (setup guides for non-developers) · Free, MIT, local only — there is no paid tier you need.
What setup writes, and how to undo it
setup registers the MCP server (claude mcp add -s user linksee -- npx -y linksee-memory), installs the agent skill, adds a Stop hook that saves each session, and wires the re-injection guard for every repo (--project-guard for this repo only, --no-guard to skip). Running it again changes nothing that is already in place.
| File | What |
|---|---|
~/.claude.json | the linksee MCP server (via claude mcp add) — undo with claude mcp remove linksee |
~/.claude/skills/linksee-memory/SKILL.md | the agent skill |
~/.claude/settings.json | the Stop hook (auto-capture) and the SessionStart / PreToolUse guard hooks. Merged into what is there — other hooks and settings are kept. If the file does not parse, setup leaves it untouched and says so. Before changing it, setup keeps the previous file as settings.json.bak- : to undo, copy that file back over settings.json. |
~/.linksee-memory/runtime/ / | only when setup ran from a temporary location (npx, pnpm dlx, bunx, or the system temp directory): setup runs npm install --prefix ~/.linksee-memory/runtime/ --no-save --omit=dev linksee-memory@ once (shown with its size; this downloads from the npm registry), because the hooks call node on it directly and those locations are temporary. Older versions are not removed automatically (about 35 MB each): setup prints the folder, and npx -y linksee-memory runtime prune lists them with what references each. With --yes --scope-confirmed it deletes only versions no settings file references; it cannot see other repos where you ran setup --project (pass their .claude/settings.json with --settings), and if a settings file cannot be read or parsed it deletes nothing. If the install fails, the hooks stay on the npx form. |
~/.linksee-memory/telemetry-consent | your telemetry answer (off unless you said yes) |
To remove everything: claude mcp remove linksee, delete the linksee hooks from settings.json (or copy the .bak back), then rm -rf ~/.claude/skills/linksee-memory ~/.linksee-memory — the last one deletes the memory stored in that folder. It does not reach copies you made yourself (for example to hand the memory over) or telemetry already sent if you opted in. Linksee itself never sends memory text anywhere. Step by step, with manual setup: docs/install.md.
Other clients
Every client points at the same stdio command and the same ~/.linksee-memory/memory.db. A decision made in Claude Code is recalled in Cursor.
| Client | Where |
|---|---|
| OpenAI Codex | codex mcp add linksee -- npx -y linksee-memory |
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Gemini CLI | ~/.gemini/settings.json |
| Claude Desktop | claude_desktop_config.json |
The JSON clients take the same block:
{ "mcpServers": { "linksee": { "command": "npx", "args": ["-y", "linksee-memory"] } } }
Full configs, including Codex's config.toml: docs/install.md.
Everyday use
| Say this | What happens |
|---|---|
| "use linksee" | Recalls relevant memories before acting |
| "linksee this" | Saves the decision or lesson now |
| "what's drifting?" | Checks reality against the decisions you recorded |
Adding "Use Linksee Memory" to your system prompt or CLAUDE.md prompts the agent to call recall more often; whether it does is still up to the agent.
What each part does, and where:
- Shared (every client):
remembersaves to the one SQLite file;recallsearches it when the agent calls it. - Re-injected (Claude Code only, hooks):
remember({ content, anchor: {} })also records the decision as an anchor. At session start the guard hook adds a short digest of recorded decisions (up to 8). Before anEdit/Write/Bash, a decision comes back only if it matches: withaffectsglobs, the edited path must match (aBashcommand that names no file can still match on aviolation_signal); withoutaffects, adetect_termsorviolation_signalhit is needed. An emptyanchor: {}has none of these, so it appears only in the session-start digest, never before an edit. - Contradiction warned or blocked (Claude Code only): the guard can only tell that an edit contradicts a decision if you give it the strings that mean "contradiction":
anchor: { violation_signal: ["pgvector"] }. An emptyanchor: {}is stored as a constraint and is re-injected, never matched as a contradiction. A match warns; afterresolve_drift(action: "harden")it blocks. The guard fails open: its own errors never block anything. Details: docs/guard.md.
Tools: seven, six for memory and drift and one you ask for
Three for memory, three for drift, and share_draft,
只显示了开头部分;其余内容请在仓库中阅读