每次新会话都要重新讲项目背景?一条命令解决Claude Code的跨会话失忆
claude-mem解决了Claude Code跨会话失忆的问题。一条命令装好,不改工作流,后台自动跑。每天用Claude Code写代码的话,装上试试。最直接的好处:新会话不用再花时间"热身"了。项目地址:https://github.com/thedotmack/claude-mem。
每次新会话都要重新讲项目背景?一条命令解决Claude Code的跨会话失忆
用Claude Code写代码,最头疼的一件事:每次开新会话,它把你之前说的全忘了。
上一轮刚花半小时让它理解项目结构、技术栈、踩过的坑。关掉终端再打开,一切归零。你得重新解释"这个项目用Next.js 15""数据库是Supabase""上次那个bug是环境变量没加引号"。
有人用CLAUDE.md来缓解这个问题,把关键信息手动写进去。但手动维护的问题是:你不可能记住每次对话里每一个细节,写着写着就懒了。
GitHub上有个叫 claude-mem 的项目就是解决这个问题的。今天在GitHub Trending日增2300+星,累计5.8万。下面记录一下我的安装和使用过程。
claude-mem是什么
它是Claude Code的记忆插件。你照常写代码,它在后台自动捕获Claude的每一次工具调用:读了哪些文件、改了哪些代码、跑了什么命令、发现了什么bug。这些操作被一个后台Worker服务用AI压缩成结构化摘要,存到本地SQLite数据库。
下次开新会话,claude-mem把最近的上下文注入进去。Claude就知道你之前在干什么了。
安装
一条命令:
npx claude-mem install
重启Claude Code,完事。
如果你用Gemini CLI:
npx claude-mem install --ide gemini-cli
OpenCode也行:
npx claude-mem install --ide opencode
还有一种方式,在Claude Code里直接装:
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
安装过程做了这几件事: - 注册5个生命周期Hook到Claude Code - 启动后台Worker服务(端口37777) - 创建 ~/.claude-mem/ 目录和SQLite数据库
装完打开 http://localhost:37777 ,有一个Web界面可以实时看记忆流。
工作原理
claude-mem靠5个Hook驱动:
SessionStart — 每次打开Claude Code,从数据库拉最近50条观察记录和会话摘要,注入到Claude的初始上下文。
ToolUse — Claude每次调用工具(读文件、写文件、跑命令),都被捕获,原始数据发给Worker服务。
Stop — Claude回复完毕后触发。Worker生成一段会话摘要:你问了什么、Claude查看了什么、发现了什么、完成了什么、下一步做什么。
SubAgentStart / SubAgentStop — 子Agent的操作也被记录。
数据流长这样:
你正常用Claude Code
↓
ToolUse Hook 捕获工具调用
↓
发给Worker服务(localhost:37777)
↓
Worker用AI模型压缩成结构化摘要
↓
存入 ~/.claude-mem/claude-mem.db
↓
下次会话 → SessionStart读取并注入
配置
配置文件在 ~/.claude-mem/settings.json,首次运行自动生成。
注入数量
默认注入最近50条观察记录。项目大的话可以调高:
{
"CLAUDE_MEM_CONTEXT_OBSERVATIONS": "80"
}
但别太高,注入多了占token。我个人用50够了。
换便宜的AI模型
默认用Claude Sonnet处理摘要。想省钱可以换Gemini免费模型:
{
"CLAUDE_MEM_PROVIDER": "gemini",
"CLAUDE_MEM_GEMINI_API_KEY": "你的key",
"CLAUDE_MEM_GEMINI_MODEL": "gemini-2.5-flash-lite"
}
Gemini API有免费额度,处理摘要任务绑绑有余。
也可以走OpenRouter接免费模型:
{
"CLAUDE_MEM_PROVIDER": "openrouter",
"CLAUDE_MEM_OPENROUTER_API_KEY": "你的key",
"CLAUDE_MEM_OPENROUTER_MODEL": "xiaomi/mimo-v2-flash:free"
}
跳过特定工具
有些工具调用不需要记录,默认已经排除了一批:
{
"CLAUDE_MEM_SKIP_TOOLS": "ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion"
}
根据你的场景增减就行。
实测体验
装上跑了几天,说说实际感受。
最明显的变化:不用重复解释项目背景了。之前每次新会话要花3-5分钟让Claude理解项目,现在打开就能续上。它知道你昨天改了哪个文件、发现了什么bug、用了什么方案。
另一个意外收获是踩坑记录自动保留。上周配Tailwind CSS v4遇到postcss兼容问题,调了二十分钟。这周换分支碰到同样问题,Claude直接从记忆里找到上次的解决方案,省了一轮重复调试。
Web界面(localhost:37777)能看完整的记忆流,包括每条记录的类型(decision、bugfix、feature等)和关联文件。调试时偶尔翻翻,比git log直观。
踩坑记录
Worker没启动
装完后发现新会话没有注入上下文,先查Worker状态:
curl http://localhost:37777/health
没响应的话手动启动:
cd ~/.claude-mem && npm run worker:start
v4.0+版本正常会自动启动,但偶尔出问题。
看看数据库里存了什么
直接查SQLite:
sqlite3 ~/.claude-mem/claude-mem.db
-- 最近10个会话
SELECT session_id, project, created_at
FROM sdk_sessions
ORDER BY created_at DESC LIMIT 10;
-- 会话摘要
SELECT request, completed, learned
FROM session_summaries
ORDER BY created_at DESC LIMIT 5;
Token消耗
claude-mem注入上下文会占token。50条观察记录大概2000-4000 token,不算多但也不能忽略。每天开很多会话的话累积起来有成本。
建议CLAUDE_MEM_CONTEXT_OBSERVATIONS设30-50,够用就行。
隐私
如果有操作不想被记录(比如处理敏感配置),可以在settings里把对应工具类型加进SKIP_TOOLS列表。
claude-mem和CLAUDE.md一起用
不冲突。
CLAUDE.md放不变的东西——项目架构、技术选型、代码规范、常用命令。手动维护,一个项目写一次。
claude-mem记变化的东西——调试过程、最近改的文件、bug和解决方案。自动捕获,不用你管。
一个是长期记忆,一个是工作记忆。
写在最后
claude-mem解决了Claude Code跨会话失忆的问题。一条命令装好,不改工作流,后台自动跑。
每天用Claude Code写代码的话,装上试试。最直接的好处:新会话不用再花时间"热身"了。
项目地址:https://github.com/thedotmack/claude-mem
更多推荐



所有评论(0)