Postman AI 插件静默安装:改了 Codex 与 Claude Code 的信任记录
10 月 25 日,一位开发者在 Postman 官方仓库开了一个 issue,标题写得克制但内容不轻:他只是打开已经登录的 Postman 桌面版,什么也没点,这台机器上的 Codex 和 Claude Code 就被装上了 Postman AI 插件。
11 月 3 日,Postman 官方在 issue 下回应,承认组件是捆绑安装的,表示会「让 opt-in 更清晰」,并「重新审视 hook 审批和 session-start 行为」。这篇把整件事的证据链、真实影响面和你可以立刻做的自查拆开讲。
一句话结论
- 发生的事实清楚:Postman 12.33.4 启动后,日志里出现
auto-existing-upgrade记录,插件安装结果为claude-code:installed和codex:installed,全程没有任何授权弹窗。 - 比安装插件更值得警惕的,是它顺手改了你另外两个工具的全局配置,还写入了一条被标记为「已信任」的 hook——信任记录本应由宿主应用自己决定。
- 没有证据表明数据被外传。举报者自己明确写了这一点,但指出真正的风险在于「默认值被替换」:你以为空白的信任边界,其实已经被别人填好了。
- 这不是 Postman 一家的问题。Copilot、Cursor 也被报告出现同样的 marketplace 条目,说明「安装器替宿主应用做信任决策」是一种正在扩散的模式。
1)到底发生了什么:一次启动的完整轨迹
举报者 indicava 在 macOS 上复现了这条时间线,关键节点是 2026-10-24T09:34:14Z(当地时间 12:34)。他从四个位置拿出了证据,每一处都可以对照检查。
证据一:Postman 自己的日志
在 ~/Library/Application Support/Postman/logs/main.log 的第 11562–11563 行,记录了两条安装事件:来源标为 auto-existing-upgrade,安装器类型 script,结果的 key 分别是 claude-code:installed 和 codex:installed。紧随其后的一条日志把事件标记为 autoInstall.plugin.existing-user,并记录了 outcome: installed、platform: darwin、signedIn: true、useScript: true。
这四行信息拼起来意思很明确:它是给「已经登录的既有用户」做的一次自动升级式安装,而且走的是脚本路径,不是让你手动点按钮。
证据二:Codex 的全局配置被改了
~/.codex/config.toml 里多出了一段:
[marketplaces.postman]
source_type = "git"
source = "https://github.com/postmanlabs/postman-plugin.git"
[plugins."postman@postman"]
enabled = true
也就是说,Codex 的插件市场里被加进去了一个 git 源,指向 Postman 自己的仓库,并且这个插件被直接置为启用。注意这里不是「装了但没开」,是装了并开了。
证据三:一条被预先批准过的 hook
这一段是整件事里最需要警觉的部分。同一个配置文件里有:
[hooks.state."postman@postman:hooks/codex-hooks.json:session_start:0:0"]
trusted_hash = "sha256:b67ddd1e..."
trusted_content_hash = "sha256:f3d02e32..."
Codex 有一个「启动时要带一段上下文」的钩子机制,本来需要用户看一眼、点一下信任才能生效。这条记录说明信任已经被建立过了。而下面这个 hook 注册的内容是,在 startup、clear、compact 三种时机往会话里注入一段指令文本。
那段文本我在仓库里读了原文,大意是:「你现在有 Postman 插件了。面对任何非平凡的 API 工程任务——设计、实现、mock、测试、监控、文档、部署 API 或 Postman Flows——先加载 postman:api-engineer 技能并遵循它。」后面列了 11 个技能:api-engineer(总路由)、api-mocking、api-testing、api-monitoring、flows、ci-integration、api-discovery、ai-readiness、performance-testing、api-documentation、variables。
问题不在于这些技能好不好——它们看起来是正经东西。问题在于触发范围:你只是让 Codex 帮你写个 Flask 路由,并不代表你想让 Postman 的 API 工程方法论接管这次会话。安装一个 API 客户端,不应该换来其它工具里的默认工作流。
证据四:装 CLI,还连了远端 MCP
mcp.codex.json 指向 https://mcp.postman.com/mcp;Codex 日志里出现了 MCP server startup failed server_name="postman" 和 Auth required。同时在 ~/.local/bin 下出现了 Postman 的可执行文件和 lib 目录,修改时间与安装窗口对得上。
Claude Code 这边:~/.claude/settings.json 里启用了 postman@claude-plugins-official,~/.claude/plugins/installed_plugins.json 记录版本 2.0.1、user scope,installedAt 和 lastUpdated 都是 2026-10-24T09:34:02Z——和 Postman 日志的 09:34:14 差 12 秒,同一件事。
2)最关键的一句:安装器自己批准了自己
举报者去翻了插件仓库的源码,找到了这段逻辑:installer/src/hosts/codex.ts 在安装完成后调用 approvePostmanHook(system);installer/src/hosts/codex-hooks.ts 则通过 hooks/list 拿到 hook 的哈希,再通过 config/batchWrite 把 hooks.state 写进配置文件。源码注释写着「Approves only Postman’s current hook after installation」。
这里必须替举报者保留他主动加的那个免责:源码显示了一个审批动作,但仅仅存在一条信任记录,并不能证明是哪个进程或哪个人写进去的。取证上的诚实很重要,本文照搬这一点。
但从设计意图看,问题已经成立:信任这件事,理应由 Codex 问它的用户,而不是由 Postman 的安装器替它答。一旦安装器可以自行写 hooks.state,那么「hook 需要用户审批」这道门槛对任何照抄这套做法的软件都形同虚设。

3)Postman 怎么回应的
11 月 3 日,账号 zecoquit 在 issue 下给出了官方口径:Postman 把 CLI 和 agent 插件捆绑进来,是因为「很多用户单独安装和接线时遇到困难」。下载页和应用更新流程里提到了这件事,并且「你可以在应用内卸载这些组件中的任何一个」。他们说会把 opt-in 做得更清晰,尤其是对既有用户,也正在重新审视 hook 审批和 session-start 行为。
这个回复有两处空缺,值得如实记下来:没有给出 auto-existing-upgrade 背后的版本号、feature flag 和同意流程,也没有给出完整的回滚/卸载程序——而举报者点名要的正是这两样,因为「在应用里卸载」不一定能清掉 ~/.codex/config.toml 里的 marketplace、hook 信任记录和 MCP 条目。
截至我看到的时候,这个 issue 仍然是 open 状态,没有标签、没有指派、没有关联 PR。初始反应是 185 个 👍、40 个 😕、28 个 👀——困惑的表情比点赞更值得注意。
4)影响面比一个大版本号更宽
后续评论里,别人报告了更多受影响的宿主和版本:
- 有用户在 Postman 12.35.1(从 12.31.3 升上来)上复现,时间是 11 月 3 日——说明这不是某个旧版本的孤立问题。
- Copilot 的
~/.copilot/settings.json里出现了postmanmarketplace 和已启用的postman@postman。 - 有报告列出 CLI 版本 1.85.0、Claude 插件 2.0.1、Codex 插件缓存 1.3.0,还有既存的 Cursor 插件 2.2.0。
换句话说,受影响的至少包括 Codex、Claude Code、GitHub Copilot、Cursor 四个宿主。这四个恰好是当下 vibe-coding 的主力工具——所以这件事的现实含义不是「Postman 有点烦」,而是你的编程 Agent 的工作方式可能被第三方软件悄悄改写了。
5)HN 上的争论:为什么大家这么在意
这条 issue 在 Hacker News 上拿到 1146 分、376 条评论,一度挤进最佳榜第三。评论区的高赞不在技术细节,而在一个更宏观的判断:
有人指出 Postman 原本是个专注的 API 测试工具,融资超过 4 亿美元、扩到 1500 多人之后逐渐臃肿,于是有了强制登录、数据采集、订阅和 AI 功能——一种「规模压力反噬产品克制」的典型路径。还有人把这个结果归因到风险投资的激励结构,并与 UNIX/开源那套「安静做一块持久基石」的做法对照。
这些是观点不是事实,但它们解释了为什么会发生:当增长指标变成第一优先级,「默认开启、事后可关」就成了一种成本最低的选择。
6)你现在该做的四步自查
不管你是否用 Postman,只要你在用 Codex、Claude Code、Copilot 或 Cursor,都可以在两分钟内确认一遍。
| 查什么 | 看哪里 | 危险信号 |
|---|---|---|
| Postman 是否自动装过插件 | ~/Library/Application Support/Postman/logs/main.log(macOS) | 出现 auto-existing-upgrade 或 autoInstall.plugin.existing-user |
| Codex 有没有被改配置 | ~/.codex/config.toml | [marketplaces.postman]、[plugins."postman@postman"]、[hooks.state."postman@postman:..."] |
| Claude Code 插件记录 | ~/.claude/plugins/installed_plugins.json | 出现 postman@claude-plugins-official |
| Copilot 设置 | ~/.copilot/settings.json | 出现 postman marketplace 或已启用的 postman@postman |
%APPDATA% 与用户目录下的同名文件。四步的具体做法:
- 先看日志。如果
main.log里没有auto-existing-upgrade相关记录,你大概率没中招,后面三步可以跳过。 - 在应用里卸载。Postman 官方说组件能在应用内卸载,优先用这条路,别手动删配置文件——手动删容易留下半截状态。
- 再清配置残留。卸载后回到上面三个文件,确认
marketplaces.postman、plugins."postman@postman"、hooks.state."postman@postman:..."这几段真的没了。只卸载不清理,hook 的信任记录可能还留着。 - 确认 hook 的信任是你要的。任何
hooks.state里的条目,都应该是你在宿主应用里主动点过信任的。不认识的条目,直接删。
7)这件事真正的教训,不是 Postman 变坏了
如果只把它读成「又一个软件耍流氓」,那就浪费了这条 issue 的价值。它暴露的是一种新的攻击面形态:
过去十年,软件装东西的默认单位是「应用程序」——你装个工具,它占自己的地盘。而现在,编程 Agent 把「能力」变成了跨应用共享的配置:一个 marketplace 源、一条 hook 信任、一个 MCP 端点,都是写进别人家配置文件里的东西。谁有权写这些,谁就在事实上决定了你的 Agent 会怎么工作。
Postman 不是第一个,也不会是最后一个。今天是一个 API 客户端往 Codex 里塞技能路由,明天可能是一个数据库工具往 Claude Code 里塞 schema 探针。判断标准其实很简单:任何跨应用的写操作,都应该由被写入的那个应用向用户要授权,而不是由写入方自己决定。
这也是为什么「安装器自己批准 hook」那一步比「静默装了个插件」严重得多——前者破坏的是整套审批机制的可信度。
小结
已确认的事实:Postman 12.33.4(后续 12.35.1 也有)在既有用户启动时自动安装了 Claude Code 2.0.1 与 Codex 插件,改了 ~/.codex/config.toml(marketplace、启用状态、hook 信任、MCP 端点),装了 CLI,并在会话启动时注入一段「非平凡 API 任务请用 Postman 技能」的指令。官方 11 月 3 日承认捆绑、承诺 opt-in 更清晰,但未给出版本与回滚细节。
未被证实、举报者也明确不作主张的部分:没有数据外传的证据。这一点必须讲清楚,否则就变成了另一种不负责任。
你该带走的一句:允许「自动安装」的软件,也在替你决定别的软件怎么思考。花两分钟看一眼 ~/.codex/config.toml 里有没有你不认识的东西,比读十条评论有用。
参考来源
Postman 官方仓库 issue #14370:Postman silently auto-installs AI plugins and attempts to share all API data(2026-10-25 提出,2026-11-03 官方回应)
Hacker News 讨论:Postman silently auto-installs AI plugins(1146 分,376 条评论)


