关于 Inspectrum
Inspectrum 为编码 Agent 工作流提供计划执行前审查,适合希望在批准高风险变更前加入可重复独立检查的开发者。它支持多审查者、带来源的发现和结构化结论,同时保留人工最终决定权。
主要功能
- 01Claude Code 计划自动检查门
- 02通过 MCP 主机按需审查
- 03并行审查者与结论汇总
- 04带来源的发现及批准、修改、拒绝结论
- 05本地 Markdown 审查记录
- 06使用 inspectrum doctor 检查审查者状态和模型
适用场景
- 01执行前检查迁移或认证计划
- 02通过 MCP 主机请求另一模型审查
- 03比较多位审查者并汇总发现
MCP 相关
Inspectrum 通过 MCP 服务提供计划审查功能,包括供本地 MCP 主机按需调用的 review_plan 接口。MCP 客户端可调用已配置的审查模型执行审查。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| plan | string | 是 | 要审查的计划,使用 Markdown 格式。最多 16 000 个字符。 |
| focus | enum | 否 | 审查重点领域。correctness | completeness | risk | clarity | all |
| judge | boolean | 否 | 当审查器数量 >= 2 时,运行 judge agent 进行综合。 |
| context | string | 否 | 用于提供上下文的可选代码库摘录。最多 8 000 个字符。 |
| reviewers | array | 否 | 审查器 ID(来自配置)。默认为 config defaults.reviewers。 |
详细介绍
看似合理的计划可能会让 Agent 承担迁移、身份验证变更、支付流程、兼容性破坏或部署任务,而这些决定一旦做出,撤销成本可能很高。
Inspectrum 会在做出这类决定前进行独立检查。 它的首个自动集成会在 Claude Code 退出计划模式时运行:Codex(GPT)会在审批对话框显示给你之前审查计划;审查结果可以让计划退回修改,而最终批准权仍由你掌握。如果审查工具无法运行,计划会继续通过,并显示警告,而不是被悄悄标记为已审查。
这里的“独立”是指由不同于作者模型的审查者单独发起审查,并不意味着它们的错误在统计上相互独立。Inspectrum 让这一检查点可重复执行,并让故障清晰可见;其净可靠性增益和可辩护的竞争壁垒尚未得到证明。0.2.2 之后的策略定义了证据门槛,并将代码审查、拉取请求审查和结对编程排除在范围之外。
何时只需使用技能
如果只是偶尔征求第二意见,可以设置一条规则,让一个 Agent 调用另一个 Agent 并比较回复。这是一个合理的轻量级选择。
Inspectrum 面向可重复执行的检查点。在 Claude Code 中,插件会在计划转入执行的节点运行,不依赖于记住提示词;它会限制修改循环次数,并在发生运行错误时放行。其他本地 MCP 主机也可以按需调用相同的 review_plan 契约。两种路径都会明确标注审查结果的来源,返回统一格式的判定,保留人工控制权,并为成功的审查写入本地记录。
要用技能重现这些保障,你就必须自行维护编排、输出验证、健康检查、故障策略和会话记录。
截至 2026 年 8 月 1 日的公开情况: npm 0.2.3、GitHub 发布版本,以及仓库中的 Claude 和 Codex 插件均已对齐至 0.2.3。 Glama 已公开发布。MCP Registry 可能仍显示 0.2.2;本次未重新发布。Inspectrum 尚未出现在 Claude 社区目录中,而 PulseMCP 以 HTTP 403 阻止了本次一次性复查,因此不声称其目前已在 PulseMCP 上架。
公开的 0.2.3 激活证据记录了确切命令、耗时、一个有用发现、一个无结果案例、一个明确显示的故障放行案例,以及测量的局限性。
快速开始
你需要 Node 20+、Claude Code,以及已通过 ChatGPT 订阅完成身份验证的 Codex CLI >= 0.99.0(无需 API 密钥):
claude plugin marketplace add yannmenec/inspectrum
claude plugin install inspectrum@inspectrum
安装就这么简单。下次在计划模式下完成计划时:
⏺ ExitPlanMode
⎿ inspectrum×codex: REVISE (round 1/2) # abridged — real output
Majors: # adds a full-report path
- [codex] Migration drops the unique index before backfilling —
concurrent writes can insert duplicates.
Fix: backfill first, drop the index last.
Revise the plan to address these findings, then finish the plan again.
⏺ ExitPlanMode
⎿ inspectrum: codex approved the plan (session 2026-07-12…).
┌ Ready to code? ────────────────
│ Here is Claude's plan… ← your normal approval dialog
无需记住提示词,也无需点击按钮;触发门控不会消耗任何令牌。该门控是一个确定性的钩子——每个计划都会触发,无论你的会话运行的是 Fable、Sonnet 还是 Haiku。执行两条命令即可启用自动门控;按需使用的 /inspectrum:review 命令还需要多加一行(注册 MCP 服务——详见下方的辅助设置)。
想让 Agent 帮你安装并检查所有内容?将这段内容粘贴到 Claude Code 中。
Set up Inspectrum's Codex plan gate. Use normal approvals only — do not
switch to Bypass Permissions or Full Access.
Steps:
1. Run `node --version`. If < 20, stop and tell me to install Node 20+
from https://nodejs.org first.
2. Run `codex --version`. If it is missing or older than 0.99.0, run
`npm install -g @openai/codex@latest` and verify again.
3. Run `claude plugin marketplace add yannmenec/inspectrum`, then
`claude plugin install inspectrum@inspectrum`.
4. Run `claude mcp add --transport stdio --scope user inspectrum -- npx -y inspectrum@latest`
(this powers the on-demand /inspectrum:review command).
5. Run `npx -y inspectrum@latest doctor` and show me the output,
including the resolved codex model/effort lines.
6. Run `codex login status`.
- If it prints "Logged in", tell me: "✅ Setup complete. Your next
plan-mode plan gets a Codex review automatically." Done.
- Otherwise (not logged in), pop open a Terminal window with codex
already running by executing:
`osascript -e 'tell application "Terminal" to do script "codex"'`
Then tell me: "A Terminal window opened with codex running.
Inside that window, click 'Sign in with ChatGPT', complete the
login in my browser, then close the Terminal window. Inspectrum
is then ready."
Do NOT use sudo, edit shell profiles, push git changes, read .env or
credentials, or publish packages. Report back: Node version, codex
install status, doctor verdict, and whether login was needed.
you ──▶ Claude Code ──▶ plan ready ──▶ ExitPlanMode
│
inspectrum plan-gate (hook)
│
Codex reviews the plan
(read-only sandbox, your ChatGPT sub)
│
┌─────────────────────┴──────────────────────┐
APPROVE ✅ REVISE / REJECT ❌
│ │
your approval dialog findings go back to Claude,
appears as usual it revises, gate runs again
(max 2 rounds)
设计理念是简单可靠,安全稳妥:
- 出现故障时放行。 未安装 Codex、已退出登录、超时或网络中断时,计划仍会继续,并显示警告。运行错误不会阻碍你的工作;门禁会降级运行,而不会彻底失效。
- 绝不自动批准。 即使审核结果为绿色,仍会由你在批准对话框中确认。门禁可以延迟批准(让 Claude 修改计划),但绝不会代你点击;最终决定权始终在你手中。
- 避免重复审核。 在同一会话中,未更改的计划会进行哈希缓存,不会重复审核;只有实际修改才会消耗一轮审核。
- 只读审核者。 Codex 在固定的只读沙箱中运行(
codex exec -s read-only --ephemeral),并会移除配置中削弱沙箱安全性的标志。审核者只读取,不写入。 - 紧急停用开关。 在
~/.inspectrum/config.toml中设置[plan_gate] enabled = false,或按项目停用插件。
为什么要使用独立的审核者?
- 计划能发挥杠杆作用。 在执行前发现缺陷,通常比在难以撤销的更改完成后才发现同一缺陷更容易修复。
- 分离让检查过程可审查。 作者和审核者独立运行,审核结果也会保留各自的归属。
- 跨服务提供商的价值仍是假设。 Claude 和 GPT 可能会提出不同的异议,但 Inspectrum 尚未证明,考虑到误报、分流、成本和延迟后,这能带来净可靠性提升。
- 使用现有订阅。 使用 ChatGPT 订阅时无需单独支付 API 费用;审核会消耗你现有的 Codex 订阅额度。使用 API 密钥的后端则由相应服务提供商计费。
包含内容
| 🚦 计划门禁 | 每份 Claude Code 计划都会在交给你之前由 Codex 审核——自动执行,最多进行 2 轮修改 |
| 🔍 按需审核 | 使用 /inspectrum:review,或在任意 MCP 主机中说“用 Inspectrum 审核这份计划” |
| 🧑⚖️ 多审核者 + 裁决者 | 并行运行 codex、gemini 和 claude;由裁决者汇总为一份结论 |
| 📋 单一结论 | approve / revise / reject + 按严重程度分类的发现,并标注审核者 |
| 🗂️ 会话日志 | 每次审核的 Markdown 记录,包括结论、发现和修改后的计划,保存在 ~/.inspectrum/sessions/ 下(0700 权限) |
🩺 inspectrum doctor | 用一条命令检查审核者是否已安装、已通过身份验证,并能解析到正确的模型——若 Codex 已退出登录,会明确报错 |
兼容对象
| 你的 Agent | 你的审核者 | 设置方式 |
|---|---|---|
| Claude Code | Codex (GPT) | 插件——使用上方的 2 条命令 |
| Codex app / CLI | Claude | codex mcp add inspectrum -- npx -y inspectrum@latest + 下方配置 |
| Claude Desktop(macOS) | Codex (GPT) | 下载 inspectrum-0.2.3.mcpb,打开并确认。较早的 v0.2.0 安装包不完整——请使用 v0.2.3 资源文件,不要使用 npm/stdio。 |
| Cursor | Codex (GPT) | ![]() |
Codex app / CLI 设置 — 使用 Claude 作为审核者
将以下内容粘贴到 Codex app 或 CLI 中:
Set up Inspectrum so I can review my plans with Claude. Use normal
approvals only.
Steps:
1. Run `node --version`. If < 20, stop and tell me to install Node 20+
from https://nodejs.org first.
2. Run `claude --version`. If "command not found", run
`npm install -g @anthropic-ai/claude-code` and verify again.
3. If `~/.inspectrum/config.toml` does not exist, create it with:
[defaults]
reviewers = ["claude"]
4. Run `codex mcp add inspectrum -- npx -y inspectrum@latest`
5. Run `npx -y inspectrum@latest doctor` and show me the output.
6. Pop open a Terminal window with claude already running so I can
confirm or complete login, by executing:
`osascript -e 'tell application "Terminal" to do script "claude"'`
Then tell me:
- "If claude shows its chat prompt, you're already logged in —
close the Terminal window. Inspectrum is ready."
- "If claude shows /login or opens a browser, complete the sign-in
with your Claude account, then close the Terminal window.
Inspectrum is then ready."
(The ⚠ claude line in the doctor stays even after login because
claude doesn't expose a status command we can detect — harmless.)
Do NOT use sudo, edit shell profiles, push git changes, read .env or
credentials, or publish packages. Report back: Node version, claude
install status, doctor verdict, and whether login was needed.
需要Claude Pro/Max 订阅,无需 API 密钥。
调整设置
由哪个模型审核,使用何种推理强度? 在 Codex 端,优先级如下:
| 设置项 | 第 1 优先级(生效) | 第 2 优先级 | 第 3 优先级 |
|---|---|---|---|
| model | ~/.inspectrum/config.toml 中的 [reviewers.codex] model | ~/.codex/config.toml 中的 model | codex 内置默认值 |
| reasoning effort | [reviewers.codex] effort | ~/.codex/config.toml 中的 model_reasoning_effort | codex 内置默认值 |
inspectrum doctor 会显示解析后的值。高推理强度能带来最深入的审核,但每份计划可能需要几分钟——如果门禁感觉太慢,可在 [reviewers.codex] 中将其调低为 effort = "medium"。
完整配置 — 更多审阅者、评审器、限制(~/.inspectrum/config.toml)
[defaults]
reviewers = ["codex", "gemini"] # called in parallel
judge = "codex" # consolidates when >= 2 reviewers
focus = "all" # correctness | completeness | risk | clarity | all
[plan_gate] # ExitPlanMode hook behavior
enabled = true
max_rounds = 2 # denials before the plan passes through
reason_max_chars = 3000 # budget for findings fed back to Claude
# reviewers = ["codex"] # gate-specific override of defaults.reviewers
[reviewers.codex]
effort = "high" # passed as -c model_reasoning_effort=high
timeout_seconds = 300 # per-reviewer override of limits.timeout_seconds
# model = "gpt-5.6-sol" # passed as -m; omit to inherit ~/.codex/config.toml
[reviewers.gemini]
type = "cli"
binary = "gemini"
model = "gemini-2.5-pro"
[reviewers.muse]
type = "cli"
binary = "muse" # muse exec, prompt passed via --prompt-file
# model = "..." # omit to inherit muse's own default
# effort = "high" # passed as --reasoning-effort
[reviewers.opencode]
type = "cli"
binary = "opencode" # opencode run, prompt on stdin
# model = "google/gemini-2.5-flash" # -m, provider/model form
# effort = "high" # passed as --variant
[reviewers.agy]
type = "cli"
binary = "agy" # schema-constrained structured output
# model = "..." # passed as --model
# effort = "high" # --effort; only some models accept it
[reviewers.grok]
type = "cli"
binary = "grok" # confined to a read-only tool allow-list
# model = "grok-4.6-build" # passed as -m
# effort = "high" # passed as --effort
[reviewers.local]
type = "http"
backend = "ollama"
endpoint = "http://localhost:11434"
model = "qwen2.5:0.5b"
[limits]
report_max_chars = 8000 # caps the stored report
timeout_seconds = 300 # default reviewer wallclock
没有配置文件时,将使用 reviewers = ["codex"]。无需 API 密钥的设置:codex CLI 可通过 ChatGPT 登录使用,而 agy 后端是 Google 的 Antigravity CLI(curl -fsSL https://antigravity.google/cli/install.sh | bash),使用个人 Google 账号登录——这是已停用的 gemini CLI 之后可用的免费方案。实验性后端:kimi、qwen、openrouter、ollama(本地运行,不产生出站流量)。muse 后端运行 muse exec,并通过 --disable-shell --disable-write 限制权限(待审阅的计划属于不可信输入);args 中不接受 --yolo、--disable-sandbox 和 --enable-shell-tool。opencode 后端运行 opencode run --agent summary,该权限集会禁止使用工具(默认的 build Agent 会直接运行计划文本中的 shell 命令);args 中不接受 --agent、--auto 和 --format。agy 后端(Antigravity CLI)通过 --json-schema 限制输出,因此会在源头检查审阅结果是否符合架构;只有在你设置了 --effort 时才会发送它(部分模型不接受此参数)。agy 是 inspectrum 无法限制权限的唯一后端:经验证,--sandbox 和 --mode plan 均无法阻止写入(agy 1.1.27),因此只应将 agy 用于你信任的计划——muse、opencode 和 grok 是受限权限的选项;每当配置了 agy 时,inspectrum doctor 都会发出警告。grok 后端通过 --tools 允许列表(read_file,grep,list_dir)限制权限:经验证,--sandbox 配置和 --disallowed-tools 均无法阻止 shell 写入,而允许列表可以。args 中不接受 --tools、--always-approve 和 --permission-mode。gemini 后端已弃用,且将被移除——请迁移到 agy。
运行无头模式的主机或 CI 环境无法进行交互式登录?请改为通过 MCP 主机的 env 块传入对应的 API 密钥——OPENAI_API_KEY(codex)、ANTHROPIC_API_KEY(claude)、GEMINI_API_KEY(gemini)。手动编写的 JSON/TOML 示例位于 examples/ 下。
# Register the MCP server without the plugin:
claude mcp add --transport stdio --scope user inspectrum -- npx -y inspectrum@latest # Claude Code
codex mcp add inspectrum -- npx -y inspectrum@latest # Codex
# The automatic plan gate must use the plugin's pinned fail-open shim; do not
# register plan-gate through a mutable npm tag.
# Verify everything:
npx -y inspectrum@latest doctor
隐私 — 哪些内容会离开你的设备,哪些内容会保留
- 会话日志保存在
~/.inspectrum/sessions/<timestamp>__<id>/,其中包含完整计划,以及每位审阅者的判定和发现的 Markdown 记录。在 POSIX 系统上,目录权限为 0700。早于 0.1.0 版本写入的日志会保留原有权限——请使用chmod -R 700 ~/.inspectrum/sessions/进行修正。 - 切勿将机密粘贴到计划或上下文中。 计划会写入本地会话日志,且计划和上下文都会发送给每位活跃的审阅者。
- 云端路由:claude → Anthropic(OAuth 密钥链或
ANTHROPIC_API_KEY);codex → OpenAI(ChatGPT 登录或OPENAI_API_KEY);gemini → Google(使用个人账号登录 CLI,或设置GEMINI_API_KEY);openrouter → openrouter.ai;kimi → Moonshot AI(设备验证码登录:kimi login,而非环境变量);qwen → Alibaba Cloud;muse → CLI 自身存储的凭据(muse login);opencode → 你配置的任意提供商(opencode providers login);agy → Google Antigravity(首次运行时通过浏览器登录,或在~/.gemini/antigravity-cli/settings.json中设置modelProvider: "gemini"并使用GEMINI_API_KEY);grok → xAI(Grok Build 余额);ollama → 仅限 localhost,不产生出站流量,除非你更改endpoint。 - Codex 会在一次性临时目录中通过
codex exec --ephemeral --skip-git-repo-check -s read-only …调用——沙箱固定为只读,会剥除配置中的弱化沙箱和覆盖 cwd 的参数,并且 codex 不会持久化任何会话文件。
这会拖慢我的速度吗? 只会在必要时。批准结果会增加一轮审核(耗时从几秒到几分钟不等,取决于审核工作量);被退回的计划本来就是你希望退回的计划。在同一会话中,未更改的计划会被缓存,不会重复审核。
如果 Codex 停机、已退出登录或未安装,该怎么办? 审核门会以显眼的警告提示并默认放行,你的计划会原样继续。运行错误绝不会阻碍你的工作——这是架构上的不变原则,而不是尽力而为。
它能背着我批准计划吗? 不能。审核门只能延迟批准对话框(等待 Claude 修改),绝不会点击批准。每个最终提交的计划,你都会看到并亲自批准。
我需要 API 密钥吗? 使用订阅支持的 Codex 或 Claude CLI 登录时不需要。审核会占用现有订阅的额度。无头环境或 CI 设置支持使用 API 密钥,费用由相应的服务提供商收取。
我的提示词/计划很敏感——它会被发送到哪里?
发送给你配置的审核器,并记录在 ~/.inspectrum/sessions/ 下的本地会话日志中(0700)。除此之外不会发送到任何地方。若要使用完全本地、零外发的审核器,请使用 ollama。
故障排除
出现 sh: inspectrum: command not found/claude mcp list 显示 ✗ Failed to connect,但仅当当前目录是 Inspectrum 仓库本身时才会发生。 当 cwd 位于名称为 inspectrum 且版本匹配的包中时,npx inspectrum@<version> 会针对本地包解析规格,而包自身的 bin 永远不会链接到其 node_modules/.bin 中。已发布的包没有问题。解决方法:从其他目录运行,或安装真正的二进制文件并改用它进行注册:
npm install -g inspectrum
claude mcp add --transport stdio --scope user inspectrum -- inspectrum
审核门感觉很慢? 在 [reviewers.codex] 中设置 effort = "medium"(参见「调优」)。还有其他问题? 运行 npx -y inspectrum@latest doctor,一次性诊断安装、登录和模型解析问题——请附上其输出提交问题。
如果 Inspectrum 帮你发现了糟糕的计划,给仓库点个星 ⭐——其他 Agent 管理者就是通过它找到这个项目的。
MIT — Yann Menec。欢迎贡献:CONTRIBUTING.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
