Vous ouvrez un client API pour vérifier une demande. Des jours plus tard, votre agent de codage commence à acheminer le travail API ordinaire par ce même client, et un serveur distant auquel vous n’avez jamais consenti continue de demander une connexion. C’est la séquence dans le billet GitHub 14370 sur le dépôt d’assistance Postman, déposé le 25 octobre 2026. Le rapporteur a ouvert Postman de bureau 12.33.4 sur un Mac, et le journal propre de Postman a enregistré une installation automatique dans deux autres outils. Aucune invite dans aucun des deux outils. Les extensions sont simplement arrivées.
Ce tutoriel les retire correctement. Une désinstallation normale n’est pas tout le travail ici, parce que l’installation a touché les registres de confiance et les places de marché autant que les fichiers d’extension. Vous vérifierez d’abord, vous retirerez ensuite et vous vérifierez de nouveau à la fin.
Ce que vous allez construire ou apprendre
Vous apprendrez comment trouver et retirer une extension indésirable dans deux agents de codage. À la fin, Codex n’aura aucune place de marché Postman, aucune extension Postman activée et aucun registre de confiance pour le crochet SessionStart de Postman. Claude Code n’aura aucune extension Postman activée à la portée utilisateur. Vous saurez aussi comment distinguer une entrée de configuration active d’un fichier cache inoffensif, ce qui est la compétence qui compte la prochaine fois qu’un outil s’installe quelque part où il n’a pas été invité.
Ce que la preuve montre et ne montre pas compte, alors voici les choses simplement. Le billet documente des installations indésirables, des modifications de configuration, une instruction de démarrage large et un programme d’installation qui approuve son propre crochet. Il ne documente pas de données qui quittent la machine. La connexion MCP distante dans le rapport a échoué avec une erreur d’authentification, et le rapporteur énonce dans le billet que le rapport ne prétend pas à un vol de données. Traitez ceci comme un problème de consentement et de confiance, parce que c’est ce que le registre appuie.
Avant de commencer
Connaissez les quatre endroits que cette installation a touchés, d’après le billet. Dans Codex, ~/.codex/config.toml a gagné une table de place de marché Postman, une table d’extension activée et un registre de confiance de crochet sous hooks.state. Dans Claude Code, ~/.claude/settings.json a activé postman@claude-plugins-official, et ~/.claude/plugins/installed_plugins.json a enregistré l’installation à la version 2.0.1 et à la portée utilisateur. Un binaire CLI Postman a aussi atterri dans ~/.local/bin.
Le crochet est la partie qui vaut la peine d’être comprise avant de supprimer quoi que ce soit. Les crochets Codex sont des scripts qui fonctionnent à des points réglés dans une session. La documentation des crochets d’OpenAI dit qu’un crochet qu’aucun gestionnaire ne contrôle doit être examiné et approuvé avant de pouvoir fonctionner, et la confiance est enregistrée par rapport au hachage de la définition exacte du crochet. L’extension Postman livre un crochet SessionStart qui se déclenche au démarrage, à l’effacement et au compactage. Il affiche un fichier de contexte qui dit à l’agent de charger la compétence postman:api-engineer avant toute tâche large d’ingénierie API. Le code source du programme d’installation approuve ensuite ce crochet lui même. Une fonction dans le programme appelle la liste des crochets, obtient le hachage et l’écrit dans hooks.state comme approuvé. Le commentaire dans ce code source se lit : “Approves only Postman’s current hook after installation.” Le README actuel de l’extension Postman dit la même chose en mots plus simples : l’installation approuve aussi le crochet pour vous, sans invite de crochet séparée.
Vérifiez d’abord, supprimez ensuite. Illustration générée par Dirty Static.
Étape 1 : copier les configurations avant d’y toucher
Action : faites une copie datée des deux dossiers de configuration. Ces copies sont votre voie de retour si une modification ultérieure tourne mal.
mkdir -p ~/agent-config-backup-2026-11-04
cp ~/.codex/config.toml ~/agent-config-backup-2026-11-04/codex-config.toml
cp ~/.claude/settings.json ~/agent-config-backup-2026-11-04/claude-settings.json
cp ~/.claude/plugins/installed_plugins.json ~/agent-config-backup-2026-11-04/claude-installed_plugins.json
Résultat attendu : trois fichiers se trouvent dans le nouveau dossier de sauvegarde. Si une commande de copie signale qu’un fichier n’existe pas, cet agent n’est peut être pas installé, ou sa configuration vit peut être sous CODEX_HOME ou CLAUDE_CONFIG_DIR. Notez quel fichier manquait et continuez.
Étape 2 : vérifier les fichiers que le programme a touchés
Action : cherchez des entrées Postman dans chaque fichier de configuration. Ces recherches ne changent rien. Elles affichent la preuve.
grep -n -i postman ~/.codex/config.toml
grep -n -i postman ~/.claude/settings.json
grep -n -i postman ~/.claude/plugins/installed_plugins.json
ls -la ~/.local/bin | grep -i postman
Sur un Mac, vous pouvez aussi vérifier si l’installation automatique est ce qui s’est produit sur votre machine. Cherchez dans le journal Postman le nom du déclencheur tiré du billet :
grep -n "auto-existing-upgrade" ~/Library/Application\ Support/Postman/logs/main.log
Résultat attendu : sur une machine touchée, la recherche Codex montre trois blocs comme ceux que le billet a conservés :
[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:..."
trusted_content_hash = "sha256:..."
Les recherches Claude montrent postman@claude-plugins-official dans les extensions activées et un registre dans le fichier des extensions installées. Si chaque recherche n’affiche rien, votre machine ne montre aucun signe de cette installation, et vous pouvez arrêter ici. Votre vérification est le résultat.
Étape 3 : retirer l’extension de Claude Code
Action : désinstallez l’extension avec la commande qu’Anthropic documente pour gérer les extensions depuis votre shell. La documentation des extensions de Claude Code dit que la désinstallation par shell agit sur la portée utilisateur, qui est la portée que cette installation a utilisée.
claude plugin uninstall postman@claude-plugins-official
Résultat attendu : la commande signale l’extension comme désinstallée. Si vous préférez arrêter l’extension maintenant et décider plus tard, claude plugin disable postman@claude-plugins-official l’éteint sans la retirer. Pour ce nettoyage, la désinstallation est le bon choix. Vous pouvez toujours installer l’extension exprès plus tard, ce qui est la façon dont elle aurait dû arriver au départ. Notre guide pour faire fonctionner Claude Code et Codex côte à côte couvre les installations délibérées comme celle là.
Étape 4 : retirer l’extension et la place de marché de Codex
Action : retirez d’abord l’extension, puis retirez la place de marché qui l’a livrée. La documentation des extensions d’OpenAI couvre les commandes de place de marché, dont la liste et le retrait.
codex plugin remove postman@postman
codex plugin marketplace remove postman
Résultat attendu : les deux commandes se terminent, et codex plugin marketplace list ne montre plus d’entrée Postman. Si la commande de retrait signale que l’extension n’est pas installée, ne la forcez pas. Le retrait de la place de marché et la vérification manuelle à l’étape 6 sont ce qui garantit que la configuration est propre.
Étape 5 : lancer l’outil de retrait de Postman, puis décider pour le CLI
Action : lancez l’outil de retrait du projet d’extension de Postman. Le README du projet dit que la commande du programme d’installation peut signaler ce qui est installé avec status et désinstaller avec remove, dans chaque agent qu’il prend en charge.
npx @postman/postman-plugin status
npx @postman/postman-plugin remove
Résultat attendu : la sortie de statut après le retrait montre l’extension comme non installée pour Codex et Claude Code. Un trou compte ici. Ni le README ni la documentation d’installation n’énoncent que cet outil efface le registre de confiance de crochet de Codex. Supposez qu’il ne le fait pas, et vérifiez à l’étape 6.
Le CLI dans ~/.local/bin est un choix séparé. La documentation CLI de Postman dit qu’un CLI installé par script se retire en supprimant le binaire, et que le binaire vit dans ~/.local/bin sous macOS et Linux. Si le CLI est arrivé avec cette installation et que vous ne l’utilisez pas, supprimez le. Si vous avez installé le CLI Postman exprès par npm, utilisez npm uninstall -g postman-cli à la place.
ls -la ~/.local/bin | grep -i postman
rm ~/.local/bin/postman
Étape 6 : effacer à la main le registre de confiance de crochet restant
Action : ouvrez ~/.codex/config.toml dans un éditeur de texte et cherchez tout bloc Postman qui a survécu. Supprimez chaque bloc entier qui nomme Postman : la table [marketplaces.postman], la table [plugins."postman@postman"] et la table [hooks.state."postman@postman:hooks/codex-hooks.json:session_start:0:0"] avec ses deux lignes de hachage. Supprimez seulement des tables entières, de l’en tête de la table jusqu’à la ligne avant l’en tête suivant. Laissez chaque autre réglage exactement comme il est.
Résultat attendu : le fichier s’enregistre sans dommage à sa structure. Cette étape est le centre de tout le tutoriel. Retirer un fichier d’extension pendant que son registre de confiance reste derrière laisse la porte marquée comme approuvée, et le registre de confiance est la partie qu’aucun écran de désinstallation ne vous montre. Si vous examinez souvent les extensions d’agents, le répertoire de notes d’hygiène de PlugVet vaut la peine d’être connu avant la prochaine installation, pas après.
Configurations propres, recherches vides. Illustration générée par Dirty Static.
Vérification
Lancez de nouveau la vérification de l’étape 2. Chaque recherche devrait maintenant n’afficher rien :
grep -n -i postman ~/.codex/config.toml
grep -n -i postman ~/.claude/settings.json
grep -n -i postman ~/.claude/plugins/installed_plugins.json
claude plugin list
codex plugin list
codex plugin marketplace list
Démarrez ensuite chaque agent à neuf. Dans Codex, lancez /hooks et confirmez qu’aucun crochet SessionStart de Postman n’apparaît dans la liste. Démarrez une session dans chaque agent et donnez lui une petite tâche qui n’a rien à voir avec Postman. L’agent devrait démarrer sans annonce de compétence Postman et sans avertissement d’authentification MCP. Ce démarrage propre, plus les recherches vides, est la preuve.
Dépannage
| Problème | Cause probable | Correctif |
|---|---|---|
| Une recherche trouve Postman seulement dans un dossier cache d’extensions | Les fichiers cache peuvent survivre à un retrait et n’activent rien par eux mêmes | Faites confiance aux fichiers de réglages et aux commandes de liste d’extensions, pas au cache. Si les recherches dans les réglages sont vides et les listes d’extensions sont propres, l’extension a quitté votre machine de toute façon qui fonctionne |
| Codex charge encore la compétence Postman au démarrage | Le registre de confiance ou la table d’extension activée a survécu dans config.toml | Répétez l’étape 6, enregistrez le fichier et démarrez une session Codex neuve. Les vieilles sessions gardent la configuration avec laquelle elles ont démarré |
| Les avertissements d’authentification MCP pour un serveur Postman persistent | L’extension ou sa place de marché est encore enregistrée | Répétez les étapes 4 et 5, puis lancez les recherches de vérification de nouveau avant de démarrer une nouvelle session |
| Claude Code dit que l’extension n’est pas installée, mais les réglages la nomment encore | L’entrée peut se trouver à la portée projet ou locale, pas utilisateur | Vérifiez .claude/settings.json dans votre projet et .claude/settings.local.json ainsi que ~/.claude/settings.json. La documentation de Claude Code explique que la portée locale bat la portée projet, et la portée projet bat la portée utilisateur |
| Codex ne démarre pas après votre modification manuelle | Une table a été coupée en partie, ou une ligne d’en tête a été endommagée | Restaurez config.toml depuis la copie de sauvegarde de l’étape 1, puis répétez l’étape 6 et supprimez seulement des tables entières |
| L’extension revient après une mise à jour Postman | L’application de bureau a lancé son flux d’installation de nouveau | Lancez la vérification de l’étape 2, répétez le retrait et cherchez le nom du déclencheur dans le journal Postman. Dans le fil du billet, Postman a dit qu’il rendra l’adhésion plus claire pour les utilisateurs existants. Jusqu’à ce qu’une version corrigée soit sur votre machine, la vérification est votre garde |
Prochaines étapes
Gardez le dossier de sauvegarde jusqu’à ce que vous ayez fait fonctionner les deux agents pendant quelques jours sans problème, puis supprimez le. Ajoutez les recherches de l’étape 2 à votre routine après toute mise à jour d’un outil de bureau, pas seulement celle de Postman. Le schéma dans cette histoire est la partie qui se généralise : une application de confiance a écrit dans la configuration d’autres applications, et le seul signe était une ligne de journal et un fichier changé. Des fichiers que vous pouvez lire battent des invites que vous n’avez jamais vues.
Postman, pour sa part, vend toujours une voie d’installation délibérée, et l’extension elle même est un vrai outil pour le travail API quand vous la choisissez. Choisir est le mot clé. Installez la depuis le dépôt de l’extension quand vous la voulez, examinez le crochet dans Codex quand Codex le demande et laissez l’invite de confiance faire le travail pour lequel elle a été construite.
Faits vérifiés le 4 novembre 2026, par rapport au billet GitHub 14370, au dépôt de l’extension Postman, à la documentation des extensions d’Anthropic et à la documentation des crochets et des extensions d’OpenAI. Ce tutoriel suit les commandes de retrait documentées et les registres de configuration conservés dans le billet. Il ne prétend pas que la séquence complète a été exécutée sur une machine de test.
Sources
- The install record, config blocks, hook text, installer source, and the reporter’s limits on what the evidence shows: GitHub issue 14370, postmanlabs/postman-app-support
- The deliberate install path, the remover and status commands, and the statement that installation approves the Codex hook: postmanlabs/postman-plugin
- Plugin scopes, where user scope settings live, and the shell install, disable, and uninstall commands: Install and manage plugins, Claude Code documentation
- Hook review and trust, trust recorded against the hook hash, and the
/hooksbrowser: Hooks, Codex documentation - Marketplace list and remove commands from the CLI: Package your plugin, OpenAI Developers
- Where the script installed CLI binary lives and how to remove it, plus the
postman statusagent plugin check: Install the Postman CLI and Postman CLI basic commands - Body illustrations: generated for Dirty Static
FIN DE LA TRANSMISSION
Restez curieux. Remettez tout en question.


