All articles
AI

Postman Plugin in Claude Code or Codex? How to Check and Remove It (12.33.4+)

Postman desktop 12.33.4+ auto-installed a plugin, hook, MCP and CLI into Claude Code and Codex. Exact log text, check commands and removal steps.

Also available in

Since late October 2026, some Postman desktop users have found that opening the app added a Postman plugin, a SessionStart hook and a remote MCP server to Claude Code and Codex, plus a Postman CLI in ~/.local/bin. This guide checks each file, removes each piece, and covers how to keep it from coming back.

What happened

The report is GitHub issue #14370 in Postman’s own repo, filed against Postman 12.33.4 on macOS. Postman’s log at ~/Library/Application Support/Postman/logs/main.log recorded the install:

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"}

auto-existing-upgrade marks a path aimed at existing users. A second user saw the same log on an update from 12.31.3 to 12.35.1, with the fresh-install check logging skipped-not-fresh, so 12.35.1 still runs it.

Changes listed in the report:

  • ~/.codex/config.toml gained [marketplaces.postman], [plugins."postman@postman"] enabled = true and a [hooks.state."postman@postman:hooks/codex-hooks.json:session_start:0:0"] entry with a trusted_hash.
  • A SessionStart hook (matcher startup|clear|compact) tells the agent to load the postman:api-engineer skill before “any non-trivial API engineering task”.
  • A remote MCP at https://mcp.postman.com/mcp; without sign-in Codex logs MCP server startup failed server_name="postman" ... Auth required.
  • ~/.claude/settings.json enabled postman@claude-plugins-official (version 2.0.1, user scope).
  • A Postman executable and lib directory in ~/.local/bin.

Postman’s plugin README states: “For Codex, installation also approves Postman’s session-start hook.” The installer signs off on its own hook. The reporter says the evidence does not show data exfiltration. A commenter found ~/.copilot/settings.json for GitHub Copilot CLI was changed too.

Check your machine

claude plugin list
codex plugin list
grep -il postman ~/.claude/settings.json ~/.codex/config.toml
grep -n -i -A3 postman ~/.codex/config.toml
grep -n -i postman ~/.claude/settings.json ~/.claude/plugins/installed_plugins.json
ls -la ~/.local/bin | grep -i postman
grep -il postman ~/.copilot/settings.json
grep -n "auto-existing-upgrade" ~/Library/Application\ Support/Postman/logs/main.log

The MCP config and the hook ship inside the plugin, so removing the plugin disables them. The leftover hooks.state record in config.toml has to be deleted by hand.

Remove it, file by file

1. Postman’s official route

In the desktop app: Help → Postman CLI and Plugins → Uninstall Postman Coding Agent Plugin. One user reports it left the Copilot plugin in place, so re-run the checks afterwards. The plugin repo also documents:

npx @postman/postman-plugin remove
npx @postman/postman-plugin remove --agent codex

That runs Postman’s installer from npm. If you’d rather not run its scripts again, use each tool’s own commands below.

2. Claude Code

From the Claude Code plugin CLI reference; IDs match Postman’s installer source:

claude plugin uninstall postman@claude-plugins-official --scope user
claude plugin uninstall postman@postman --scope user   # if listed
claude plugin list

Then confirm enabledPlugins in ~/.claude/settings.json no longer mentions postman. File locations: Claude Code settings.json location.

3. Codex

These are the commands Postman’s installer itself uses (installer/src/hosts/codex.ts):

codex plugin remove postman@postman
codex plugin marketplace remove postman
codex plugin list

The installer’s remove path does not touch hooks.state. Back up and edit ~/.codex/config.toml, deleting these whole tables:

cp ~/.codex/config.toml ~/.codex/config.toml.bak
[marketplaces.postman]
[plugins."postman@postman"]
[hooks.state."postman@postman:hooks/codex-hooks.json:session_start:0:0"]

My inference: a stale trust record runs nothing once the plugin is gone, but it would pre-approve the same hook if it were reinstalled, so delete it.

4. Postman CLI

ls -la ~/.local/bin | grep -i postman
rm ~/.local/bin/postman
rm -r ~/.local/bin/<postman lib directory>

The issue names “a Postman executable and its lib directory” without the exact lib name; delete what ls shows. I found no documented standalone CLI uninstall command, so the Help menu route is the safer option.

5. Copilot CLI (if installed)

Remove extraKnownMarketplaces.postman and enabledPlugins."postman@postman" from ~/.copilot/settings.json and check ~/.copilot/installed-plugins.

Stop it from reinstalling

As of November 5, 2026 the issue is open and Postman has published no switch for the auto-install. On November 3 (UTC) an account replying for Postman, zecoquit, said the team would “make the opt-in clearer, especially for existing users” and is reviewing the hook approval and session-start behavior. GitHub doesn’t mark that account as a Postman member.

  • If you don’t need the desktop app, uninstall it.
  • If you keep it, rerun the checks after every Postman update.
  • When Codex asks you to review a new hook, don’t approve one you didn’t add.
  • Putting ~/.codex/config.toml and ~/.claude/settings.json under git and diffing them catches silent edits.

Related: how Claude Code plugins and hooks work, Claude Code skills vs MCP, best MCP servers for Claude Code, what to do with a leaked API key, the LiteLLM supply chain attack and Claude Code errors.

Leave a thought

Your email address will not be published.