如何用 CONTEXT_MODE_DIR 把 context-mode 的数据存储目录改到自定义路径?

发布时间:2026/9/13 6:14:39
如何用 CONTEXT_MODE_DIR 把 context-mode 的数据存储目录改到自定义路径? 如何用 CONTEXT_MODE_DIR 把 context-mode 的数据存储目录改到自定义路径【免费下载链接】context-modeContext window optimization for AI coding agents. Sandboxes tool output (98% reduction), persists session memory, and enforces routing across 17 platforms via MCP hooks.项目地址: https://gitcode.com/GitHub_Trending/cl/context-modecontext-mode 把每次 AI 编码会话的事件、统计数据和索引内容存在本地磁盘上。默认情况下它使用各平台适配器的默认目录例如~/.codex/context-mode或~/.claude/context-mode。当默认的适配器目录不可写比如 Codex 进程没有权限写到它自己的配置目录或者你希望统一管理存储位置时可以用环境变量CONTEXT_MODE_DIR把整个存储根改到一个自定义的绝对路径。该变量自 v1.0.147 起可用。这个变量到底控制什么CONTEXT_MODE_DIR是 context-mode 存储的根目录三类数据都从它派生数据类型实际目录会话事件sessionsroot/sessions统计statsroot/sessions与会话共用索引内容contentroot/content例如把CONTEXT_MODE_DIR设为/home/user/ctx-store那么会话和统计写在/home/user/ctx-store/sessions索引内容写在/home/user/ctx-store/content。这个解析逻辑定义在 src/session/db.ts 的resolveSessionStorageDir/resolveContentStorageDir/resolveStatsStorageDir中。对变量的取值有三条硬性规则见 README.md 的 Storage environment variables 一节必须填绝对路径非空值写相对路径会被拒绝空字符串或纯空白值按“未设置”处理回退到适配器默认目录~不会被展开写~/ctx-store无效要写$HOME/ctx-store这类由 shell 展开的绝对路径。配置步骤前提已按 README.md 为所用平台安装好 context-modeMCP 服务器 hooks且版本不低于 v1.0.147。关键点变量必须设置在启动 Agent 的那个环境里。MCP 服务器进程和 hooks 都从该环境继承变量所以在 shell 里设置后再启动 Agent两者会解析到同一个根。README 给出的 Codex 场景示例Codex 无法写入适配器默认存储目录时CONTEXT_MODE_DIR$HOME/.codex-context-mode codex这里的$HOME/.codex-context-mode是文档示例路径替换为你自己的可写绝对路径即可。该写法只对当前这一次启动生效想让它对多次启动生效把同样的export CONTEXT_MODE_DIR...放进你的 shell 配置或 Agent 的启动脚本让每次启动 Agent 的进程都能继承它。验证用 ctx_doctor 看三个存储目录改完后让 Agent 调用 context-mode 的ctx_doctor工具服务端只读诊断见 src/server.ts报告里会有三行 Storage 输出[OK] Storage sessions: /home/user/.codex-context-mode/sessions (via CONTEXT_MODE_DIR) [OK] Storage content: /home/user/.codex-context-mode/content (via CONTEXT_MODE_DIR) [OK] Storage stats: /home/user/.codex-context-mode/sessions (via CONTEXT_MODE_DIR)以上为按文档规则构造的示例输出。判断标准只有一个括号里显示(via CONTEXT_MODE_DIR)且路径以你设置的根开头说明覆盖已生效对应测试见 tests/core/server.test.ts。配置没生效或报错时看这里对照ctx_doctor的报告和报错信息四种情况分别有明确信号相对路径被拒绝变量填了相对路径时context-mode 抛出CONTEXT_MODE_DIR must be an absolute path.见 tests/core/server.test.ts。检查是否误写成了./ctx或ctx-store。值被当成未设置变量为空或纯空白时ctx_doctor的 Storage 行会显示(default; ignored empty CONTEXT_MODE_DIR)此时仍在用适配器默认目录。这通常说明环境没把变量传进来或值只有空格。目录不可写根路径存在但没有写权限时存储相关工具如ctx_index会返回可操作的存储错误其中包含提示Set CONTEXT_MODE_DIR to a writable absolute path.见 tests/core/server.test.ts。换一个有写权限的目录即可。旧变量冲突CONTEXT_MODE_SESSION_DIR已弃用statusline 会提示CONTEXT_MODE_SESSION_DIR is deprecated; set CONTEXT_MODE_DIR to the parent context-mode root.见 bin/statusline.mjs。如果你还在设置旧变量改设为指向父级 context-mode 根目录的CONTEXT_MODE_DIR。注意一个细节会话和统计共用root/sessions索引内容在root/content所以“把数据挪到新根”是一次性整体迁移ctx_doctor里三行 Storage 应同时指向新根如果只有一行变了说明该组件进程没继承到变量比如 hooks 与 MCP 服务器由不同环境启动。限制该变量是环境变量级别的覆盖没有提供配置文件写法想让哪个平台的 Agent 生效就要保证启动它的环境里带上这个变量。~不展开这是 context-mode 侧的行为依赖 shell 展开$HOME时写法要经过实际 shell 生效后才可靠。变量只改变新写入的位置默认目录里已有的会话数据库和索引内容不会自动搬过去历史数据仍留在原路径。【免费下载链接】context-modeContext window optimization for AI coding agents. Sandboxes tool output (98% reduction), persists session memory, and enforces routing across 17 platforms via MCP hooks.项目地址: https://gitcode.com/GitHub_Trending/cl/context-mode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考