Context Mode

mksglu/context-mode 访问 GitHub ↗
🔤 TypeScript ★ 31994 ⑂ 0 monthly #8 (+8135) 抓取 2026-10-24

一句话简介

一款面向开发者的上下文管理与调试工具,帮助在不同场景间高效切换和保存开发上下文。

标签

  • 开发者工具
  • 上下文管理
  • TypeScript
  • 调试工具
  • VSCode扩展

适用应用场景

  • 管理多项目开发上下文
  • 调试时切换保存的上下文状态
  • 跨环境复用开发配置
  • 团队协作共享上下文方案

README 中文摘要

Context Mode:解决上下文窗口的另一半难题

问题概述

每次 MCP 工具调用都会将原始数据倾倒进上下文窗口。一个 Playwright 快照占 56 KB,二十个 GitHub issue 占 59 KB,一条访问日志占 45 KB。工作 30 分钟后,40% 的上下文已耗尽。当智能体压缩对话以释放空间时,会遗忘正在编辑的文件、未完成的任务以及用户的最新请求。此外,智能体还会在输出侧浪费 token,用于寒暄、客套和冗长解释——上下文从两端同时被消耗。

四维解决方案

Context Mode 是一个 MCP 服务器,从四个维度解决问题:

  1. 上下文节省——沙箱工具将原始数据挡在上下文窗口之外,315 KB 可压缩至 5.4 KB,降幅达 98%。
  2. 会话连续性——所有文件编辑、Git 操作、任务、错误和用户决策均记录到 SQLite。当对话被压缩时,context-mode 不把数据回灌到上下文中,而是将事件索引到 FTS5 并通过 BM25 检索相关内容,模型可以准确接续上次进度。如未使用 --continue,上一次会话数据会立即清除,新会话即全新起点。
  3. 用代码思考——LLM 应编程分析,而非计算分析。例如统计函数数量时,智能体编写脚本执行 console.log() 输出结果,1 次脚本调用取代 10 次工具调用,上下文节省 100 倍。该范式在全部 17 个受支持的客户端以及 OpenClaw 网关集成中强制启用。
  4. 不强制文风——context-mode 仅控制数据的去与留,从不规定模型如何撰写最终答复。简洁性、完整性、格式由模型(或用户的 CLAUDE.md / AGENTS.md)自行决定。

安装方式

不同平台的安装复杂度各异,具备 hook 能力的平台可获得自动路由强制执行,其余平台只需一次性复制路由文件。

Claude Code

通过插件市场一键安装,需 Claude Code v1.0.33+:

/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode

安装后执行 /context-mode:ctx-doctor 验证,所有检查项应显示 [x]。SessionStart hook 在运行时注入路由指令,无需写入项目文件。插件注册全部 hook(PreToolUse、PostToolUse、UserPromptSubmit、PreCompact、SessionStart、Stop)以及 11 个 MCP 工具——六个沙箱工具(ctx_batch_execute、ctx_execute、ctx_execute_file、ctx_index、ctx_search、ctx_fetch_and_index)和五个元工具(ctx_stats、ctx_doctor、ctx_upgrade、ctx_purge、ctx_insight)。

可选的状态栏配置:

{
  "statusLine": {
    "type": "command",
    "command": "context-mode statusline"
  }
}

也可仅以 MCP 方式快速试用:

claude mcp add context-mode -- npx -y context-mode

Gemini CLI

全局安装 context-mode,在 ~/.gemini/settings.json 中同时注册 MCP 服务器与四个 hook(BeforeTool、AfterTool、PreCompress、SessionStart)。BeforeTool 匹配器仅拦截产生大输出的工具(run_shell_command、read_file、read_many_files、grep_search、search_file_content、web_fetch、activate_skill)以及 context-mode 自身工具,避免在轻量工具上产生不必要的 hook 开销。

VS Code Copilot

创建 .vscode/mcp.json 注册 MCP,再创建 .github/hooks/context-mode.json 配置三个 hook(PreToolUse、PostToolUse、SessionStart)。

JetBrains Copilot

在 Settings > Tools > AI Assistant > MCP 中添加 context-mode 服务器,再在 .github/hooks/context-mode.json 中配置三个 hook。

GitHub Copilot CLI

推荐方式为一条命令安装插件:

npm install -g context-mode
copilot plugin install mksglu/context-mode:configs/copilot-cli

该插件包通过 .mcp.json 自动设置 CONTEXT_MODE_PLATFORM=copilot-cli,使 context-mode 正确自识别为 Copilot。手动方式需分别通过 copilot mcp add 注册 MCP,以及在 ~/.copilot/hooks/context-mode.json 中配置六个 hook 事件(preToolUse、postToolUse、preCompact、sessionStart、userPromptSubmitted、agentStop)。

Cursor

由于 Marketplace 插件等待 Cursor 团队审核,暂采用本地目录方式安装。macOS/Linux 使用软链接,Windows 因不支持符号链接需使用 robocopy。手动方式在 .cursor/mcp.json 注册 MCP,在 .cursor/hooks.json 配置三个 hook(preToolUse、postToolUse、stop),并将路由规则文件复制到 .cursor/rules/context-mode.mdc——因为 Cursor 暂未支持 SessionStart hook。

OpenCode / KiloCode

均为 TypeScript 插件架构。在 opencode.json 或 kilo.json 中添加 "plugin": ["context-mode"] 即可,原生注册全部 11 个 ctx_* 工具并启用 hook。两者均缺少真正的 SessionStart hook,插件以 experimental.chat.system.transform 作为替代,在系统提示中注入路由块和恢复快照;用户提示通过 chat.message 钩子捕获。若配置中同时存在 plugin 与遗留的 mcp.context-mode 条目,注册的工具数量将为零,应运行 context-mode upgrade 移除遗留条目。

OpenClaw / Pi Agent

作为 OpenClaw 网关的原生插件运行,目标是 Pi Agent 会话(Read/Write/Edit/Bash 工具)。安装脚本 npm run install:openclaw 处理全部流程:依赖安装、原生模块重建、插件注册以及通过 SIGUSR1 重启网关。可通过 -- 指定自定义 $OPENCLAW_STATE_DIR 路径,Docker 默认为 /openclaw,本地通常为 ~/.openclaw。

摘要更新于 2026-09-08 00:30:53 · 原文 94434 字符 · md5 b09a90652251…