
为 AI 编程助手节省上下文的 MCP 插件 · 中文技术部署文档
项目仓库:https://github.com/mksglu/context-mode
当前版本 1.0.169 · 协议 Elastic License 2.0 · 运行环境 Node.js ≥ 22.5(或 Bun)

1 项目简介
Context Mode 是一个运行在 MCP(Model Context Protocol)协议层的插件 / 服务器,定位为“上下文问题的另一半解法”。它把工具产生的原始数据隔离在本地沙箱中,只把处理结果送入模型上下文;同时通过本地全文检索与会话记忆,解决对话被压缩后模型遗忘工作进度的问题。
与传统“在云端仪表盘里分析输出”的方案不同,Context Mode 完全在本机运行:代码、提示词与会话数据都不离开你的机器,无遥测、无云同步、无需账号。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | context-mode |
| 仓库地址 | github.com/mksglu/context-mode |
| npm 包 | npmjs.com/package/context-mode |
| 当前版本 | 1.0.169(以 npm 仓库实时版本为准) |
| 开源协议 | Elastic License 2.0(ELv2,源码可见) |
| 运行环境 | Node.js ≥ 22.5.0,或 Bun |
| 命令入口 | context-mode(npm 包 bin 映射到 cli.bundle.mjs) |
| 支持范围 | 17 个 AI 编程客户端,另加 OpenClaw 网关集成 |
| 会话内命令 | ctx stats / doctor / index / search / upgrade / purge / insight |
说明:GitHub Star、Fork 等实时统计以仓库页面徽章为准;本文不填写未经接口核实的精确 Star 数量。
1.2 适用场景
- 使用 Claude Code、Codex、Cursor、Gemini CLI 等 AI 编程助手,但上下文窗口很快被日志、网页快照、Issue 列表、接口返回等原始数据占满。
- 希望在对话被压缩(compaction)后,模型仍能记得正在修改的文件、进行中的任务、已做决策与未解决的报错。
- 希望把大段文档、网页、代码库索引到本地知识库,按需检索相关片段,而不是每次把全文重新送入上下文。
- 对隐私敏感:要求代码与会话数据留在本机,不经过第三方云端分析服务。
2 它要解决的问题
每一次 MCP 工具调用都会把原始数据直接倾倒进上下文窗口。根据官方 README 的实测口径:
- 一次 Playwright 网页快照约 56 KB;
- 20 个 GitHub Issue 合计约 59 KB;
- 一份访问日志约 45 KB。 持续工作约 30 分钟后,上下文已有约 40% 被这类原始数据占用。当助手为腾出空间而压缩对话时,模型会忘记正在修改哪些文件、哪些任务还在进行、你最后提出的要求是什么。此外,模型还会在最终回答上消耗输出 token 用于客套话、铺垫和冗长解释,从上下文两侧同时“烧”掉额度。
Context Mode 针对问题的四个方面同时给出解法:
| 问题侧 | 对应能力 | 官方口径 |
|---|---|---|
| 原始数据涌入上下文 | Context Saving(沙箱隔离) | 315 KB 原始输出压缩到 5.4 KB,缩减约 98% |
| 压缩后遗忘工作进度 | Session Continuity(会话连续性) | 事件写入 SQLite,压缩后经检索只取回相关片段 |
| 模型充当数据处理器 | Think in Code(用代码计算) | 一个脚本替代十次工具调用,约节省 100 倍上下文 |
| 强制模型文风 / 篇幅 | No prose-style enforcement | 只约束数据去向,不规定模型如何措辞 |
3 核心工作原理

3.1 沙箱隔离:原始数据不进上下文(Context Saving)
每一次 ctx_execute 调用都会启动一个独立的子进程,拥有独立的进程边界:脚本之间无法互相访问内存或状态。子进程运行代码、捕获标准输出,只有标准输出进入对话上下文;日志文件、接口响应、网页快照等原始数据始终不离开沙箱。
当输出超过 5 KB 且提供了 intent(意图)参数时,Context Mode 切换为意图驱动过滤:把完整输出索引进知识库,只检索并返回与意图匹配的片段,同时给出可用于后续查询的检索词。
沙箱内可运行 12 种语言运行时:JavaScript、TypeScript、Python、Shell、Ruby、Go、Rust、PHP、Perl、R、Elixir、C#;检测到 Bun 时会自动使用 Bun,JS/TS 执行速度提升 3 至 5 倍。已认证的命令行工具(gh、aws、gcloud、kubectl、docker 等)通过凭证透传工作:继承环境变量与配置路径,但不会把凭证暴露给对话。
3.2 会话记忆:压缩后精准恢复(Session Continuity)
会话期间每一个有意义的事件都会被捕获,并持久化到按项目隔离的 SQLite 数据库。对话被压缩、或使用 --continue、--resume、/resume 恢复时,工作状态会自动重建,模型从你的最后一条提示词继续,无需重复交代背景。
被记录的事件类别包括:文件读写与修改、任务创建与完成、计划进入 / 退出 / 批准 / 驳回、规则文件路径与内容、用户提示词、用户纠正与偏好、Git 操作、工具报错、报错与修复配对、已发现的限制、阻塞项、被拒绝的方案、环境变化、子代理结论、重复调用循环、延迟、MCP 工具调用次数、技能调用、外部链接引用、角色设定、会话意图与大段粘贴数据等。
压缩前,PreCompact 钩子读取全部会话事件,构建一个优先级分层、不超过 2 KB 的 XML 快照并写入 session_resume 表;压缩后 SessionStart 钩子取回快照,生成包含 15 类条目的 Session Guide(最后请求、任务、计划、关键决策、已修改文件、未解决报错、限制、阻塞项、Git、项目规则、已用 MCP 工具、子代理任务、已用技能、被拒绝方案、外部引用、环境、数据引用、会话意图、用户角色等),注入 <session_knowledge> 指令后让模型接着工作。详细事件数据同时索引进 FTS5,可通过 ctx_search 按需检索。
若会话未带 --continue,上一次会话数据会被立即删除——新会话从干净状态开始。
3.3 用代码计算:让模型写脚本而不是读文件(Think in Code)
官方主张:LLM 应当负责编写分析程序,而不是亲自完成计算。与其把 50 个文件读进上下文再逐个统计函数数量,不如由助手写一段脚本完成统计,只把 console.log 的结果回传。一个脚本替代十次工具调用,约节省 100 倍上下文。这一范式在全部受支持客户端与 OpenClaw 网关中统一执行:不要把 LLM 当作数据处理器,而要把它当作代码生成器。
// 改造前:47 次 Read() = 700 KB;改造后:1 次 ctx_execute() = 3.6 KB
ctx_execute("javascript", `
const files = fs.readdirSync('src').filter(f => f.endsWith('.ts'));
files.forEach(f => console.log(f + ': ' + fs.readFileSync('src/'+f,'utf8').split('\\n').length + ' lines'));
`);3.4 不强制文风(No prose-style enforcement)
Context Mode 只保证原始数据不进入上下文,从不规定模型最终回答该如何写。简洁、完整、格式如何,由模型自身决定,也可以通过你自己的 CLAUDE.md / AGENTS.md 等规则文件约束。官方说明:过于激进的“简洁提示词”已被证明会降低编码与推理基准表现,因此路由规则只聚焦“数据去哪里”,不干预“模型怎么说话”。
3.5 本地知识库与检索机制
ctx_index 按标题对 Markdown 分块并保留代码块完整,存入 SQLite FTS5 全文检索虚拟表;检索使用 BM25 概率相关性算法,按词频、逆文档频率与文档长度归一化打分。索引时应用 Porter 词干提取,使 running、runs、ran 匹配同一词干;标题与标题文字在 BM25 打分中权重为正文的 5 倍,便于精确的导航式查询。
检索采用两条并行策略再用倒数排名融合(RRF)合并:一是 Porter 词干的 FTS5 MATCH,二是 Trigram 子串匹配(useEff 可命中 useEffect,authenticat 可命中 authentication)。多词查询额外做邻近重排,查询词彼此靠近的段落获得更高权重;再用 Levenshtein 距离在重新检索前纠正拼写错误(kuberntes → kubernetes)。结果采用智能片段抽取,围绕匹配词返回窗口,而不是简单截断前 N 个字符。
索引内容持久化在按项目隔离的 SQLite 数据库中,默认路径 ~/.context-mode/content/。URL 抓取结果默认缓存 24 小时,可在单次调用中用 ttl(毫秒)覆盖;ttl: 0 或 force: true 可绕过缓存;启动时自动清理超过 14 天的内容数据库与来源。
4 内置工具一览
插件共注册 11 个 MCP 工具:6 个沙箱工具与 5 个元工具。下表“上下文节省”一列数据来自官方 README 工具表。
| 工具 | 作用 | 上下文节省(官方口径) |
|---|---|---|
| ctx_batch_execute | 一次调用执行多条命令、发起多个检索;I/O 密集批处理可选 concurrency 1–8 | 986 KB → 62 KB |
| ctx_execute | 在 12 种语言中运行代码,只有标准输出进入上下文 | 56 KB → 299 B |
| ctx_execute_file | 在沙箱内处理文件,原始内容不离开沙箱 | 45 KB → 155 B |
| ctx_index | 将 Markdown 分块索引到 FTS5,按 BM25 排序 | 60 KB → 40 B |
| ctx_search | 一次调用携带多个查询检索已索引内容 | 按需检索 |
| ctx_fetch_and_index | 抓取 URL 后分块索引;TTL 内复用缓存;支持多 URL 并发 | 60 KB → 40 B |
| ctx_stats | 查看上下文节省、调用次数与会话统计 | — |
| ctx_doctor | 诊断安装:运行时、钩子、FTS5、版本 | — |
| ctx_upgrade | 从 GitHub 升级到最新版本、重建、重新配置钩子 | — |
| ctx_purge | 永久删除知识库中全部已索引内容 | — |
| ctx_insight | 在浏览器打开托管的 Insight 团队分析仪表盘 | — |
渐进限流:第 1–3 次检索返回常规结果(每查询 2 条);第 4–8 次减少结果(每查询 1 条)并给出提示;第 9 次起拦截,引导改用 ctx_batch_execute。
5 兼容平台与路由方式
官方共支持 17 个 AI 编程客户端,另提供 OpenClaw 网关集成。支持钩子(Hook)的平台可在程序层面自动拦截与路由;不支持钩子的平台需要一次性复制路由指令文件。钩子可在工具执行前拦截危险命令并将其重定向到沙箱;指令文件只能通过提示词引导模型,无法真正拦截命令。因此官方建议:在支持钩子的平台上务必启用钩子。
| 平台 | 钩子 | 路由指令文件 | 启用钩子 | 未启用钩子 |
|---|---|---|---|---|
| Claude Code | 是(自动) | CLAUDE.md | 约节省 98% | 约节省 60% |
| Gemini CLI | 是 | GEMINI.md | 约节省 98% | 约节省 60% |
| VS Code Copilot | 是 | copilot-instructions.md | 约节省 98% | 约节省 60% |
| JetBrains Copilot | 是 | copilot-instructions.md | 约节省 98% | 约节省 60% |
| GitHub Copilot CLI | 是 | copilot-instructions.md | 约节省 98% | 约节省 60% |
| Cursor | 是 | context-mode.mdc | 约节省 98% | 约节省 60% |
| OpenCode | 插件 | AGENTS.md | 约节省 98% | 约节省 60% |
| KiloCode | 插件 | AGENTS.md | 约节省 98% | 约节省 60% |
| OpenClaw | 插件 | AGENTS.md | 约节省 98% | 约节省 60% |
| Codex CLI | 是 | AGENTS.md | 约节省 98% | 约节省 60% |
| Antigravity IDE | 否 | GEMINI.md | — | 约节省 60% |
| Antigravity CLI(agy) | 受限 | 路由规则 + 技能 | 受限拦截 Bash/Read/Grep/WebFetch | 约节省 60% |
| Kiro | 是 | KIRO.md | 约节省 98% | 约节省 60% |
| Zed | 否 | AGENTS.md | — | 约节省 60% |
| Pi Coding Agent | 是(扩展) | AGENTS.md | 约节省 98% | 约节省 60% |
| OMP(Oh My Pi) | 插件 | SYSTEM.md | 约节省 98% | 约节省 60% |
Qwen Code、Kimi Code 同样配置 PreToolUse / PostToolUse / SessionStart / PreCompact / UserPromptSubmit 等钩子;完整能力对照见官方文档 platform-support.md。
完整平台能力对照:docs/platform-support.md
6 环境准备
6.1 运行时要求
- Node.js ≥ 22.5.0,或安装 Bun;Linux 上 Node < 22.5 不受支持,npm install 会失败并给出修复提示。
- 在 glibc ≥ 2.31 的系统(Ubuntu 20.04+、Debian 11+、Fedora 34+、macOS、Windows)上,npm install 无需任何构建工具。 SQLite 后端在运行时自动选择:Bun 环境使用内置 bun:sqlite;Linux + Node.js ≥ 22.5 使用内置 node:sqlite;其余环境使用 better-sqlite3。Bun 用户无需原生编译,会自动跳过 better-sqlite3 及其全部构建依赖。
6.2 老旧系统构建依赖(CentOS、RHEL、Alpine)
在 glibc 较老的系统(CentOS 7/8、RHEL 8、Debian 10)上,预编译二进制无法加载,better-sqlite3 会自动回退到源码编译(prebuild-install || node-gyp rebuild --release),需要 C++20 编译器(GCC 10+)、Make 与带 setuptools 的 Python。
6.2.1 CentOS 8 / RHEL 8(glibc 2.28)
dnf install -y gcc-toolset-10-gcc gcc-toolset-10-gcc-c++ make python3 python3-setuptools
scl enable gcc-toolset-10 'npm install -g context-mode'6.2.2 CentOS 7 / RHEL 7(glibc 2.17)
yum install -y centos-release-scl
yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++ make python3
pip3 install setuptools
scl enable devtoolset-10 'npm install -g context-mode'6.2.3 Alpine Linux
better-sqlite3 v12.8.0+ 已提供 musl 预编译二进制;依赖范围 ^12.6.2 会解析到最新 12.x,通常无需构建工具。若固定了旧版本:
apk add build-base python3 py3-setuptools
npm install -g context-modeWindows 或绑定缺失时,postinstall 脚本与运行时钩子会自动重新拉取预编译产物并修复绑定,无需手动 npm rebuild。
7 分平台安装部署

平台按安装复杂度分组。支持钩子的平台可获得自动路由强制;不支持钩子的平台需要一次性复制路由指令文件。下列命令与配置均逐字取自官方 README,版本与路径以官方仓库为准。
7.1 Claude Code(插件市场,全自动)
**前置要求:**Claude Code v1.0.33 及以上(执行 claude --version 查看)。若 /plugin 命令无法识别,先升级:brew upgrade claude-code 或 npm update -g @anthropic-ai/claude-code。
安装:
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode重启 Claude Code,或执行 /reload-plugins。
验证:
/context-mode:ctx-doctor全部检查项应显示 [x]。doctor 会校验运行时、钩子、FTS5 与插件注册情况。
**路由方式:**全自动。SessionStart 钩子在运行时注入路由指令,不会向你的项目写入文件。插件注册全部钩子(PreToolUse、PostToolUse、UserPromptSubmit、PreCompact、SessionStart、Stop)与 11 个 MCP 工具。
Claude Code 专属斜杠命令:
| 斜杠命令 | 作用 |
|---|---|
| /context-mode:ctx-stats | 上下文节省情况:按工具拆分、消耗 token、节省比例 |
| /context-mode:ctx-doctor | 诊断:运行时、钩子、FTS5、插件注册、版本 |
| /context-mode:ctx-index | 将本地文件或目录索引到持久化 FTS5 知识库 |
| /context-mode:ctx-search | 检索此前已索引的内容 |
| /context-mode:ctx-upgrade | 拉取最新版本、重建、迁移缓存、修复钩子 |
| /context-mode:ctx-purge | 永久删除知识库中全部已索引内容 |
| /context-mode:ctx-insight | 在浏览器打开托管的 Insight 仪表盘 |
可选状态行:插件清单无法声明状态行,需手动编辑 ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "context-mode statusline"
}
}保存后重启 Claude Code。状态栏显示“本次会话节省 · 累计节省 · 效率百分比”,可实时看到节省累积。
备选:仅安装 MCP(不装钩子与斜杠命令):
claude mcp add context-mode -- npx -y context-mode该方式提供全部 11 个 MCP 工具,但没有自动路由,模型不会被引导优先使用沙箱工具,适合在完整接入前先试用。
7.2 Gemini CLI(一个配置文件,含钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 Gemini CLI。
第一步,全局安装 context-mode:
npm install -g context-mode第二步,将以下内容加入 ~/.gemini/settings.json,该文件同时注册 MCP 服务器与全部四个钩子:
{
"mcpServers": {
"context-mode": { "command": "context-mode" }
},
"hooks": {
"BeforeTool": [
{
"matcher": "run_shell_command|read_file|read_many_files|grep_search|search_file_content|web_fetch|activate_skill|mcp__plugin_context-mode|mcp__context-mode|mcp__(?!.*context-mode)",
"hooks": [{ "type": "command", "command": "context-mode hook gemini-cli beforetool" }]
}
],
"AfterTool": [
{ "matcher": "", "hooks": [{ "type": "command", "command": "context-mode hook gemini-cli aftertool" }] }
],
"PreCompress": [
{ "matcher": "", "hooks": [{ "type": "command", "command": "context-mode hook gemini-cli precompress" }] }
],
"SessionStart": [
{ "matcher": "", "hooks": [{ "type": "command", "command": "context-mode hook gemini-cli sessionstart" }] }
]
}
}第三步,重启 Gemini CLI。
验证:执行 /mcp list,应看到 context-mode: ... - Connected。
**路由方式:**由 SessionStart 钩子自动注入。可选复制路由指令文件,让模型完整感知路由规则:
cp node_modules/context-mode/configs/gemini-cli/GEMINI.md ./GEMINI.md7.3 VS Code Copilot(含 SessionStart 钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),VS Code 已安装 Copilot Chat v0.32+。
第一步,全局安装:
npm install -g context-mode第二步,在项目根目录创建 .vscode/mcp.json:
{
"servers": {
"context-mode": { "command": "context-mode" }
}
}第三步,创建 .github/hooks/context-mode.json:
{
"hooks": {
"PreToolUse": [{ "type": "command", "command": "context-mode hook vscode-copilot pretooluse" }],
"PostToolUse": [{ "type": "command", "command": "context-mode hook vscode-copilot posttooluse" }],
"SessionStart": [{ "type": "command", "command": "context-mode hook vscode-copilot sessionstart" }]
}
}第四步,重启 VS Code。
验证:打开 Copilot Chat 输入 ctx stats,context-mode 工具应出现并响应。
**路由方式:**由 SessionStart 钩子自动注入。可选复制路由指令文件:
cp node_modules/context-mode/configs/vscode-copilot/copilot-instructions.md .github/copilot-instructions.md7.4 JetBrains Copilot(含 SessionStart 钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),JetBrains IDE 已安装 GitHub Copilot 插件 v1.5.57+。
第一步,全局安装:
npm install -g context-mode第二步,通过设置界面添加 MCP 服务器:Settings > Tools > AI Assistant > Model Context Protocol (MCP) > Add Server,Name 填 context-mode,Command 填 context-mode。
第三步,创建 .github/hooks/context-mode.json:
{
"hooks": {
"PreToolUse": [{ "type": "command", "command": "context-mode hook jetbrains-copilot pretooluse" }],
"PostToolUse": [{ "type": "command", "command": "context-mode hook jetbrains-copilot posttooluse" }],
"SessionStart": [{ "type": "command", "command": "context-mode hook jetbrains-copilot sessionstart" }]
}
}第四步,重启 JetBrains IDE。
验证:打开 Copilot Chat 输入 ctx stats,工具应出现并响应。
**路由方式:**由 SessionStart 钩子自动注入。可选复制路由指令文件:
cp node_modules/context-mode/configs/jetbrains-copilot/copilot-instructions.md .github/copilot-instructions.md7.5 GitHub Copilot CLI(MCP + 钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 GitHub Copilot CLI(copilot)。若使用隔离的 Copilot 主目录,先设置 COPILOT_HOME。
方案 A(推荐,插件一条命令):
npm install -g context-mode # 插件的 MCP 服务器运行全局二进制
copilot plugin install mksglu/context-mode:configs/copilot-cli # 注册 MCP + 钩子 + 路由技能插件包的 .mcp.json 固定 CONTEXT_MODE_PLATFORM=copilot-cli,使 context-mode 自识别为 Copilot;即使与 Claude Code 共存,ctx_upgrade 与平台检测也能正确解析为 copilot-cli,无需再执行 context-mode upgrade 或让代理调用。
方案 B(手动,不使用插件):
第一步,全局安装:
npm install -g context-mode第二步,用 Copilot CLI 内置命令注册 MCP 服务器(自动写入 ~/.copilot/mcp-config.json):
copilot mcp add context-mode -- context-mode第三步,在 ~/.copilot/hooks/context-mode.json(或 $COPILOT_HOME/hooks/context-mode.json)配置钩子。Copilot CLI 触发六个事件:
{
"version": 1,
"hooks": {
"preToolUse": [{ "type": "command", "command": "context-mode hook copilot-cli pretooluse" }],
"postToolUse": [{ "type": "command", "command": "context-mode hook copilot-cli posttooluse" }],
"preCompact": [{ "type": "command", "command": "context-mode hook copilot-cli precompact" }],
"sessionStart": [{ "type": "command", "command": "context-mode hook copilot-cli sessionstart" }],
"userPromptSubmitted": [{ "type": "command", "command": "context-mode hook copilot-cli userpromptsubmit" }],
"agentStop": [{ "type": "command", "command": "context-mode hook copilot-cli stop" }]
}
}也可在 Copilot CLI 上下文中执行 context-mode upgrade(或带 CONTEXT_MODE_PLATFORM=copilot-cli),由其写入该钩子文件;MCP 服务器仍需用第二步的 copilot mcp add 注册。
第四步,重启 Copilot CLI。
验证:在会话中输入 ctx stats;再执行 context-mode doctor 确认钩子与 MCP 注册。
版本说明:钩子命令运行全局 context-mode,因此需要具备 Copilot CLI 支持的版本;旧版本上钩子不生效(不拦截、不捕获),但不会阻断工具使用,升级命令为 npm install -g context-mode@latest。
7.6 Cursor(含 stop 支持的钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),Cursor 已开启 agent 模式。
市场插件仍在等待 Cursor 团队审核;上架前请使用下方本地文件夹方式安装。
方案 A:本地文件夹方式(市场上架前使用)。Windows 上 Cursor 不跟随符号链接,需使用 robocopy:
git clone https://github.com/mksglu/context-mode.git
cd context-mode
robocopy . "$env:USERPROFILE\.cursor\plugins\local\context-mode" /MIR `
/XD node_modules .git build web tests scripts .vscode `
/XF *.log .gitignore *.bundle.mjs.mapmacOS / Linux:
git clone https://github.com/mksglu/context-mode.git
ln -s "$PWD/context-mode" ~/.cursor/plugins/local/context-mode重启 Cursor,插件将出现在 Settings > Plugins 中,名称为 Context Mode (Local);更新时重新执行同一行复制命令即可。
方案 B:手动安装。第一步,全局安装:
npm install -g context-mode第二步,在项目根目录创建 .cursor/mcp.json(全局则用 ~/.cursor/mcp.json):
{
"mcpServers": {
"context-mode": { "command": "context-mode" }
}
}第三步,创建 .cursor/hooks.json(全局则用 ~/.cursor/hooks.json):
{
"version": 1,
"hooks": {
"preToolUse": [
{
"command": "context-mode hook cursor pretooluse",
"matcher": "Shell|Read|Grep|WebFetch|Task|MCP:ctx_execute|MCP:ctx_execute_file|MCP:ctx_batch_execute"
}
],
"postToolUse": [{ "command": "context-mode hook cursor posttooluse" }],
"stop": [{ "command": "context-mode hook cursor stop" }]
}
}第四步,复制路由规则文件。Cursor 没有 SessionStart 钩子,模型需要规则文件来感知路由:
mkdir -p .cursor/rules
cp node_modules/context-mode/configs/cursor/context-mode.mdc .cursor/rules/context-mode.mdc第五步,重启 Cursor 或新建 agent 会话。
验证:打开 Cursor Settings > MCP,确认 context-mode 显示为 connected;在 agent 对话中输入 ctx stats。
已知限制:Cursor 会接受钩子响应中的 additional_context,但不会把它呈现给模型;路由依赖 .mdc 规则文件,而非钩子上下文注入。
7.7 OpenCode(TypeScript 插件,含钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 OpenCode。
第一步,在项目根目录 opencode.json(全局则用 ~/.config/opencode/opencode.json)中加入:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["context-mode"]
}plugin 条目原生注册全部 11 个 ctx_* 工具并启用钩子;OpenCode 在进程内调用 context-mode 的 TypeScript 插件,不会为每个会话额外派生 stdio MCP 子进程。
第二步(可选),复制路由规则文件,让模型感知路由:
cp node_modules/context-mode/configs/opencode/AGENTS.md AGENTS.md第三步,重启 OpenCode。验证:在会话中输入 ctx stats,工具应出现并响应。
升级注意:若现有配置同时存在 plugin: ["context-mode"] 与 mcp.context-mode,OpenCode 将注册不到任何 ctx_ 工具。执行 context-mode upgrade 移除遗留的 mcp.context-mode 条目,其他 MCP 服务器保留。*
7.8 KiloCode(TypeScript 插件,含钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 KiloCode。
第一步,在项目根目录 kilo.json(全局则用 ~/.config/kilo/kilo.json)中加入:
{
"$schema": "https://app.kilo.ai/config.json",
"plugin": ["context-mode"]
}第二步(可选),复制路由规则文件。KiloCode 与 OpenCode 共享插件架构,同样需要 AGENTS.md:
cp node_modules/context-mode/configs/opencode/AGENTS.md AGENTS.md第三步,重启 KiloCode。验证:在会话中输入 ctx stats。
升级注意与 OpenCode 相同:不要同时配置 plugin 与 mcp.context-mode;必要时执行 context-mode upgrade 清理遗留 MCP 条目。
7.9 OpenClaw / Pi Agent(原生网关插件)
**前置要求:**OpenClaw 网关运行中(版本 > 2026.1.29),Node.js 22+。
与其他平台不同,这里没有独立的 MCP 服务器——插件通过 OpenClaw 插件 API 直接注册进网关运行时,面向 Pi Agent 会话(Read/Write/Edit/Bash 工具)。
第一步,克隆并安装:
git clone https://github.com/mksglu/context-mode.git
cd context-mode
npm run install:openclaw安装器读取环境变量 $OPENCLAW_STATE_DIR(默认 /openclaw);自定义路径:
npm run install:openclaw -- /path/to/openclaw-state常见位置:Docker 默认为 /openclaw;本地为 ~/.openclaw 或自行设置的 OPENCLAW_STATE_DIR。安装器自动完成 npm install、npm run build、better-sqlite3 原生重建、runtime.json 扩展注册,并通过 SIGUSR1 重启网关。
第二步,打开 Pi Agent 会话。验证:插件通过 api.on() 与 api.registerHook() 注册 8 个钩子;输入 ctx stats 确认工具已加载。
**路由方式:**全自动,无需手动配置钩子或路由文件。
最低版本:OpenClaw > 2026.1.29,该版本包含 api.on() 生命周期修复;旧版本生命周期钩子会静默失效,适配器回退到数据库快照重建(精度较低但保留关键状态)。
7.10 Codex CLI(MCP + 钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 Codex CLI。
第一步,添加 context-mode 市场并从 Codex 插件界面安装插件:
codex plugin marketplace add mksglu/context-mode第二步,在插件钩子仍处于功能开关阶段时启用插件钩子:
[features]
plugin_hooks = true
hooks = true若 Codex 无法写入适配器默认存储目录,可在启动 Codex 的环境中设置 CONTEXT_MODE_DIR 为可写绝对路径:
CONTEXT_MODE_DIR="$HOME/.codex-context-mode" codex第三步,重启 Codex CLI,用 ctx stats 验证 MCP。ctx stats 只能证明插件 MCP 服务器已安装可达,不能证明钩子已被信任并运行。
第四步,若 Codex 提示审批插件钩子,需审阅并信任 context-mode 插件钩子;只有两个功能开关都启用且 Codex 接受钩子命令后,插件钩子才生效。
手动回退(用于未提供 plugin_hooks 的 Codex 构建):
第一步,全局安装:
npm install -g context-mode第二步,加入 ~/.codex/config.toml:
[features]
hooks = true
[mcp_servers.context-mode]
command = "context-mode"
[mcp_servers.context-mode.env]
CONTEXT_MODE_PLATFORM = "codex"第三步,创建 $CODEX_HOME/hooks.json(CODEX_HOME 未设置时用 ~/.codex/hooks.json):
{
"hooks": {
"PreToolUse": [{ "matcher": "local_shell|shell|shell_command|exec_command|Bash|Shell|apply_patch|Edit|Write|grep_files|ctx_execute|ctx_execute_file|ctx_batch_execute|ctx_fetch_and_index|ctx_search|ctx_index|mcp__", "hooks": [{ "type": "command", "command": "context-mode hook codex pretooluse" }] }],
"PostToolUse": [{ "hooks": [{ "type": "command", "command": "context-mode hook codex posttooluse" }] }],
"SessionStart": [{ "hooks": [{ "type": "command", "command": "context-mode hook codex sessionstart" }] }],
"PreCompact": [{ "hooks": [{ "type": "command", "command": "context-mode hook codex precompact" }] }],
"UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "context-mode hook codex userpromptsubmit" }] }],
"Stop": [{ "hooks": [{ "type": "command", "command": "context-mode hook codex stop" }] }]
}
}第四步,复制路由指令文件(即使已配置钩子也建议复制,以获得完整路由感知):
CM_ROOT="$(npm root -g)/context-mode"
cp "$CM_ROOT/configs/codex/AGENTS.md" ./AGENTS.md全局使用时复制到 ~/.codex/AGENTS.md;两者同时存在时 Codex CLI 会合并。第五步,重启 Codex CLI。
Codex 的 PreToolUse 目前仅支持 deny 规则(拦截危险命令),输入改写仍需上游 updatedInput 支持;PreToolUse 不支持上下文注入,上下文注入通过 PostToolUse 与 SessionStart 完成。
7.11 Kimi Code(MCP + 钩子,TOML 配置)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 Kimi Code CLI。
第一步,全局安装:
npm install -g context-mode第二步,在 ~/.kimi-code/mcp.json 中添加 MCP 服务器:
{
"mcpServers": {
"context-mode": { "command": "context-mode", "args": [] }
}
}第三步,在 ~/.kimi-code/config.toml 中添加钩子:
[[hooks]]
event = "PreToolUse"
matcher = "Bash|Shell|Read|Edit|Write|WebFetch|Agent|ctx_execute|ctx_execute_file|ctx_batch_execute|ctx_fetch_and_index|ctx_search|ctx_index|mcp__"
command = "context-mode hook kimi pretooluse"
timeout = 30
[[hooks]]
event = "PostToolUse"
command = "context-mode hook kimi posttooluse"
timeout = 30
[[hooks]]
event = "SessionStart"
command = "context-mode hook kimi sessionstart"
timeout = 30
[[hooks]]
event = "PreCompact"
command = "context-mode hook kimi precompact"
timeout = 30
[[hooks]]
event = "UserPromptSubmit"
command = "context-mode hook kimi userpromptsubmit"
timeout = 30
[[hooks]]
event = "Stop"
command = "context-mode hook kimi stop"
timeout = 30第四步,重启 Kimi Code CLI,用 ctx stats 验证 MCP。
第五步(可选),复制项目路由指令文件:
cp "$(npm root -g)/context-mode/configs/codex/AGENTS.md" ./AGENTS.md7.12 Qwen Code(MCP + 钩子,协议同 Claude Code)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 Qwen Code(npm install -g @qwen-code/qwen-code)。
第一步,全局安装:
npm install -g context-mode第二步,在 ~/.qwen/settings.json 中添加 MCP 服务器:
{
"mcpServers": {
"context-mode": { "command": "context-mode", "args": [] }
}
}第三步,在同一文件中添加钩子用于路由强制与会话跟踪:
{
"hooks": {
"PreToolUse": [{ "matcher": "run_shell_command|read_file|read_many_files|grep_search|web_fetch|agent|mcp__plugin_context-mode_context-mode__ctx_execute|mcp__plugin_context-mode_context-mode__ctx_execute_file|mcp__plugin_context-mode_context-mode__ctx_batch_execute|mcp__(?!.*context-mode)", "hooks": [{ "type": "command", "command": "context-mode hook qwen-code pretooluse" }] }],
"PostToolUse": [{ "matcher": "", "hooks": [{ "type": "command", "command": "context-mode hook qwen-code posttooluse" }] }],
"SessionStart": [{ "matcher": "", "hooks": [{ "type": "command", "command": "context-mode hook qwen-code sessionstart" }] }],
"PreCompact": [{ "matcher": "", "hooks": [{ "type": "command", "command": "context-mode hook qwen-code precompact" }] }],
"UserPromptSubmit": [{ "matcher": "", "hooks": [{ "type": "command", "command": "context-mode hook qwen-code userpromptsubmit" }] }]
}
}第四步,复制路由指令文件:
cp node_modules/context-mode/configs/qwen-code/QWEN.md ./QWEN.md全局使用时复制到 ~/.qwen/QWEN.md。第五步,重启 Qwen Code,输入 ctx stats 验证。
7.13 Antigravity IDE(仅 MCP,无钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 Antigravity 桌面 IDE。
第一步,全局安装:
npm install -g context-mode第二步,在 ~/.gemini/antigravity/mcp_config.json 中添加:
{
"mcpServers": {
"context-mode": { "command": "context-mode" }
}
}第三步,复制路由指令文件(Antigravity 不支持钩子):
cp node_modules/context-mode/configs/antigravity/GEMINI.md ./GEMINI.md第四步,重启 Antigravity,输入 ctx stats 验证。
**路由方式:**手动。GEMINI.md 是唯一强制手段,依从度约 60%,没有程序层面的拦截;平台经 MCP 协议握手自动识别。
7.14 Antigravity CLI(agy,插件:MCP + 技能 + 钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),Antigravity CLI(agy)≥ 1.0.7(用 agy update 升级;已在 agy 1.0.10 验证)。
安装:
npm install -g context-mode # 插件的 MCP 服务器与钩子运行全局二进制
agy plugin install https://github.com/mksglu/context-mode/tree/main/configs/antigravity-cli # 注册 MCP + 规则 + 技能 + 钩子重启 agy。验证:在 agy 会话中输入 ctx stats,或运行 Try It 中的任意提示词查看节省;context-mode doctor 可确认 MCP 与钩子注册。卸载使用 agy plugin uninstall context-mode。
仅安装 MCP(不用插件、不要钩子):跳过插件,把 context-mode 加入 agy 全局 MCP 配置 ~/.gemini/config/mcp_config.json(注意与 Antigravity IDE 的 ~/.gemini/antigravity/ 路径区分),然后重启 agy:
{ "mcpServers": { "context-mode": { "command": "context-mode" } } }7.15 Kiro(钩子 + 引导文件)
**前置要求:**Node.js ≥ 22.5(或 Bun),Kiro 已启用 MCP(Settings 中搜索 MCP)。
第一步,全局安装:
npm install -g context-mode第二步,在项目 .kiro/settings/mcp.json(全局则用 ~/.kiro/settings/mcp.json)中添加:
{
"mcpServers": {
"context-mode": { "command": "context-mode" }
}
}第三步,创建 .kiro/hooks/context-mode.json:
{
"name": "context-mode",
"description": "Context-mode hooks for context window protection",
"hooks": {
"preToolUse": [
{ "matcher": "execute_bash|fs_read|@context-mode/ctx_execute|@context-mode/ctx_execute_file|@context-mode/ctx_batch_execute|@(?!context-mode/)", "command": "context-mode hook kiro pretooluse" }
],
"postToolUse": [
{ "matcher": "*", "command": "context-mode hook kiro posttooluse" }
]
}
}第四步,复制路由指令文件。Kiro 的 agentSpawn(SessionStart 等价物)尚未实现,模型需要会话开始时的路由文件:
cp node_modules/context-mode/configs/kiro/KIRO.md ./KIRO.md第五步,重启 Kiro。验证:打开 Kiro 面板 MCP Servers 标签,确认 context-mode 为绿色状态;对话中输入 ctx stats。
7.16 Zed(仅 MCP,无钩子)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 Zed。
第一步,全局安装:
npm install -g context-mode第二步,在 ~/.config/zed/settings.json(Windows 为 %APPDATA%\Zed\settings.json)中添加:
{
"context_servers": {
"context-mode": { "command": "context-mode", "args": [], "env": {} }
}
}Zed 使用 context_servers 而不是 mcpServers;args 与 env 对 context-mode 可选,此处仅用于匹配 Zed 自定义 MCP 服务器结构。
第三步,复制路由指令文件(Zed 不支持钩子):
cp node_modules/context-mode/configs/zed/AGENTS.md ./AGENTS.md第四步,重启 Zed(保存 settings.json 后 Zed 会自动重启上下文服务器)。
验证:打开 Agent Panel(Cmd+Shift+A)进入设置,查看 context-mode 旁的状态点,绿色即生效;在 agent 对话中输入 ctx stats。
7.17 Pi Coding Agent(扩展,完整钩子支持)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 Pi Coding Agent。
第一步,全局安装:
npm install -g context-mode第二步,将包安装进 Pi:
pi install npm:context-mode备选:手动加入 ~/.pi/agent/settings.json(项目级用 .pi/settings.json):
{ "packages": ["npm:context-mode"] }第三步,在 ~/.pi/agent/mcp.json(项目级用 .pi/mcp.json)中添加:
{
"mcpServers": {
"context-mode": { "command": "context-mode" }
}
}第四步,重启 Pi,输入 ctx stats 验证。扩展注册 tool_call、tool_result、session_start、session_before_compact 等关键生命周期事件,提供完整会话连续性与路由强制。
7.18 OMP(Oh My Pi,插件,完整钩子支持)
**前置要求:**Node.js ≥ 22.5(或 Bun),已安装 Oh My Pi。
方案 A(推荐,插件路径)。第一步,执行插件安装:
omp plugin install context-mode第二步,重启 OMP。第三步,验证:
omp plugin list
omp plugin doctor两者都应显示 context-mode 为 enabled。插件首次加载时会在 ~/.omp/agent/mcp.json 自注册 MCP 服务器(以 node <插件目录>/server.bundle.mjs 启动,因为插件安装包目录不在 PATH 上),重启后 11 个 ctx_* 工具即可访问;已存在的 context-mode 条目不会被覆盖,如需插件重新注册内置路径可先删除旧条目。
方案 B(手动插件路径,当 omp plugin install 不可用):
cd ~/.omp/plugins
bun add context-mode # 或:npm install context-mode随后重启 OMP,无需编辑锁文件或固定版本。
方案 C(仅 MCP,不使用插件)。第一步,全局安装:
npm install -g context-mode第二步,加入 ~/.omp/agent/mcp.json(用户级)或
{
"mcpServers": {
"context-mode": { "command": "context-mode" }
}
}第三步,复制路由指令文件:
cp node_modules/context-mode/configs/omp/SYSTEM.md ~/.omp/agent/SYSTEM.md项目级可复制到 .omp/SYSTEM.md;OMP 也会自动发现项目树中的 AGENTS.md。第四步,重启 OMP,输入 ctx stats 验证。
**路由方式:**插件路径通过四个 pi.on(...) 处理器实现程序强制,依从度约 98%,与 Claude Code 钩子持平;仅 MCP 路径依靠 SYSTEM.md 规则,依从度约 60%。存储根目录位于 ~/.omp/context-mode/,OMP 与 Pi 安装不会共享会话数据库、内容索引或统计文件。
8 验证与常用命令
8.1 会话内命令
在任意 AI 会话中直接输入命令,LLM 会自动调用对应 MCP 工具:
ctx stats # 上下文节省、调用次数、会话报告
ctx doctor # 诊断运行时、钩子、FTS5、版本
ctx index # 索引本地文件或目录,供后续检索
ctx search # 检索此前已索引的内容
ctx upgrade # 从 GitHub 更新、重建、重新配置钩子
ctx purge # 永久删除知识库中全部已索引内容
ctx insight # 在浏览器打开托管的 Insight 仪表盘上述命令在全部平台可用。Claude Code 另提供斜杠命令:/context-mode:ctx-stats、/context-mode:ctx-doctor、/context-mode:ctx-index、/context-mode:ctx-search、/context-mode:ctx-upgrade、/context-mode:ctx-purge、/context-mode:ctx-insight。
8.2 终端命令(无需进入 AI 会话)
context-mode doctor
context-mode index . --source project:my-app
context-mode search "authentication middleware" --source project:my-app
context-mode upgrade
context-mode insight # 在浏览器打开托管的 Insight 仪表盘
bash scripts/ctx-debug.sh # 提交问题时使用的完整诊断报告调试脚本会收集操作系统信息、运行时版本、better-sqlite3 状态、适配器识别、配置文件(已脱敏)、钩子校验、FTS5/SQLite 测试、执行器测试、进程检查、会话数据库与环境变量,汇总为一份可直接粘贴的 Markdown 报告。
9 效果基准
下表为官方 README 给出的 8 个典型场景实测结果:
| 场景 | 原始大小 | 进入上下文 | 节省比例 |
|---|---|---|---|
| Playwright 网页快照 | 56.2 KB | 299 B | 99% |
| GitHub Issues(20 个) | 58.9 KB | 1.1 KB | 98% |
| 访问日志(500 条请求) | 45.1 KB | 155 B | 100% |
| Context7 React 文档 | 5.9 KB | 261 B | 96% |
| 分析类 CSV(500 行) | 85.5 KB | 222 B | 100% |
| Git 日志(153 次提交) | 11.6 KB | 107 B | 99% |
| 测试输出(30 个套件) | 6.0 KB | 337 B | 95% |
| 仓库调研(子代理) | 986 KB | 62 KB | 94% |
完整会话口径:315 KB 原始输出压缩为 5.4 KB,可用会话时长从约 30 分钟延长到约 3 小时。
完整基准数据(21 个场景、总原始 376 KB → 16.5 KB、整体节省 96%、代码示例 100% 原样保留)见官方 BENCHMARK.md:BENCHMARK.md
10 隐私与安全
10.1 隐私与运行架构
Context Mode 不是 CLI 输出过滤器,也不是云端分析仪表盘,而是运行在 MCP 协议层:原始数据留在隔离的子进程中,绝不进入上下文窗口。网页、接口响应、文件分析、Playwright 快照、日志文件,全部在完全隔离的环境中处理。
- 代码、提示词、会话数据全部留在本机;无遥测、无云同步、无使用追踪、无需账号。
- SQLite 数据库位于用户主目录,会话结束后随清理规则释放。
- 已索引内容默认存储在 ~/.context-mode/content/;内容数据库与来源超过
14 天会在启动时自动清理。 自定义存储根目录:可设置环境变量
CONTEXT_MODE_DIR 为绝对可写路径;会话与统计使用
/sessions,已索引内容使用 /content。空值或纯空白视为未设置;非空值必须为绝对路径,不展开 ~。
10.2 权限规则透传
Context Mode 沿用你已有的权限规则,并将其扩展到 MCP 沙箱:若你在主机上拦截了 sudo,那么在 ctx_execute、ctx_execute_file、ctx_batch_execute 中同样被拦截。未配置任何权限规则时不发生变化,只有添加规则后才生效。规则格式为 Tool(匹配项),* 表示任意内容:
{
"permissions": {
"deny": [
"Bash(sudo *)",
"Bash(rm -rf /*)",
"Read(.env)",
"Read(**/.env*)"
],
"allow": [
"Bash(git:*)",
"Bash(npm:*)"
]
}
}规则可写入项目 .claude/settings.json 或全局 ~/.claude/settings.json;全部平台都读取 Claude Code 设置格式,包括 Gemini CLI、VS Code Copilot 与 OpenCode。Codex CLI 的安全强制需要在 $CODEX_HOME/hooks.json 或 ~/.codex/hooks.json 中配置 Codex 钩子。
- deny 始终优先于 allow;更具体的项目级规则覆盖全局规则。
- 用 &&、;、| 连接的命令会被拆分,逐段检查;echo hello && sudo rm -rf /tmp 会因 sudo 段命中 deny 规则而被拦截。
10.3 项目边界隔离
ctx_execute_file 被限制在项目根目录内。若解析出的路径位于工作区之外(绝对路径 /home/user/secrets、../../ 回溯、或指向项目外的本地符号链接),会以 File access blocked 错误拒绝,堵住代理在主机沙箱被拒后又试图通过 MCP 沙箱越权读取的逃逸路径。
该防护默认开启,无需配置。若确实需要处理项目外文件(例如 /var/log 下的共享日志),使用与主机 Read 工具相同的 permissions.allow 规则放行,不提供 context-mode 专属环境变量开关:
{
"permissions": {
"allow": ["Read(/var/log/**)"]
}
}防护边界说明:ctx_execute 与 ctx_batch_execute 会运行任意代码并继承进程的文件系统访问,因此边界守卫只是文件读取工具的纵深防御层,不是完整操作系统沙箱;审批任意执行工具时应视同审批任意代码,并保持主机层面的沙箱开启。
10.4 网络抓取加固
ctx_fetch_and_index 默认拦截危险 URL 目标:
- 协议:仅允许 http: 与 https:,禁止 file://、gopher://、javascript:、data:。
- 云元数据与链路本地地址:169.254.0.0/16(含 AWS/GCP/Azure 元数据端点 169.254.169.254)即使主机名解析到该段也会硬拦截(DNS 重绑定防御)。
- 组播与保留地址:224.0.0.0/4、0.0.0.0/8、IPv6 ff00::/8、fe80::/10 被拦截。
- 回环地址与 RFC1918 内网段(localhost、127.x、10.x、172.16-31.x、192.168.x、IPv6 ::1、fc00::/7)默认放行,保证本地开发服务器与内网抓取可用。 在托管或 CI 环境中如需同时拦截私有目标,设置环境变量 CTX_FETCH_STRICT=1,将在常驻拦截网段之外再拦截回环、RFC1918 与 ULA 段,适合把 context-mode 作为共享服务运行的场景。
任何 mcp__* 工具调用的 tool_input 在持久化前都会被脱敏:authorization、auth_token、access_token、refresh_token、bearer、token、secret、password、passwd、pwd、api_key/apikey/x_api_key、cookie/set-cookie、signature、private_key、client_secret 等字段(大小写、连字符与下划线不敏感)会被替换为 [REDACTED],避免凭证进入会话数据库。
10.5 相关环境变量
| 变量 | 默认值 | 用途 |
|---|---|---|
| CONTEXT_MODE_DIR | 适配器默认目录(如 ~/.codex/context-mode 或 ~/.claude/context-mode) | 从 v1.0.147 起提供,指定 context-mode 存储的绝对可写根目录;空值视为未设置 |
| CTX_FETCH_STRICT | 未设置 | 置为 1 时额外拦截回环与 RFC1918 私有目标 |
| CONTEXT_MODE_EXTERNAL_MCP_NUDGE_EVERY | 10 | PreToolUse 钩子每隔多少次匹配调用重新注入“把外部 MCP 大负载包进 ctx_execute”的引导;取值 1–100,非法值回退 10 |
11 团队版 Insight 平台

Insight 是 Context Mode 平台上的第一个解决方案,面向 AI 辅助研发团队提供工程信号分析:按工程师统计生产率、按团队统计重试浪费、识别并命名模式、给出可执行动作,并为 CTO、工程经理、个人贡献者、CISO、FinOps、DevOps 等角色提供收窄后的视图。
仪表盘入口:https://context-mode.com/insight
官方图面标注:222 种模式、13 个 MCP 工具、14 个 AI 适配器、7 种角色视图,定价 20 美元 / 席位 / 月。会话内执行 ctx insight 即可在浏览器打开该仪表盘。
12 官方链接汇总
| 类别 | 链接 |
|---|---|
| GitHub 仓库 | github.com/mksglu/context-mode |
| npm 包 | npmjs.com/package/context-mode |
| Insight 仪表盘 | context-mode.com/insight |
| Discord 社区 | discord.gg/DCN9jUgN5v |
| Hacker News 讨论帖 | news.ycombinator.com/item?id=47193064 |
| 演示视频(YouTube) | youtube.com/watch?v=QUHrntlfPo4 |
| 完整基准数据 | github.com/mksglu/context-mode/blob/main/BENCHMARK.md |
| 平台能力对照 | github.com/mksglu/context-mode/blob/main/docs/platform-support.md |
说明:受当前网络环境限制,本环境未能拉取 shields.io 统计徽章与 YouTube 演示封面图;上述链接可在浏览器直接打开,查看实时 Star、版本与演示画面。
13 附录
13.1 开源协议(Elastic License 2.0)
项目以 Elastic License 2.0(ELv2)许可发布,属于源码可见协议:你可以使用、Fork、修改与分发。两项限制为:不得将其作为托管 / 托管服务提供,不得删除许可声明。官方说明:选择 ELv2 而非 MIT,是因为 MIT 允许把代码重新打包成竞争性闭源 SaaS;ELv2 在保持源码对所有人可见的同时禁止此类转售。
13.2 常见故障排查
- 先在会话中执行 ctx doctor,或在终端执行 context-mode doctor,逐一确认运行时、钩子、FTS5 与插件注册状态。
- 工具未出现:检查 MCP 服务器命令是否可执行;OpenCode/KiloCode 若同时配置 plugin 与 mcp.context-mode,会注册不到工具,执行 context-mode upgrade 清理遗留 MCP 条目。
- 钩子不生效:确认平台已启用对应功能开关(如 Codex 的 [features].hooks 与 plugin_hooks),并在平台提示时信任插件钩子。
- 需要提交问题时,运行 bash scripts/ctx-debug.sh 生成完整诊断报告。
- 升级到最新版本:执行 context-mode upgrade,或 npm install -g context-mode@latest;升级会重建、迁移缓存并修复钩子。
- 清空知识库:执行 ctx purge 永久删除全部已索引内容。
13.3 本地开发与贡献
git clone https://github.com/mksglu/context-mode.git
cd context-mode && npm install && npm test开发流程与 TDD 规范见仓库内 CONTRIBUTING.md。