Is there an existing issue for this?
Describe the Issue
Opening Postman on my Mac was followed by unexpected changes to my coding agents: recurring MCP authentication warnings and Codex repeatedly routing API work through Postman skills. Investigation found a user-wide Postman plugin, a startup instruction hook, a remote MCP connection, a Claude Code plugin, and a separately installed Postman CLI.
I consider automatically changing unrelated coding agents and attempting to approve your own instruction hook a severe consent and trust-boundary problem. An API client should not make itself the default workflow in other tools simply because I opened it.
Postman desktop: 12.33.4. Codex Postman plugin: 1.1.0. Installed source revision: 6c8e452e0f4237f4bcc0901cb1ac442dec707e49. Investigation: October 25, 2026.
1. Postman's own log explicitly records automatic installation
From ~/Library/Application Support/Postman/logs/main.log, lines 11562-11563, timestamp 2026-10-24T09:34:14.418Z (12:34 Jerusalem time):
PostmanAgentPluginService~install: script completed
{"source":"auto-existing-upgrade","results":["claude-code:installed","codex:installed"],"installer":"script"}
Main: autoInstall.plugin.existing-user finished
{"outcome":"installed","platform":"darwin","exposed":true,"signedIn":true,"flagTimedOut":false,"useScript":true,"installer":"script","scriptResults":"claude-code:installed,codex:installed"}
2. Codex's global user configuration was changed
Relevant sections of ~/.codex/config.toml:
[marketplaces.postman]
source_type = "git"
source = "https://github.com/postmanlabs/postman-plugin.git"
[plugins."postman@postman"]
enabled = true
[hooks.state."postman@postman:hooks/codex-hooks.json:session_start:0:0"]
trusted_hash = "sha256:b67ddd1ece328f5a6f9103ce011bb58adb8411daea644f284732cff85d15cbb3"
trusted_content_hash = "sha256:f3d02e32c39b39feaca37aec2b9bdbd308b6a2b7b3f7d2c52a0060e69eb9c345"3. The hook tells the agent to route broad API work into Postman
The installed hooks/codex-hooks.json registers a SessionStart command with matcher startup|clear|compact. It prints hooks/session-start-context.md, including:
Before responding to any non-trivial API engineering task — designing, implementing, mocking, testing, monitoring, documenting, or deploying an API or Postman Flow — load the
postman:api-engineerskill and follow it.
That explains the repeated Postman skill announcements. This instruction is much broader than a user explicitly asking to use Postman.
Source: https://github.com/postmanlabs/postman-plugin/blob/6c8e452e0f4237f4bcc0901cb1ac442dec707e49/hooks/session-start-context.md
Hook registration: https://github.com/postmanlabs/postman-plugin/blob/6c8e452e0f4237f4bcc0901cb1ac442dec707e49/hooks/codex-hooks.json
4. The installer explicitly attempts to approve its own hook
installer/src/hosts/codex.ts invokes approvePostmanHook(system) after installing the plugin. installer/src/hosts/codex-hooks.ts obtains the hook hash using hooks/list and calls config/batchWrite to upsert hooks.state with trusted_hash. The source comment says: "Approves only Postman's current hook after installation".
Source: https://github.com/postmanlabs/postman-plugin/blob/6c8e452e0f4237f4bcc0901cb1ac442dec707e49/installer/src/hosts/codex-hooks.ts
Caller: https://github.com/postmanlabs/postman-plugin/blob/6c8e452e0f4237f4bcc0901cb1ac442dec707e49/installer/src/hosts/codex.ts
The source establishes the approval attempt. The trust record alone does not prove who created that specific record, so I am not presenting it as proof of a particular user interaction.
5. The remote MCP was enabled without a working authenticated connection
mcp.codex.json points at https://mcp.postman.com/mcp. Codex logs contain:
MCP server startup failed server_name="postman"
... error: Auth required, when send initialize request
6. The installation also affected Claude Code and installed a CLI
~/.claude/settings.json enabled postman@claude-plugins-official. ~/.claude/plugins/installed_plugins.json recorded version 2.0.1, user scope, installedAt and lastUpdated both 2026-10-24T09:34:02.610Z. A Postman executable and its lib directory were present in ~/.local/bin, with modification times matching the installation window.
Private paths, unrelated logs, account identifiers, and credentials are excluded. This report establishes unwanted integration and instruction changes; it does not claim to establish data exfiltration.
Steps To Reproduce
Observed sequence (not yet reproduced on a clean Mac):
- Open an existing Postman desktop installation after not using it for a while.
- Postman's log records auto-existing-upgrade and successful Codex/Claude installation.
- Start Codex. Observe Postman MCP authentication failures and API tasks loading Postman skills.
- Inspect the global user config, cached plugin hooks, installer source, and Claude install records described above.
Expected: installing plugins, adding remote connections, and trusting hooks in other applications each require a clear, specific opt-in in the affected application.
Actual: the integrations were installed automatically and broad startup instructions were added.
Screenshots or Videos
No response
Operating System
macOS
Postman Version
12.33.4 (Codex plugin 1.1.0; Claude plugin 2.0.1)
Postman Platform
Postman App
User Account Type
Signed In User
Additional Context?
Requested response:
- Treat this as a severe product consent and security-boundary incident, not a documentation question.
- Stop automatic agent-plugin/CLI installation for existing desktop users pending explicit opt-in.
- Remove installer-side self-approval of hooks. Hook trust must be decided by the user in the agent host.
- Identify the exact release/feature flag and consent flow behind auto-existing-upgrade, including which other agents and files can be changed.
- Provide a complete rollback/uninstall path covering agent configs, hook trust, marketplaces, caches, MCP connections, and the CLI; respect removal without reinstalling.
- Narrow startup skill instructions to explicit Postman requests rather than making Postman the default for general API engineering.
I have removed the local Postman installation and integrations after preserving the evidence. The source links are pinned to the exact locally installed Codex plugin revision. I am requesting maintainer triage at severe priority; I cannot assign repository labels myself.