/ 目录 / 演练场 / Context Mode
● 社区 mksglu ⚡ 即开即用

Context Mode

作者 mksglu · mksglu/context-mode

将工具输出沙箱化,并用 SQLite 持久化会话状态——节省 98% 的 token 浪费,告别 compaction 失忆症。

Context Mode 通过两种方式解决「LLM 忘了自己在做什么」的问题。第一,沙箱工具将原始数据从上下文窗口移出(playwright 快照:56KB → 建立索引,agent 按需检索)。第二,每个会话的 SQLite 事件日志在 compaction 后仍然存活——模型可以从上次中断的地方精确继续。支持 12 个平台,以插件 + MCP 形式发布。

为什么要用

核心特性

实时演示

实际使用效果

context-mode-mcp.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "context-mode-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "context-mode"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "context-mode-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "context-mode"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "context-mode-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "context-mode"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "context-mode-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "context-mode"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "context-mode-mcp",
      "command": "npx",
      "args": [
        "-y",
        "context-mode"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "context-mode-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "context-mode"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

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

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: Context Mode

停止在原始工具输出上浪费上下文

👤 重度 Claude Code 用户,经常在会话中途触发 compaction ⏱ ~15 min intermediate

何时使用: 你感觉 agent 30 分钟后就「忘事」,而且在反复重读上花了不少钱。

前置条件
  • Claude Code v1.0.33+brew upgrade claude-codenpm update -g @anthropic-ai/claude-code
步骤
  1. 安装
    /plugin marketplace add mksglu/context-mode
    /plugin install context-mode@context-mode✓ 已复制
    → 插件注册了钩子 + 6 个沙箱工具
  2. 验证
    /context-mode:ctx-doctor✓ 已复制
    → 所有检查 [x]
  3. 正常使用
    现在执行一个通常会撑爆上下文的大任务——例如分析 /var/log 下的所有 .log 文件✓ 已复制
    → 使用了 ctx_execute 而非直接 Read;输出被建立索引,而非直接倾倒
  4. 查看节省情况
    /context-mode:ctx-stats✓ 已复制
    → 报告各工具的上下文缩减比例

结果: 同样的任务,compaction 前可以持续 10 倍之久,且 agent 不会忘事。

注意事项
  • 其他 MCP 绕过了路由 — 将其工具调用通过 ctx_batch_execute 统一处理
搭配使用: serena

模型 compaction 后无缝恢复长任务

👤 进行多小时 agent 会话的开发者 ⏱ ~5 min beginner

何时使用: 你的任务太大,无法放入一个上下文窗口。

步骤
  1. 用 --continue 启动
    [CLI flag] claude --continue✓ 已复制
    → 上一次会话的 SQLite 已加载
  2. 观察
    你上次在做什么?哪些任务还在进行中?✓ 已复制
    → 从 FTS5 索引中精确回顾,没有幻觉

结果: 真正可恢复的工作流。

注意事项
  • 忘记加 --continue 会从头开始 — 持久化需要 --continue;不加则代表刻意全新开始

组合

与其他 MCP 搭配,撬动十倍杠杆

context-mode-mcp + serena

Serena 负责语义代码导航,context-mode 负责将其输出移出上下文

用 serena 做查找,用 ctx_execute 对结果做后处理。✓ 已复制
context-mode-mcp + playwright

页面快照输出保持沙箱化

通过 playwright 快照页面,由 context-mode 持有——按需搜索而非直接倾倒。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
ctx_execute code: str (js/python) 运行脚本处理数据;只输出需要的内容 free
ctx_batch_execute ops: [{tool, args}] 将多个工具调用统一通过沙箱处理 free
ctx_index content: str, tags?: [] 暂存数据供后续检索 free
ctx_search query: str 从会话索引中检索 free
ctx_fetch_and_index url: str 拉取 URL 内容,不放入上下文,但可搜索 free
ctx_stats none 查看节省了多少上下文 free

成本与限制

运行它的成本

API 配额
本地
每次调用 Token 数
大幅减少——真实会话中报告节省 98%
费用
免费(ELv2 许可证)
提示
会话越长收益越大——用于长任务

安全

权限、密钥、影响范围

凭据存储: 会话 SQLite 存储在 ~/.context-mode/
数据出站:

故障排查

常见错误与修复

ctx-doctor shows missing hooks

安装后完全重启 Claude Code;钩子在启动时注册

验证: Re-run /context-mode:ctx-doctor
Sandbox won't execute code

Node/Python 运行时缺失。Doctor 会告诉你具体是哪个。用 brew/asdf 安装。

Search returns nothing

Verify FTS5 built: sqlite3 ~/.context-mode/session.db "SELECT name FROM sqlite_master". Reinstall if broken.

替代方案

Context Mode 对比其他方案

替代方案何时用它替代权衡
Raw Claude Code (no plugin)短会话,永远不会触发 compaction没有上下文节省
claude-mem你只需要记忆层,不需要沙箱工具范式不同的权衡——只有记忆,没有工具输出沙箱

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills