安装 context-mode 插件
从 mksglu/context-mode 安装插件,开启 hooks 和 plugin_hooks,并审查插件钩子权限。
context-mode 用 marketplace 加 mksglu/context-mode,再在 /plugins 安装。这是仓库 README 的 Codex CLI 专节,不是 Claude 的 /plugin marketplace add,也不是旧文里的 codex plugin install context-mode/context-mode。
先确认本机有 Node.js 22.5 或更高(或 Bun),并且 启动 Codex 的那个进程 能在 PATH 里找到 node。插件不会自带 Node,也不会自动继承 login shell 的 PATH。
codex plugin marketplace add mksglu/context-mode
codex plugin list --json
清单 .agents/plugins/marketplace.json 的 name 是 context-mode,插件 name 也是 context-mode。README 现行主路径是加完 marketplace 后在 TUI /plugins 或桌面 Plugins 里安装。CLI 等价(动词是 add 不是 install)是:
codex plugin add context-mode@context-mode
IDE 扩展没有 /plugins,装插件用 CLI 或桌面应用。
捆绑插件钩子在现行 Codex 里仍可能被门控。README 要你在 ~/.codex/config.toml 写:
[features]
plugin_hooks = true
hooks = true
优先 [features].hooks(或 codex --enable hooks)。[features].codex_hooks 只是现行构建里的遗留别名。plugin_hooks 是给插件自带钩子用的,直到 Codex 默认放行插件钩子;不要把 ECC / Nowledge Mem 那句「不要手写 plugin_hooks」套到这份插件上。
默认存储写失败时,给启动 Codex 的环境设绝对可写根:
CONTEXT_MODE_DIR="$HOME/.codex-context-mode" codex
会话和统计在 CONTEXT_MODE_DIR/sessions,索引内容在 CONTEXT_MODE_DIR/content。不要用相对路径。
重启 Codex。用会话里的 ctx stats 验证 MCP 通了;这句话不能证明钩子已信任。打开 /hooks,只审并信任 context-mode 那组命令,不要「信任全部钩子」。哈希变了要再审一次。
插件清单用 .codex-plugin/mcp.json 起 stdio MCP(CONTEXT_MODE_PLATFORM=codex),技能在 ./skills/,钩子在 .codex-plugin/hooks.json。plugin_hooks 打开且钩子已信任时,不要再手写 [mcp_servers.context-mode],也不要再写 $CODEX_HOME/hooks.json。不要 codex mcp login context-mode,该服务不是 OAuth 远程。
只有构建还没有 plugin_hooks 时才走后备:npm install -g context-mode,再手写 [mcp_servers.context-mode](command = "context-mode",环境 CONTEXT_MODE_PLATFORM = "codex")和 $CODEX_HOME/hooks.json。那是后备,不是现行主路径。可选把 configs/codex/AGENTS.md 拷到项目 AGENTS.md 或 ~/.codex/AGENTS.md 给模型看路由说明。
Codex PreToolUse 目前只支持 deny / 拦截,还不能靠 updatedInput 改写工具入参(跟 openai/codex#18491)。additionalContext 也不走 PreToolUse,插件改走 PostToolUse / SessionStart。PreCompact 在 CLI 0.130.0 起有运行时门控;更旧的构建不会在压缩前做快照。
配置说明:
- 不要一上来信任全部钩子,也不要
--yolo。 - 不要
required = true挂全局。
网页 Cloud 不读本机插件缓存,也不读 ~/.codex/config.toml。0.154 起先看当前会话的 /plugins 和 /mcp;当前会话没有再新开。用 codex plugin list 确认 context-mode@context-mode 已装。