
context-mode Kimi Code安装完全教程TOML hooks配置逐行讲解【免费下载链接】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 编码代理上下文优化工具它以 MCP 服务器 hooks 的形式运行能把工具输出沙箱化最高节省 98% 上下文窗口、持久化会话记忆并跨 17 个平台强制路由。本文是context-mode 在 Kimi Code CLI 的安装完全教程重点把~/.kimi-code/config.toml里的 TOML hooks 配置逐行讲清楚——零基础也能一次装对。一、为什么 Kimi Code 需要 context-mode如果你用过 AI 编码 CLI应该都遇到过这个痛点一次网页快照、一份日志文件动辄几十 KB 涌进上下文窗口会话一长压缩compact时 Agent 就忘记了自己在改哪个文件、做到哪一步上下文烧完了token 账单也跟着烧。context-mode 的思路是原始数据不进上下文只进本地 FTS5 索引库。Agent 需要时再搜索召回。配合 hooks它还能在会话开始、工具调用前后、压缩前等关键节点自动介入实现断点续作的会话连续性。二、安装前准备先检查这 2 项检查项要求验证命令Kimi Code CLI已安装kimi命令在 PATH 中kimi --versionNode.js 22.5或使用 Bunnode -v两项都满足后进入正式安装。三、一键安装全局安装 context-mode一条命令搞定npm install -g context-mode安装成功后系统里会出现一个context-mode命令后面所有 hooks 命令都是它的子命令。建议顺手验证一下context-mode --version 这一步只需要执行一次。它和 Claude Code 的插件市场安装方式不同——Kimi Code 没有插件市场所以走的是全局 npm 包 手动配置路线。四、第 1 步注册 MCP 服务器Kimi Code 读取 MCP 配置的文件是~/.kimi-code/mcp.json写入以下 3 行核心配置{ mcpServers: { context-mode: { command: context-mode, args: [] } } }这告诉 Kimi Code启动会话时把context-mode作为 MCP 服务器拉起来。装好后Agent 就能调用ctx_execute、ctx_search、ctx_index等 11 个 MCP 工具。五、第 2 步TOML hooks 配置逐行讲解核心打开或新建~/.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 [[hooks]] event SessionEnd command context-mode hook kimi sessionend timeout 30下面逐行拆解。5.1 什么是[[hooks]]TOML 语法里[[hooks]]表示往hooks数组中新增一个元素。上面一共 7 个[[hooks]]块就是注册了 7 个钩子分别挂在会话生命周期的 7 个事件上。每块的字段含义字段必填含义event✅触发事件如PreToolUse工具调用前matcher⬜正则匹配哪些工具名才触发仅PreToolUse用command✅事件触发时要执行的 shell 命令timeout⬜超时秒数超时则放弃该钩子5.2 逐行讲PreToolUse块最重要的一个event PreToolUse事件类型工具执行前触发。这是路由强制的核心——context-mode 在这里判断这次工具调用是否应该被改道。matcher Bash|Shell|Read|Edit|Write|WebFetch|Agent|ctx_execute|...matcher是一个正则表达式|表示或。含义是只有当以下工具被调用时才触发本钩子——Bash/Shell命令执行比如curl抓网页Read/Edit/Write文件读写操作WebFetch抓取网页Agent子代理调用ctx_execute、ctx_search等context-mode 自家的 MCP 工具需要放行并识别mcp__前缀匹配所有 MCP 工具。如果 Agent 想直接curl下载大网页这个钩子就会拒绝Kimi Code 的PreToolUse只支持 deny 一种决策——见 5.3并引导它改用ctx_fetch_and_index内容进本地索引不进上下文。command context-mode hook kimi pretooluse实际执行的命令。kimi是平台名pretooluse是事件名。对应的源码实现在 hooks/kimi/pretooluse.mjs它从 stdin 读取 Kimi 传来的 JSON做路由判定再输出 JSON 决策。timeout 3030 秒超时。hooks 是同步阻塞的防止某个钩子卡死整个会话。5.3 其他 6 个事件块各管什么事件触发时机context-mode 在此做什么PostToolUse每次工具调用完成后记录工具输出摘要、更新节省统计SessionStart新会话启动时加载会话连续性数据库SQLitePreCompact上下文压缩发生前把关键事件快照进 FTS5 索引防止压缩后失忆UserPromptSubmit你提交每轮消息时注入路由指令Kimi 无additionalContext通道走此通道Stop每一轮助手回答结束时记录本轮统计SessionEnd整个会话真正关闭时Kimi 独有区别于Stop持久化/清理会话数据两个容易混淆的点专门提醒一下Stop≠SessionEndStop是你每问一句它答完就触发一次SessionEnd是退出kimi时才触发一次。两者都要配缺一不可。Kimi 的PreToolUse只认拒绝它的运行器会静默丢弃ask、updatedInput改参数等字段只有permissionDecision: deny或退出码 2 能拦截工具调用。所以 context-mode 对 Kimi 做的是拒绝 引导改道而不是直接改写你的命令。完整能力矩阵见官方文档 docs/adapters/kimi-code.md。5.4 命令规律好记不手抖7 条命令其实是一个模板context-mode hook kimi 事件名小写平台固定为kimi后面跟小写事件名pretooluse、sessionstart……。配置模板可以直接参考仓库里的 configs/kimi/hooks.jsonJSON 版清单TOML 版见上面。六、验证安装是否成功重启 Kimi Code CLI开始新会话后输入ctx doctorctx doctor会运行完整诊断运行时、hooks、FTS5 索引、版本一致性全部显示[x]即安装成功。接着输入ctx stats能正常返回节省统计说明MCP 服务器也连通了。不想靠对话验证的话也可以在终端手动测一个钩子echo {tool_name:Bash,tool_input:{command:curl https://example.com}} \ | context-mode hook kimi pretooluse预期输出一段 JSON路由指引会引导改用ctx_execute/ctx_fetch_and_index。七、常见问题速查Q1hooks 配了但没生效先确认context-mode命令在 PATH 里which context-mode。Kimi 的 hooks 命令走 shell 解析命令找不到会静默失败。Q2会话数据存在哪里默认在~/.kimi-code/context-mode/sessions/。如果你设置了环境变量KIMI_CODE_HOME则跟随它迁移到$KIMI_CODE_HOME/context-mode/sessions/——与 Kimi Code 自己的数据根目录解析方式一致。Q3为什么UserPromptSubmit和SessionStart看起来功能重叠Kimi 没有additionalContext注入通道上游运行器不解析该字段所以上下文注入统一改由UserPromptSubmit的message通道完成SessionStart只负责打开会话连续性数据库。Q4能否让钩子直接改写我的工具参数不能。Kimi Code 的运行器会静默丢弃updatedInput字段只能拒绝 引导。八、写在最后3 步回顾npm install -g context-mode全局装一次往~/.kimi-code/mcp.json加 MCP 服务器往~/.kimi-code/config.toml加 7 个 hooks 块重启kimi用ctx doctor验证完成后你的 Kimi Code 会话就有了大输出自动沙箱、压缩不失忆、PreToolUse路由强制改道。完整的平台差异说明和源码引用可查阅 docs/adapters/kimi-code.mdKimi 适配器的实现代码在 src/adapters/kimi/hooks 实现含platform.mjs平台标记、pretooluse.mjs路由拦截在 hooks/kimi/想看路由判定到底怎么写的可以直接翻源码。【免费下载链接】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),仅供参考