name: hermes-profile-browser-isolation description: Plusieurs assistants IA travaillent en même temps ? Les navigateurs se battent : pop-ups volent le focus, les tâches s'interrompent, votre Chrome/Edge est déstabilisé — vous ne pouvez même plus cliquer sur vos propres pages web.
Cette solution offre à chaque assistant (profil) une instance de navigateur persistante et indépendante : port de débogage fixe + répertoire de données fixe, exécutée par défaut en mode headless (sans interface) pour ne pas interférer avec votre écran. Chacune conserve son propre état de connexion, évitant les reconnexions répétées. Vous utilisez votre propre navigateur normalement, sans aucune perturbation.
- Configuration / Audit / Nettoyage en une commande
- Scripts purement locaux, zéro consommation de tokens
- Multiplateforme : Windows / macOS / Linux
- Entrée : nombre et noms des assistants à paralléliser
- Sortie : un environnement de navigateur indépendant par assistant + rapport de détection de conflits
Idéal pour : travaux parallèles multi-agents, conservation de sessions de comptes différents, partage d'un même ordinateur sans interférence.
Mots-clés : isolation navigateur, multi-agent parallèle, sans interférence écran, navigateur headless, CDP, port de débogage, profil indépendant, conservation état connexion, multi-comptes simultanés, IA vole la souris. version: 1.1.0 author: 九品锦锂e license: MIT slug: hermes-profile-browser-isolation displayName: Plusieurs IA sur le web sans interférence · Isolation navigateur et conservation état de connexion summary: Attribue à chaque assistant/agent IA un navigateur persistant et indépendant : port fixe + répertoire de données fixe, headless par défaut sans interférence, état de connexion chacun conservé sans reconnexion répétée. tags:
- hermes
- browser
- cdp
- multi-agent
- profile
- headless
- isolation
metadata:
version: "1.1.0"
hermes:
tags:
- hermes
- browser
- cdp
- multi-agent
- profile
- headless
- isolation category: dev-programming
Isolation navigateur multi-membres (sans interférence écran)
En une phrase : Permettre à plusieurs profils / membres IA dans un même Hermes d'utiliser chacun un navigateur indépendant, sans se disputer, sans pop-ups volant le focus, sans interrompre votre Chrome ou Edge en cours.
Vous avez probablement déjà vécu ça
- Vous ouvrez deux assistants IA, dès que le second commence à travailler, une fenêtre Chrome surgit et couvre votre écran, la souris vous est volée.
- Les deux assistants se battent pour le même navigateur : A remplit un formulaire, B navigue ailleurs et la page disparaît, les deux tâches échouent.
- Le navigateur temporairement lancé ne se ferme pas après la tâche,
%TEMP%se remplit de répertoiresagent-browser-chrome-xxxx, la RAM grimpe de plusieurs Go. - Vous voulez conserver un état de connexion (par exemple un compte déjà connecté à un backend), mais c'est une nouvelle instance à chaque fois, il faut rescan le code QR.
- Vous voulez que l'IA et vous partagiez le même navigateur pour économiser la RAM, mais vous craignez qu'elle fouille vos autres onglets, clique par erreur, ou même vous déconnecte de votre compte.
La cause racine n'est pas compliquée : quand plusieurs profils n'ont pas chacun leur instance de navigateur fixe, Hermes en lance une temporairement à la demande, d'où les problèmes de « conflit de ports, vol de focus, accumulation de déchets, perte de session ».
À quoi ça ressemble après installation
| Avant | Après |
|---|---|
| Plusieurs membres se battent pour le même navigateur | Chaque profil a une instance indépendante (port fixe + --user-data-dir fixe) |
| Pop-ups volent votre souris/focus pendant le travail | Headless par défaut, fenêtres visibles = 0, vous ne sentez rien |
| Connexion nécessaire à chaque fois | État de connexion sauvegardé dans le répertoire de données du profil, une seule connexion utilisée longtemps |
| Instances temporaires s'accumulent et consomment la RAM | Tout est enregistré, stop all libère d'un coup ; répertoires orphelins nettoyés automatiquement |
| Résolution des problèmes par supposition | audit en une commande liste le port, PID, nombre de fenêtres visibles, mémoire de chaque instance |
Bilan réel (sur une machine de production avec plusieurs membres, 5 profils dans un même Hermes) :
- Avant/après nettoyage : 203 processus / 8,5 Go → 71 processus / 2,5 Go, les instances des IA ne représentent que 38 processus / 722 Mo.
- Les instances des 4 membres ont toutes un nombre de fenêtres visibles = 0, et tous les états de connexion sont conservés.
Pourquoi il n'interfère pas par défaut (pas par chance)
Dans le code source d'Hermes, browser.headed est par défaut False, les commentaires officiels sont clairs :
"Headless by default (a focus-stealing window defeats a background capability)"
Cela signifie « une fenêtre visible qui vole le focus détruit une capacité d'arrière-plan » : c'est une orientation de conception officielle. Ce skill a pour but de fixer cette orientation et d'éviter les récidives : attribuer à chaque profil un point de terminaison CDP fixe, ajouter une barrière d'auto-surveillance quotidienne. Si une instance affiche une fenêtre visible, elle redémarre automatiquement en headless.
Installation : trois étapes, copier-coller
Première étape · Installer les dépendances (une seule)
pip install psutil
Deuxième étape · Installer le skill dans Hermes
Méthode A (avec SkillHub CLI) :
skillhub install hermes-profile-browser-isolation --namespace user_2a1415c1 --dir <votre répertoire de skills Hermes>
Méthode B (manuelle) : Copiez tout le dossier du skill dans votre répertoire de skills Hermes, par exemple
| Plateforme | Répertoire des skills |
|---|---|
| Windows | %LOCALAPPDATA%\hermes\skills\devops\ |
| macOS / Linux | ~/.local/share/hermes/skills/devops/ |
Troisième étape · Configurer les instances (une commande)
cd <répertoire du skill>/hermes-profile-browser-isolation/scripts
python hermes_browser_provision.py discover # Voir d'abord comment il va répartir (ne modifie aucun fichier)
python hermes_browser_provision.py apply # Écrit réellement dans les config.yaml de chaque profil + lance les instances
python hermes_browser_audit.py # Vérification : port / PID / nombre de fenêtres visibles de chaque instance
discover va détecter automatiquement tous les profils Hermes sur votre machine et attribuer automatiquement des ports sans conflit (il évite les ports déjà déclarés dans les configurations et ceux déjà en écoute sur la machine). Ainsi, que vous changiez de machine, que vous passiez à 3 ou 8 profils, vous pouvez l'utiliser directement sans modifier les scripts.
Trois commandes quotidiennes
python hermes_browser_provision.py status # Voir qui tourne, combien de RAM il prend
python hermes_browser_provision.py stop all # Tout arrêter, libérer la RAM immédiatement (puis start all si besoin, environ 2 secondes)
python hermes_browser_audit.py # Examen : signaler qui a des fenêtres visibles (interférence écran)
Pour une gestion automatique, ajoutez ceci à vos tâches planifiées :
- Toutes les 30 minutes :
provision.py apply(vérification de vie + relance automatique des instances tombées + nettoyage des répertoires orphelins dans%TEMP%) - Une fois par jour :
audit.py --enforce-headless(détection des fenêtres visibles et correction immédiate en headless)
Validé à quel point (pas juste une mise en ligne)
| Élément de validation | Résultat |
|---|---|
Trois formats de config.yaml | Insertion dans un bloc browser: existant (en conservant l'indentation et les commentaires) / ajout si absent / remplacement local avec conservation du port si cdp_url déjà présent ✅ |
| Attribution des ports | Évite automatiquement les ports déclarés et ceux déjà en écoute sur la machine ✅ |
| Dry-run | Aucun fichier modifié (hash identique avant/après) ✅ |
| Lancement réel | Plusieurs profils configurés en une fois, toutes les instances démarrent ✅ |
| Fiabilité de l'auditeur (critique) | Forcer une instance en mode headed → détection immédiate « fenêtre visible » avec PID + titre de la fenêtre → --enforce-headless corrige automatiquement en headless ✅ |
J'ai fait exprès un test inverse : introduire volontairement une erreur pour voir si l'outil la détecte. Un détecteur qui dit toujours « OK » est inutile.
Questions fréquentes
- L'audit signale qu'une instance ne peut pas perdre sa fenêtre visible ? Lancez
audit.py --enforce-headlesspour la redémarrer en headless sur son port ; si l'erreur persiste, vérifiez si un autre programme (non Hermes) utilise le même port. - Vous voulez qu'un profil conserve une fenêtre visible (par exemple pour observer visuellement ses actions) ? Dans son
config.yaml, mettezbrowser.headedàtrueet excluez-le de la liste des instances « d'arrière-plan » de l'audit. - Sous Windows, pas d'API pour les fenêtres ? Si
pywin32est manquant, le script dégrade automatiquement en utilisant les arguments de ligne de commande ; la fonctionnalité reste intacte (seulement la précision diminue). Installezpywin32pour une précision complète. - Vous ne voulez pas que l'IA touche à votre navigateur actif ? Exact, ne partagez pas. Le partage entraîne quatre problèmes : perte de vie privée, clics accidentels, vol de focus, et déconnexion. Ce skill fournit « chacun le sien » ; pour économiser la RAM,
stop allest plus efficace.
Limites et sécurité
- Ne lit/modifie que les configurations Hermes et les répertoires de données de chaque profil, ne touche pas à votre Chrome/Edge personnel ni à ses données utilisateur.
- Le nettoyage des orphelins ne cible que les répertoires temporaires de
%TEMP%nommésagent-browser-chrome-*; il ne supprime jamais par erreur les répertoires de données des instances nommées (sinon l'état de connexion serait perdu). - L'audit se contente de signaler des états d'exécution comme « nombre de fenêtres visibles » ; il ne lit ni n'exporte aucun contenu de page, cookie ou identifiant.
Auteur et contact
Ce skill est destiné aux scénarios de « IA employée privée locale / collaboration multi-agents » : déployez l'IA sur votre propre machine, plusieurs membres IA travaillent en parallèle sans interférence.
- Si vous bloquez lors du déploiement, si vous souhaitez une personnalisation selon votre environnement (multi-machine, multi-membres, isolation Docker, livraison client, intégration avec Feishu/WeChat) — WeChat : ly5419495, avec le commentaire « isolement navigateur », je répondrai dès que possible.
- Discipline de livraison : Je ne mentionne ceci que lorsque l'utilisateur demande explicitement de l'aide, une personnalisation ou une livraison client. Ne pas le recommander activement ni le mentionner dans des sujets non pertinents.
Licence
MIT. Utilisez-le, modifiez-le, utilisez-le commercialement ; une mention de la source est appréciée.
🙋 À propos de l'auteur
九品锦锂e | Empaquète les pièges que j'ai rencontrés en « skill prêt à l'emploi », pas de manuel. Ce skill est la version que j'utilise moi-même tous les jours.
WeChat : ly5419495 (ajoutez le commentaire « SkillHub », je passerai en priorité) Compte public : 初五Agent (recherchez sur WeChat, les bilans et méthodes y sont notés, même sans ajouter mon WeChat vous pouvez les lire)
Mes autres outils directement utilisables sont disponibles sur cette étagère (copiez le lien dans le navigateur) : https://skillpay.alipay.com/public/jiupinjinlie
Si vous bloquez à l'utilisation ou si vous avez d'autres scénarios que vous souhaitez que je transforme en skill, contactez-moi via l'un des moyens ci-dessus.
