chore(i18n): refresh fr translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-14 13:06:25 +00:00
parent e874dbd56c
commit 64707e6a3e

View File

@ -1,40 +1,40 @@
---
read_when:
- Ajout dune automatisation du navigateur contrôlée par lagent
- Ajout de lautomatisation du navigateur contrôlée par lagent
- Déboguer pourquoi openclaw interfère avec votre propre Chrome
- Implémentation des paramètres et du cycle de vie du navigateur dans lapp macOS
summary: Service de contrôle du navigateur intégré + commandes daction
- Implémentation des paramètres du navigateur + du cycle de vie dans lapp macOS
summary: Service de contrôle de navigateur intégré + commandes daction
title: Navigateur (géré par OpenClaw)
x-i18n:
generated_at: "2026-04-11T02:47:49Z"
generated_at: "2026-04-14T13:04:20Z"
model: gpt-5.4
provider: openai
source_hash: da6fed36a6f40a50e825f90e5616778954545bd7e52397f7e088b85251ee024f
source_hash: ae9ef725f544d4236d229f498c7187871c69bd18d31069b30a7e67fac53166a2
source_path: tools/browser.md
workflow: 15
---
# Navigateur (géré par openclaw)
OpenClaw peut exécuter un **profil Chrome/Brave/Edge/Chromium dédié** contrôlé par lagent.
Il est isolé de votre navigateur personnel et géré via un petit service local de
contrôle à lintérieur de la Gateway (loopback uniquement).
OpenClaw peut exécuter un **profil Chrome/Brave/Edge/Chromium dédié** que lagent contrôle.
Il est isolé de votre navigateur personnel et géré via un petit
service de contrôle local à lintérieur du Gateway (loopback uniquement).
Vue débutant :
- Considérez-le comme un **navigateur séparé, réservé à lagent**.
- Le profil `openclaw` ne touche **pas** à votre profil de navigateur personnel.
- Lagent peut **ouvrir des onglets, lire des pages, cliquer et saisir** dans une voie sûre.
- Voyez-le comme un **navigateur séparé, réservé à lagent**.
- Le profil `openclaw` ne **modifie pas** le profil de votre navigateur personnel.
- Lagent peut **ouvrir des onglets, lire des pages, cliquer et saisir du texte** dans un environnement sûr.
- Le profil intégré `user` se rattache à votre vraie session Chrome connectée via Chrome MCP.
## Ce que vous obtenez
- Un profil de navigateur distinct nommé **openclaw** (accent orange par défaut).
- Contrôle déterministe des onglets (lister/ouvrir/focaliser/fermer).
- Actions dagent (cliquer/saisir/faire glisser/sélectionner), instantanés, captures décran, PDF.
- Un contrôle déterministe des onglets (lister/ouvrir/focaliser/fermer).
- Actions de lagent (cliquer/saisir/faire glisser/sélectionner), instantanés, captures décran, PDF.
- Prise en charge facultative de plusieurs profils (`openclaw`, `work`, `remote`, ...).
Ce navigateur nest **pas** votre navigateur principal au quotidien. Cest une surface sûre et isolée pour
Ce navigateur nest **pas** votre navigateur quotidien. Cest une surface sûre et isolée pour
lautomatisation et la vérification par lagent.
## Démarrage rapide
@ -46,15 +46,15 @@ openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
```
Si vous obtenez « Browser disabled », activez-le dans la configuration (voir ci-dessous) et redémarrez la
Si vous obtenez « Browser disabled », activez-le dans la config (voir ci-dessous) et redémarrez le
Gateway.
Si `openclaw browser` est totalement absent, ou si lagent indique que loutil navigateur
nest pas disponible, passez à [Commande ou outil navigateur manquant](/fr/tools/browser#missing-browser-command-or-tool).
Si `openclaw browser` est totalement absent, ou si lagent indique que loutil de navigateur
est indisponible, allez à [Commande ou outil navigateur manquant](/fr/tools/browser#missing-browser-command-or-tool).
## Contrôle par plugin
## Contrôle du Plugin
Loutil `browser` par défaut est désormais un plugin intégré livré activé par
Loutil `browser` par défaut est maintenant un Plugin intégré livré activé par
défaut. Cela signifie que vous pouvez le désactiver ou le remplacer sans supprimer le reste du
système de plugins dOpenClaw :
@ -70,33 +70,33 @@ système de plugins dOpenClaw :
}
```
Désactivez le plugin intégré avant dinstaller un autre plugin qui fournit le
même nom doutil `browser`. Lexpérience navigateur par défaut nécessite les deux éléments suivants :
Désactivez le Plugin intégré avant dinstaller un autre Plugin qui fournit le
même nom doutil `browser`. Lexpérience de navigateur par défaut nécessite les deux éléments suivants :
- `plugins.entries.browser.enabled` non désactivé
- `browser.enabled=true`
Si vous désactivez uniquement le plugin, la CLI navigateur intégrée (`openclaw browser`),
la méthode gateway (`browser.request`), loutil agent et le service de contrôle
du navigateur par défaut disparaissent tous ensemble. Votre configuration `browser.*` reste intacte pour quun
plugin de remplacement puisse la réutiliser.
Si vous désactivez uniquement le Plugin, la CLI de navigateur intégrée (`openclaw browser`),
la méthode gateway (`browser.request`), loutil agent et le service de contrôle de navigateur par défaut
disparaissent tous ensemble. Votre config `browser.*` reste intacte pour quun
Plugin de remplacement puisse la réutiliser.
Le plugin navigateur intégré possède désormais aussi limplémentation runtime du navigateur.
Le core ne conserve que les assistants partagés du Plugin SDK ainsi que des réexportations de compatibilité pour
les anciens chemins dimportation internes. En pratique, supprimer ou remplacer le package du plugin navigateur
supprime lensemble des fonctionnalités du navigateur au lieu de laisser derrière lui un second runtime
possédé par le core.
Le Plugin de navigateur intégré possède maintenant aussi limplémentation dexécution du navigateur.
Le cœur ne conserve que les assistants partagés du Plugin SDK ainsi que des réexportations de compatibilité pour
les anciens chemins dimport internes. En pratique, supprimer ou remplacer le package du Plugin navigateur
supprime lensemble des fonctionnalités du navigateur au lieu de laisser derrière lui une seconde
implémentation dexécution gérée par le cœur.
Les modifications de configuration du navigateur nécessitent toujours un redémarrage de la Gateway afin que le plugin intégré
puisse réenregistrer son service navigateur avec les nouveaux paramètres.
Les changements de configuration du navigateur nécessitent toujours un redémarrage du Gateway afin que le Plugin intégré
puisse réenregistrer son service de navigateur avec les nouveaux paramètres.
## Commande ou outil navigateur manquant
Si `openclaw browser` devient soudainement une commande inconnue après une mise à niveau, ou si
lagent signale que loutil navigateur est manquant, la cause la plus fréquente est une liste
Si `openclaw browser` devient soudainement une commande inconnue après une mise à niveau, ou
si lagent signale que loutil navigateur est manquant, la cause la plus fréquente est une liste
`plugins.allow` restrictive qui ninclut pas `browser`.
Exemple de configuration défectueuse :
Exemple de configuration défaillante :
```json5
{
@ -106,7 +106,7 @@ Exemple de configuration défectueuse :
}
```
Corrigez cela en ajoutant `browser` à la liste dautorisation des plugins :
Corrigez-la en ajoutant `browser` à la liste dautorisation des plugins :
```json5
{
@ -120,13 +120,13 @@ Remarques importantes :
- `browser.enabled=true` ne suffit pas à lui seul lorsque `plugins.allow` est défini.
- `plugins.entries.browser.enabled=true` ne suffit pas non plus à lui seul lorsque `plugins.allow` est défini.
- `tools.alsoAllow: ["browser"]` ne charge **pas** le plugin navigateur intégré. Il ajuste seulement la politique des outils une fois le plugin déjà chargé.
- Si vous navez pas besoin dune liste dautorisation restrictive des plugins, supprimer `plugins.allow` rétablit également le comportement navigateur intégré par défaut.
- `tools.alsoAllow: ["browser"]` ne charge **pas** le Plugin navigateur intégré. Cela ajuste seulement la politique des outils une fois le Plugin déjà chargé.
- Si vous navez pas besoin dune liste dautorisation de plugins restrictive, supprimer `plugins.allow` rétablit également le comportement par défaut du navigateur intégré.
Symptômes typiques :
- `openclaw browser` est une commande inconnue.
- `browser.request` est manquant.
- `browser.request` est absent.
- Lagent signale que loutil navigateur est indisponible ou manquant.
## Profils : `openclaw` vs `user`
@ -134,12 +134,12 @@ Symptômes typiques :
- `openclaw` : navigateur géré et isolé (aucune extension requise).
- `user` : profil intégré de rattachement Chrome MCP à votre **vraie session Chrome connectée**.
Pour les appels doutil navigateur par lagent :
Pour les appels doutil navigateur de lagent :
- Par défaut : utiliser le navigateur isolé `openclaw`.
- Préférez `profile="user"` lorsque les sessions déjà connectées sont importantes et que lutilisateur
- Préférez `profile="user"` lorsque des sessions déjà connectées importent et que lutilisateur
est devant lordinateur pour cliquer/approuver toute invite de rattachement.
- `profile` est le remplacement explicite lorsque vous voulez un mode de navigateur spécifique.
- `profile` est la surcharge explicite lorsque vous voulez un mode de navigateur spécifique.
Définissez `browser.defaultProfile: "openclaw"` si vous voulez le mode géré par défaut.
@ -150,14 +150,14 @@ Les paramètres du navigateur se trouvent dans `~/.openclaw/openclaw.json`.
```json5
{
browser: {
enabled: true, // par défaut : true
enabled: true, // défaut : true
ssrfPolicy: {
// dangerouslyAllowPrivateNetwork: true, // activez seulement pour un accès de confiance au réseau privé
// allowPrivateNetwork: true, // alias hérité
// dangerouslyAllowPrivateNetwork: true, // activez uniquement pour un accès réseau privé de confiance
// allowPrivateNetwork: true, // alias historique
// hostnameAllowlist: ["*.example.com", "example.com"],
// allowedHostnames: ["localhost"],
},
// cdpUrl: "http://127.0.0.1:18792", // remplacement hérité pour un seul profil
// cdpUrl: "http://127.0.0.1:18792", // surcharge historique à profil unique
remoteCdpTimeoutMs: 1500, // délai dexpiration HTTP CDP distant (ms)
remoteCdpHandshakeTimeoutMs: 3000, // délai dexpiration de la poignée de main WebSocket CDP distante (ms)
defaultProfile: "openclaw",
@ -190,30 +190,30 @@ Remarques :
- Le service de contrôle du navigateur se lie au loopback sur un port dérivé de `gateway.port`
(par défaut : `18791`, soit gateway + 2).
- Si vous remplacez le port Gateway (`gateway.port` ou `OPENCLAW_GATEWAY_PORT`),
les ports navigateur dérivés se décalent pour rester dans la même « famille ».
- `cdpUrl` prend par défaut le port CDP local géré lorsquil nest pas défini.
- Si vous surchargez le port du Gateway (`gateway.port` ou `OPENCLAW_GATEWAY_PORT`),
les ports du navigateur dérivés se décalent pour rester dans la même « famille ».
- `cdpUrl` utilise par défaut le port CDP local géré lorsquil nest pas défini.
- `remoteCdpTimeoutMs` sapplique aux vérifications daccessibilité CDP distantes (hors loopback).
- `remoteCdpHandshakeTimeoutMs` sapplique aux vérifications daccessibilité WebSocket CDP distantes.
- La navigation navigateur/ouverture donglet est protégée contre SSRF avant la navigation et reverifiée au mieux sur lURL finale `http(s)` après navigation.
- En mode SSRF strict, la découverte/les sondes de point de terminaison CDP distant (`cdpUrl`, y compris les recherches `/json/version`) sont également vérifiées.
- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` est désactivé par défaut. Définissez-le sur `true` uniquement lorsque vous faites délibérément confiance à laccès navigateur au réseau privé.
- `browser.ssrfPolicy.allowPrivateNetwork` reste pris en charge comme alias hérité pour compatibilité.
- `attachOnly: true` signifie « ne jamais lancer un navigateur local ; seulement sy rattacher sil est déjà en cours dexécution ».
- La navigation/ouverture donglet du navigateur est protégée contre la SSRF avant la navigation et revérifiée au mieux sur lURL finale `http(s)` après navigation.
- En mode SSRF strict, la découverte/les sondes de points de terminaison CDP distants (`cdpUrl`, y compris les recherches `/json/version`) sont également vérifiées.
- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` est désactivé par défaut. Définissez-le sur `true` uniquement lorsque vous faites intentionnellement confiance à laccès navigateur au réseau privé.
- `browser.ssrfPolicy.allowPrivateNetwork` reste pris en charge comme alias historique pour compatibilité.
- `attachOnly: true` signifie « ne jamais lancer un navigateur local ; se rattacher uniquement sil est déjà en cours dexécution ».
- `color` + `color` par profil teintent linterface du navigateur afin que vous puissiez voir quel profil est actif.
- Le profil par défaut est `openclaw` (navigateur autonome géré par OpenClaw). Utilisez `defaultProfile: "user"` pour choisir le navigateur utilisateur connecté.
- Ordre de détection automatique : navigateur système par défaut sil est basé sur Chromium ; sinon Chrome → Brave → Edge → Chromium → Chrome Canary.
- Les profils locaux `openclaw` assignent automatiquement `cdpPort`/`cdpUrl` — définissez-les uniquement pour un CDP distant.
- `driver: "existing-session"` utilise Chrome DevTools MCP au lieu dun CDP brut. Ne
définissez pas `cdpUrl` pour ce pilote.
- Le profil par défaut est `openclaw` (navigateur autonome géré par OpenClaw). Utilisez `defaultProfile: "user"` pour opter pour le navigateur utilisateur connecté.
- Ordre dauto-détection : navigateur système par défaut sil est basé sur Chromium ; sinon Chrome → Brave → Edge → Chromium → Chrome Canary.
- Les profils `openclaw` locaux assignent automatiquement `cdpPort`/`cdpUrl` — définissez-les uniquement pour le CDP distant.
- `driver: "existing-session"` utilise Chrome DevTools MCP au lieu du CDP brut. Ne
définissez pas `cdpUrl` pour ce driver.
- Définissez `browser.profiles.<name>.userDataDir` lorsquun profil existing-session
doit se rattacher à un profil utilisateur Chromium non par défaut comme Brave ou Edge.
## Utiliser Brave (ou un autre navigateur basé sur Chromium)
Si votre navigateur **par défaut du système** est basé sur Chromium (Chrome/Brave/Edge/etc),
OpenClaw lutilise automatiquement. Définissez `browser.executablePath` pour remplacer
la détection automatique :
OpenClaw lutilise automatiquement. Définissez `browser.executablePath` pour surcharger
lauto-détection :
Exemple CLI :
@ -246,43 +246,43 @@ openclaw config set browser.executablePath "/usr/bin/google-chrome"
## Contrôle local vs distant
- **Contrôle local (par défaut) :** la Gateway démarre le service de contrôle loopback et peut lancer un navigateur local.
- **Contrôle distant (hôte de nœud) :** exécutez un hôte de nœud sur la machine qui possède le navigateur ; la Gateway y proxifie les actions du navigateur.
- **Contrôle local (par défaut) :** le Gateway démarre le service de contrôle loopback et peut lancer un navigateur local.
- **Contrôle distant (hôte node) :** exécutez un hôte node sur la machine qui possède le navigateur ; le Gateway y relaie les actions du navigateur.
- **CDP distant :** définissez `browser.profiles.<name>.cdpUrl` (ou `browser.cdpUrl`) pour
vous rattacher à un navigateur distant basé sur Chromium. Dans ce cas, OpenClaw ne lancera pas de navigateur local.
Le comportement à larrêt diffère selon le mode de profil :
Le comportement à larrêt diffère selon le mode du profil :
- profils gérés locaux : `openclaw browser stop` arrête le processus navigateur que
- profils gérés locaux : `openclaw browser stop` arrête le processus de navigateur que
OpenClaw a lancé
- profils attach-only et CDP distants : `openclaw browser stop` ferme la
session de contrôle active et libère les remplacements démulation Playwright/CDP (viewport,
schéma de couleurs, locale, fuseau horaire, mode hors ligne et état similaire), même
si aucun processus navigateur na été lancé par OpenClaw
- profils attach-only et CDP distants : `openclaw browser stop` ferme la session de contrôle
active et libère les surcharges démulation Playwright/CDP (viewport,
schéma de couleurs, langue, fuseau horaire, mode hors ligne et état similaire), même
si aucun processus de navigateur na été lancé par OpenClaw
Les URL CDP distantes peuvent inclure une auth :
Les URL CDP distantes peuvent inclure une authentification :
- Jetons de requête (par ex. `https://provider.example?token=<token>`)
- Auth HTTP Basic (par ex. `https://user:pass@provider.example`)
- Jetons de requête (par ex., `https://provider.example?token=<token>`)
- Auth HTTP Basic (par ex., `https://user:pass@provider.example`)
OpenClaw préserve lauth lors des appels aux points de terminaison `/json/*` et lors de la connexion
au WebSocket CDP. Préférez des variables denvironnement ou des gestionnaires de secrets pour les
jetons plutôt que de les commettre dans des fichiers de configuration.
OpenClaw préserve lauthentification lors des appels aux points de terminaison `/json/*` et lors de la connexion
au WebSocket CDP. Préférez les variables denvironnement ou les gestionnaires de secrets pour les
jetons plutôt que de les valider dans des fichiers de configuration.
## Proxy navigateur de nœud (valeur par défaut sans configuration)
## Proxy navigateur node (par défaut sans configuration)
Si vous exécutez un **hôte de nœud** sur la machine qui possède votre navigateur, OpenClaw peut
acheminer automatiquement les appels doutils navigateur vers ce nœud sans configuration
navigateur supplémentaire. Cest le chemin par défaut pour les gateways distantes.
Si vous exécutez un **hôte node** sur la machine qui possède votre navigateur, OpenClaw peut
acheminer automatiquement les appels doutil navigateur vers ce node sans configuration de navigateur supplémentaire.
Cest le chemin par défaut pour les gateways distants.
Remarques :
- Lhôte de nœud expose son serveur local de contrôle du navigateur via une **commande proxy**.
- Les profils proviennent de la propre configuration `browser.profiles` du nœud (identique au local).
- `nodeHost.browserProxy.allowProfiles` est facultatif. Laissez-le vide pour le comportement hérité/par défaut : tous les profils configurés restent accessibles via le proxy, y compris les routes de création/suppression de profil.
- Si vous définissez `nodeHost.browserProxy.allowProfiles`, OpenClaw le traite comme une limite de moindre privilège : seuls les profils dans la liste dautorisation peuvent être ciblés, et les routes persistantes de création/suppression de profil sont bloquées sur la surface proxy.
- Lhôte node expose son serveur local de contrôle du navigateur via une **commande proxy**.
- Les profils proviennent de la propre config `browser.profiles` du node (identique au mode local).
- `nodeHost.browserProxy.allowProfiles` est facultatif. Laissez-le vide pour le comportement historique/par défaut : tous les profils configurés restent accessibles via le proxy, y compris les routes de création/suppression de profil.
- Si vous définissez `nodeHost.browserProxy.allowProfiles`, OpenClaw le traite comme une limite de moindre privilège : seuls les profils autorisés peuvent être ciblés, et les routes persistantes de création/suppression de profil sont bloquées sur la surface du proxy.
- Désactivez-le si vous nen voulez pas :
- Sur le nœud : `nodeHost.browserProxy.enabled=false`
- Sur le node : `nodeHost.browserProxy.enabled=false`
- Sur la gateway : `gateway.nodes.browser.mode="off"`
## Browserless (CDP distant hébergé)
@ -290,7 +290,7 @@ Remarques :
[Browserless](https://browserless.io) est un service Chromium hébergé qui expose
des URL de connexion CDP via HTTPS et WebSocket. OpenClaw peut utiliser les deux formes, mais
pour un profil de navigateur distant, loption la plus simple est lURL WebSocket directe
de la documentation de connexion Browserless.
issue de la documentation de connexion de Browserless.
Exemple :
@ -315,27 +315,26 @@ Remarques :
- Remplacez `<BROWSERLESS_API_KEY>` par votre vrai jeton Browserless.
- Choisissez le point de terminaison régional correspondant à votre compte Browserless (voir leur documentation).
- Si Browserless vous fournit une URL HTTPS de base, vous pouvez soit la convertir en
- Si Browserless vous fournit une URL de base HTTPS, vous pouvez soit la convertir en
`wss://` pour une connexion CDP directe, soit conserver lURL HTTPS et laisser OpenClaw
découvrir `/json/version`.
## Fournisseurs CDP WebSocket directs
Certains services de navigateur hébergés exposent un point de terminaison **WebSocket direct**
au lieu de la découverte CDP standard basée sur HTTP (`/json/version`). OpenClaw prend en charge les deux :
Certains services de navigateur hébergés exposent un point de terminaison **WebSocket direct** plutôt que
la découverte CDP standard basée sur HTTP (`/json/version`). OpenClaw prend en charge les deux :
- **Points de terminaison HTTP(S)** — OpenClaw appelle `/json/version` pour découvrir lURL
WebSocket du débogueur, puis se connecte.
- **Points de terminaison WebSocket** (`ws://` / `wss://`) — OpenClaw se connecte directement,
en ignorant `/json/version`. Utilisez cela pour des services comme
- **Points de terminaison HTTP(S)** — OpenClaw appelle `/json/version` pour découvrir lURL WebSocket du débogueur, puis sy connecte.
- **Points de terminaison WebSocket** (`ws://` / `wss://`) — OpenClaw se connecte directement, en ignorant `/json/version`. Utilisez cette option pour des services comme
[Browserless](https://browserless.io),
[Browserbase](https://www.browserbase.com), ou tout fournisseur qui vous donne une
[Browserbase](https://www.browserbase.com), ou tout fournisseur qui vous fournit une
URL WebSocket.
### Browserbase
[Browserbase](https://www.browserbase.com) est une plateforme cloud pour exécuter des
navigateurs headless avec résolution CAPTCHA intégrée, mode furtif et proxies résidentiels.
[Browserbase](https://www.browserbase.com) est une plateforme cloud permettant dexécuter
des navigateurs headless avec résolution CAPTCHA intégrée, mode furtif et proxys
résidentiels.
```json5
{
@ -356,59 +355,59 @@ navigateurs headless avec résolution CAPTCHA intégrée, mode furtif et proxies
Remarques :
- [Inscrivez-vous](https://www.browserbase.com/sign-up) et copiez votre **clé API**
- [Inscrivez-vous](https://www.browserbase.com/sign-up) puis copiez votre **API Key**
depuis le [tableau de bord Overview](https://www.browserbase.com/overview).
- Remplacez `<BROWSERBASE_API_KEY>` par votre vraie clé API Browserbase.
- Browserbase crée automatiquement une session de navigateur lors de la connexion WebSocket, donc
aucune étape manuelle de création de session nest nécessaire.
- Loffre gratuite autorise une session concurrente et une heure de navigateur par mois.
- Loffre gratuite autorise une session simultanée et une heure de navigateur par mois.
Consultez les [tarifs](https://www.browserbase.com/pricing) pour les limites des offres payantes.
- Consultez la [documentation Browserbase](https://docs.browserbase.com) pour la référence API
complète, les guides SDK et des exemples dintégration.
complète, les guides SDK et les exemples dintégration.
## Sécurité
Idées clés :
- Le contrôle du navigateur est limité au loopback ; laccès passe par lauthentification de la Gateway ou lappairage de nœud.
- Le contrôle du navigateur est limité au loopback ; laccès passe par lauthentification du Gateway ou lappairage du node.
- LAPI HTTP autonome du navigateur en loopback utilise **uniquement une authentification par secret partagé** :
authentification Bearer par jeton Gateway, `x-openclaw-password`, ou authentification HTTP Basic avec le
mot de passe Gateway configuré.
- Les en-têtes didentité Tailscale Serve et `gateway.auth.mode: "trusted-proxy"` nauthentifient
**pas** cette API autonome du navigateur en loopback.
auth bearer par jeton gateway, `x-openclaw-password`, ou authentification HTTP Basic avec le
mot de passe gateway configuré.
- Les en-têtes didentité Tailscale Serve et `gateway.auth.mode: "trusted-proxy"` ne
**nauthentifient pas** cette API autonome du navigateur en loopback.
- Si le contrôle du navigateur est activé et quaucune authentification par secret partagé nest configurée, OpenClaw
génère automatiquement `gateway.auth.token` au démarrage et le persiste dans la configuration.
- OpenClaw ne génère **pas** automatiquement ce jeton lorsque `gateway.auth.mode` vaut déjà
`password`, `none` ou `trusted-proxy`.
- Conservez la Gateway et tous les hôtes de nœud sur un réseau privé (Tailscale) ; évitez toute exposition publique.
génère automatiquement `gateway.auth.token` au démarrage et le persiste dans la config.
- OpenClaw ne **génère pas automatiquement** ce jeton lorsque `gateway.auth.mode` vaut déjà
`password`, `none`, ou `trusted-proxy`.
- Conservez le Gateway et tous les hôtes node sur un réseau privé (Tailscale) ; évitez toute exposition publique.
- Traitez les URL/jetons CDP distants comme des secrets ; préférez des variables denvironnement ou un gestionnaire de secrets.
Conseils pour le CDP distant :
Conseils CDP distants :
- Préférez des points de terminaison chiffrés (HTTPS ou WSS) et des jetons à courte durée de vie lorsque cest possible.
- Évitez dintégrer directement des jetons longue durée dans les fichiers de configuration.
- Préférez des points de terminaison chiffrés (HTTPS ou WSS) et des jetons de courte durée lorsque cest possible.
- Évitez dintégrer directement des jetons de longue durée dans les fichiers de configuration.
## Profils (multi-navigateurs)
## Profils (multi-navigateur)
OpenClaw prend en charge plusieurs profils nommés (configurations de routage). Les profils peuvent être :
- **gérés par openclaw** : une instance dédiée de navigateur basé sur Chromium avec son propre répertoire de données utilisateur + port CDP
- **gérés par openclaw** : une instance de navigateur dédiée basée sur Chromium avec son propre répertoire de données utilisateur + port CDP
- **distants** : une URL CDP explicite (navigateur basé sur Chromium exécuté ailleurs)
- **session existante** : votre profil Chrome existant via auto-connexion Chrome DevTools MCP
- **session existante** : votre profil Chrome existant via connexion automatique Chrome DevTools MCP
Valeurs par défaut :
- Le profil `openclaw` est créé automatiquement sil est absent.
- Le profil `user` est intégré pour le rattachement existing-session via Chrome MCP.
- Les profils existing-session sont activés explicitement au-delà de `user` ; créez-les avec `--driver existing-session`.
- Les ports CDP locaux sont alloués par défaut dans la plage **1880018899**.
- La suppression dun profil déplace son répertoire de données local vers la corbeille.
- Le profil `user` est intégré pour le rattachement existing-session Chrome MCP.
- Les profils existing-session sont optionnels au-delà de `user` ; créez-les avec `--driver existing-session`.
- Les ports CDP locaux sont alloués dans la plage **1880018899** par défaut.
- Supprimer un profil déplace son répertoire local de données vers la corbeille.
Tous les points de contrôle acceptent `?profile=<name>` ; la CLI utilise `--browser-profile`.
Tous les points de terminaison de contrôle acceptent `?profile=<name>` ; la CLI utilise `--browser-profile`.
## Existing-session via Chrome DevTools MCP
OpenClaw peut aussi se rattacher à un profil de navigateur basé sur Chromium en cours dexécution via le
OpenClaw peut également se rattacher à un profil de navigateur basé sur Chromium déjà en cours dexécution via le
serveur officiel Chrome DevTools MCP. Cela réutilise les onglets et létat de connexion
déjà ouverts dans ce profil de navigateur.
@ -421,13 +420,13 @@ Profil intégré :
- `user`
Facultatif : créez votre propre profil existing-session personnalisé si vous voulez un
nom, une couleur ou un répertoire de données navigateur différent.
Facultatif : créez votre propre profil existing-session personnalisé si vous souhaitez un
nom, une couleur ou un répertoire de données de navigateur différent.
Comportement par défaut :
- Le profil intégré `user` utilise lauto-connexion Chrome MCP, qui cible le
profil local Google Chrome par défaut.
- Le profil intégré `user` utilise la connexion automatique Chrome MCP, qui cible le
profil Google Chrome local par défaut.
Utilisez `userDataDir` pour Brave, Edge, Chromium ou un profil Chrome non par défaut :
@ -446,11 +445,11 @@ Utilisez `userDataDir` pour Brave, Edge, Chromium ou un profil Chrome non par d
}
```
Ensuite, dans le navigateur correspondant :
Puis, dans le navigateur correspondant :
1. Ouvrez la page dinspection de ce navigateur pour le débogage à distance.
2. Activez le débogage à distance.
3. Laissez le navigateur en cours dexécution et approuvez linvite de connexion lorsque OpenClaw sy rattache.
3. Laissez le navigateur en cours dexécution et approuvez linvite de connexion quand OpenClaw se rattache.
Pages dinspection courantes :
@ -458,7 +457,7 @@ Pages dinspection courantes :
- Brave : `brave://inspect/#remote-debugging`
- Edge : `edge://inspect/#remote-debugging`
Smoke test de rattachement actif :
Test rapide de rattachement en direct :
```bash
openclaw browser --browser-profile user start
@ -467,7 +466,7 @@ openclaw browser --browser-profile user tabs
openclaw browser --browser-profile user snapshot --format ai
```
À quoi ressemble une réussite :
À quoi ressemble un succès :
- `status` affiche `driver: existing-session`
- `status` affiche `transport: chrome-mcp`
@ -479,61 +478,61 @@ Que vérifier si le rattachement ne fonctionne pas :
- le navigateur cible basé sur Chromium est en version `144+`
- le débogage à distance est activé dans la page dinspection de ce navigateur
- le navigateur a affiché linvite de consentement de rattachement et vous lavez acceptée
- `openclaw doctor` migre lancienne configuration navigateur basée sur extension et vérifie que
Chrome est installé localement pour les profils auto-connect par défaut, mais il ne peut
pas activer pour vous le débogage à distance côté navigateur
- le navigateur a affiché linvite de consentement au rattachement et vous lavez acceptée
- `openclaw doctor` migre lancienne configuration de navigateur basée sur une extension et vérifie que
Chrome est installé localement pour les profils de connexion automatique par défaut, mais il ne peut
pas activer le débogage à distance côté navigateur à votre place
Utilisation par lagent :
- Utilisez `profile="user"` lorsque vous avez besoin de létat du navigateur connecté de lutilisateur.
- Si vous utilisez un profil existing-session personnalisé, passez ce nom de profil explicite.
- Ne choisissez ce mode que lorsque lutilisateur est devant lordinateur pour approuver linvite
- Choisissez ce mode uniquement lorsque lutilisateur est devant lordinateur pour approuver linvite
de rattachement.
- la Gateway ou lhôte de nœud peut lancer `npx chrome-devtools-mcp@latest --autoConnect`
- le Gateway ou lhôte node peut lancer `npx chrome-devtools-mcp@latest --autoConnect`
Remarques :
- Ce chemin présente plus de risques que le profil isolé `openclaw`, car il peut
- Cette voie présente plus de risques que le profil isolé `openclaw` parce quelle peut
agir dans votre session de navigateur connectée.
- OpenClaw ne lance pas le navigateur pour ce pilote ; il se rattache uniquement à une
- OpenClaw ne lance pas le navigateur pour ce driver ; il se rattache uniquement à une
session existante.
- OpenClaw utilise ici le flux officiel Chrome DevTools MCP `--autoConnect`. Si
`userDataDir` est défini, OpenClaw le transmet pour cibler ce répertoire de données
utilisateur Chromium explicite.
- Les captures décran existing-session prennent en charge les captures de page et les captures
délément `--ref` depuis les instantanés, mais pas les sélecteurs CSS `--element`.
`userDataDir` est défini, OpenClaw le transmet pour cibler explicitement ce
répertoire de données utilisateur Chromium.
- Les captures décran existing-session prennent en charge les captures de page et les captures délément `--ref`
issues de la sortie de snapshot, mais pas les sélecteurs CSS `--element`.
- Les captures décran de page existing-session fonctionnent sans Playwright via Chrome MCP.
Les captures délément basées sur des refs (`--ref`) y fonctionnent également, mais `--full-page`
Les captures délément par ref (`--ref`) y fonctionnent aussi, mais `--full-page`
ne peut pas être combiné avec `--ref` ou `--element`.
- Les actions existing-session restent plus limitées que le chemin de navigateur
- Les actions existing-session restent plus limitées que le chemin du navigateur
géré :
- `click`, `type`, `hover`, `scrollIntoView`, `drag` et `select` nécessitent
des refs dinstantané au lieu de sélecteurs CSS
- `click` est limité au bouton gauche (pas de remplacement de bouton ni de modificateurs)
- `click`, `type`, `hover`, `scrollIntoView`, `drag`, et `select` exigent
des refs de snapshot plutôt que des sélecteurs CSS
- `click` est limité au bouton gauche (pas de surcharge du bouton ni de modificateurs)
- `type` ne prend pas en charge `slowly=true` ; utilisez `fill` ou `press`
- `press` ne prend pas en charge `delayMs`
- `hover`, `scrollIntoView`, `drag`, `select`, `fill` et `evaluate` ne prennent
pas en charge les remplacements de délai dexpiration par appel
- `hover`, `scrollIntoView`, `drag`, `select`, `fill`, et `evaluate` ne
prennent pas en charge les surcharges de délai dexpiration par appel
- `select` ne prend actuellement en charge quune seule valeur
- `wait --url` en existing-session prend en charge les motifs exacts, de sous-chaîne et glob
comme les autres pilotes navigateur. `wait --load networkidle` nest pas encore pris en charge.
- Les hooks dupload existing-session nécessitent `ref` ou `inputRef`, prennent en charge un seul fichier à la fois, et ne prennent pas en charge le ciblage CSS `element`.
- Les hooks de dialogue existing-session ne prennent pas en charge les remplacements de délai dexpiration.
- Certaines fonctionnalités nécessitent encore le chemin de navigateur géré, notamment les
actions par lot, lexport PDF, linterception de téléchargements et `responsebody`.
- Existing-session `wait --url` prend en charge les motifs exacts, par sous-chaîne et glob
comme les autres drivers de navigateur. `wait --load networkidle` nest pas encore pris en charge.
- Les hooks de téléversement existing-session exigent `ref` ou `inputRef`, prennent en charge un seul fichier à la fois et ne prennent pas en charge le ciblage CSS `element`.
- Les hooks de boîte de dialogue existing-session ne prennent pas en charge les surcharges de délai dexpiration.
- Certaines fonctionnalités nécessitent encore le chemin du navigateur géré, notamment les
actions par lot, lexport PDF, linterception des téléchargements et `responsebody`.
- Existing-session est local à lhôte. Si Chrome se trouve sur une autre machine ou dans un
autre espace de noms réseau, utilisez plutôt le CDP distant ou un hôte de nœud.
autre espace de noms réseau, utilisez plutôt le CDP distant ou un hôte node.
## Garanties disolation
- **Répertoire de données utilisateur dédié** : ne touche jamais à votre profil de navigateur personnel.
- **Ports dédiés** : évite `9222` pour empêcher les collisions avec les flux de travail de développement.
- **Ports dédiés** : évite `9222` pour prévenir les collisions avec les workflows de développement.
- **Contrôle déterministe des onglets** : ciblez les onglets par `targetId`, pas par « dernier onglet ».
## Sélection du navigateur
Lors dun lancement local, OpenClaw choisit le premier disponible :
Lors du lancement local, OpenClaw choisit le premier disponible :
1. Chrome
2. Brave
@ -541,7 +540,7 @@ Lors dun lancement local, OpenClaw choisit le premier disponible :
4. Chromium
5. Chrome Canary
Vous pouvez remplacer cela avec `browser.executablePath`.
Vous pouvez surcharger cela avec `browser.executablePath`.
Plateformes :
@ -549,13 +548,13 @@ Plateformes :
- Linux : recherche `google-chrome`, `brave`, `microsoft-edge`, `chromium`, etc.
- Windows : vérifie les emplacements dinstallation courants.
## API de contrôle (facultatif)
## API de contrôle (facultative)
Pour les intégrations locales uniquement, la Gateway expose une petite API HTTP en loopback :
Pour les intégrations locales uniquement, le Gateway expose une petite API HTTP en loopback :
- Statut/démarrage/arrêt : `GET /`, `POST /start`, `POST /stop`
- Onglets : `GET /tabs`, `POST /tabs/open`, `POST /tabs/focus`, `DELETE /tabs/:targetId`
- Instantané/capture décran : `GET /snapshot`, `POST /screenshot`
- Snapshot/capture décran : `GET /snapshot`, `POST /screenshot`
- Actions : `POST /navigate`, `POST /act`
- Hooks : `POST /hooks/file-chooser`, `POST /hooks/dialog`
- Téléchargements : `POST /download`, `POST /wait/download`
@ -568,22 +567,21 @@ Pour les intégrations locales uniquement, la Gateway expose une petite API HTTP
Tous les points de terminaison acceptent `?profile=<name>`.
Si une authentification Gateway par secret partagé est configurée, les routes HTTP du navigateur exigent aussi une authentification :
Si une authentification gateway par secret partagé est configurée, les routes HTTP du navigateur exigent aussi une authentification :
- `Authorization: Bearer <gateway token>`
- `x-openclaw-password: <gateway password>` ou authentification HTTP Basic avec ce mot de passe
Remarques :
- Cette API autonome du navigateur en loopback ne consomme **pas** les en-têtes trusted-proxy ni
didentité Tailscale Serve.
- Si `gateway.auth.mode` vaut `none` ou `trusted-proxy`, ces routes navigateur en loopback
nhéritent pas de ces modes porteurs didentité ; gardez-les limitées au loopback.
- Cette API autonome du navigateur en loopback ne consomme **pas** les en-têtes didentité trusted-proxy ni Tailscale Serve.
- Si `gateway.auth.mode` vaut `none` ou `trusted-proxy`, ces routes de navigateur en loopback
nhéritent pas de ces modes porteurs didentité ; conservez-les en loopback uniquement.
### Contrat derreur `/act`
`POST /act` utilise une réponse derreur structurée pour la validation au niveau de la route et
les échecs de politique :
`POST /act` utilise une réponse derreur structurée pour les échecs de validation au niveau de la route et
de politique :
```json
{ "error": "<message>", "code": "ACT_*" }
@ -592,10 +590,10 @@ les échecs de politique :
Valeurs actuelles de `code` :
- `ACT_KIND_REQUIRED` (HTTP 400) : `kind` est absent ou non reconnu.
- `ACT_INVALID_REQUEST` (HTTP 400) : la charge utile daction a échoué à la normalisation ou à la validation.
- `ACT_INVALID_REQUEST` (HTTP 400) : la charge utile de laction a échoué à la normalisation ou à la validation.
- `ACT_SELECTOR_UNSUPPORTED` (HTTP 400) : `selector` a été utilisé avec un type daction non pris en charge.
- `ACT_EVALUATE_DISABLED` (HTTP 403) : `evaluate` (ou `wait --fn`) est désactivé par la configuration.
- `ACT_TARGET_ID_MISMATCH` (HTTP 403) : `targetId` au niveau supérieur ou dans un lot entre en conflit avec la cible de la requête.
- `ACT_EVALUATE_DISABLED` (HTTP 403) : `evaluate` (ou `wait --fn`) est désactivé par la config.
- `ACT_TARGET_ID_MISMATCH` (HTTP 403) : `targetId` de niveau supérieur ou en lot est en conflit avec la cible de la requête.
- `ACT_EXISTING_SESSION_UNSUPPORTED` (HTTP 501) : laction nest pas prise en charge pour les profils existing-session.
Dautres échecs dexécution peuvent toujours renvoyer `{ "error": "<message>" }` sans champ
@ -603,36 +601,36 @@ Dautres échecs dexécution peuvent toujours renvoyer `{ "error": "<messag
### Exigence Playwright
Certaines fonctionnalités (navigate/act/instantané AI/instantané de rôle, captures décran déléments,
Certaines fonctionnalités (navigate/act/snapshot IA/snapshot de rôle, captures décran délément,
PDF) nécessitent Playwright. Si Playwright nest pas installé, ces points de terminaison renvoient
une erreur 501 explicite.
une erreur 501 claire.
Ce qui fonctionne encore sans Playwright :
- instantanés ARIA
- captures décran de page pour le navigateur géré `openclaw` lorsquun WebSocket CDP
par onglet est disponible
- captures décran de page pour les profils `existing-session` / Chrome MCP
- captures décran `--ref` basées sur des refs en existing-session à partir de la sortie dinstantané
- Snapshots ARIA
- Captures décran de page pour le navigateur `openclaw` géré lorsquun WebSocket
CDP par onglet est disponible
- Captures décran de page pour les profils `existing-session` / Chrome MCP
- Captures décran existing-session basées sur ref (`--ref`) à partir de la sortie de snapshot
Ce qui nécessite encore Playwright :
Ce qui nécessite toujours Playwright :
- `navigate`
- `act`
- instantanés AI / instantanés de rôle
- captures décran déléments par sélecteur CSS (`--element`)
- export PDF complet du navigateur
- Snapshots IA / snapshots de rôle
- Captures décran délément par sélecteur CSS (`--element`)
- Export PDF complet du navigateur
Les captures décran déléments rejettent également `--full-page` ; la route renvoie `fullPage is
Les captures décran délément rejettent aussi `--full-page` ; la route renvoie `fullPage is
not supported for element screenshots`.
Si vous voyez `Playwright is not available in this gateway build`, installez le package
Playwright complet (pas `playwright-core`) et redémarrez la gateway, ou réinstallez
Si vous voyez `Playwright is not available in this gateway build`, installez le package complet
Playwright (pas `playwright-core`) et redémarrez la gateway, ou réinstallez
OpenClaw avec la prise en charge du navigateur.
#### Installation Docker de Playwright
#### Installation de Playwright dans Docker
Si votre Gateway sexécute dans Docker, évitez `npx playwright` (conflits doverride npm).
Si votre Gateway sexécute dans Docker, évitez `npx playwright` (conflits de surcharge npm).
Utilisez plutôt la CLI intégrée :
```bash
@ -648,21 +646,21 @@ Pour conserver les téléchargements du navigateur, définissez `PLAYWRIGHT_BROW
Flux de haut niveau :
- Un petit **serveur de contrôle** accepte des requêtes HTTP.
- Il se connecte à des navigateurs basés sur Chromium (Chrome/Brave/Edge/Chromium) via **CDP**.
- Pour les actions avancées (click/type/snapshot/PDF), il utilise **Playwright** au-dessus
de CDP.
- Un petit **serveur de contrôle** accepte les requêtes HTTP.
- Il se connecte aux navigateurs basés sur Chromium (Chrome/Brave/Edge/Chromium) via **CDP**.
- Pour les actions avancées (clic/saisie/snapshot/PDF), il utilise **Playwright** par-dessus
CDP.
- Lorsque Playwright est absent, seules les opérations ne dépendant pas de Playwright sont disponibles.
Cette conception maintient lagent sur une interface stable et déterministe tout en vous permettant de
changer de navigateurs et profils locaux/distants.
Cette conception maintient lagent sur une interface stable et déterministe tout en vous permettant
de changer de navigateurs et de profils locaux/distants.
## Référence rapide CLI
Toutes les commandes acceptent `--browser-profile <name>` pour cibler un profil spécifique.
Toutes les commandes acceptent aussi `--json` pour une sortie lisible par machine (charges utiles stables).
Toutes les commandes acceptent également `--json` pour une sortie lisible par machine (charges utiles stables).
Notions de base :
Bases :
- `openclaw browser status`
- `openclaw browser start`
@ -695,7 +693,7 @@ Remarque sur le cycle de vie :
- Pour les profils attach-only et CDP distants, `openclaw browser stop` reste la
bonne commande de nettoyage après les tests. Elle ferme la session de contrôle active et
efface les remplacements démulation temporaires au lieu de tuer le navigateur
efface les surcharges démulation temporaires au lieu de tuer le navigateur
sous-jacent.
- `openclaw browser errors --clear`
- `openclaw browser requests --filter api --clear`
@ -747,36 +745,36 @@ Actions :
Remarques :
- `upload` et `dialog` sont des appels darmement ; exécutez-les avant le click/press
- `upload` et `dialog` sont des appels d**armement** ; exécutez-les avant le clic/la pression
qui déclenche le sélecteur/la boîte de dialogue.
- Les chemins de sortie des téléchargements et des traces sont limités aux racines temporaires OpenClaw :
- traces : `/tmp/openclaw` (secours : `${os.tmpdir()}/openclaw`)
- téléchargements : `/tmp/openclaw/downloads` (secours : `${os.tmpdir()}/openclaw/downloads`)
- Les chemins de sortie de téléchargement et de trace sont limités aux racines temporaires dOpenClaw :
- traces : `/tmp/openclaw` (repli : `${os.tmpdir()}/openclaw`)
- téléchargements : `/tmp/openclaw/downloads` (repli : `${os.tmpdir()}/openclaw/downloads`)
- Les chemins dupload sont limités à une racine temporaire duploads OpenClaw :
- uploads : `/tmp/openclaw/uploads` (secours : `${os.tmpdir()}/openclaw/uploads`)
- uploads : `/tmp/openclaw/uploads` (repli : `${os.tmpdir()}/openclaw/uploads`)
- `upload` peut aussi définir directement des entrées de fichier via `--input-ref` ou `--element`.
- `snapshot` :
- `--format ai` (par défaut quand Playwright est installé) : renvoie un instantané AI avec des refs numériques (`aria-ref="<n>"`).
- `--format aria` : renvoie larbre daccessibilité (pas de refs ; inspection uniquement).
- `--efficient` (ou `--mode efficient`) : préréglage compact dinstantané de rôle (interactive + compact + depth + maxChars plus faible).
- Valeur par défaut de configuration (outil/CLI uniquement) : définissez `browser.snapshotDefaults.mode: "efficient"` pour utiliser des instantanés efficaces lorsque lappelant ne passe pas de mode (voir [Configuration Gateway](/fr/gateway/configuration-reference#browser)).
- Les options dinstantané de rôle (`--interactive`, `--compact`, `--depth`, `--selector`) forcent un instantané basé sur les rôles avec des refs comme `ref=e12`.
- `--frame "<iframe selector>"` limite les instantanés de rôle à un iframe (sassocie à des refs de rôle comme `e12`).
- `--interactive` produit une liste plate, facile à choisir, des éléments interactifs (meilleur choix pour piloter les actions).
- `--labels` ajoute une capture décran limitée au viewport avec des étiquettes de ref superposées (affiche `MEDIA:<path>`).
- `click`/`type`/etc. nécessitent une `ref` issue de `snapshot` (soit numérique `12`, soit ref de rôle `e12`).
- `--format ai` (par défaut quand Playwright est installé) : renvoie un snapshot IA avec des refs numériques (`aria-ref="<n>"`).
- `--format aria` : renvoie larbre daccessibilité (sans refs ; inspection uniquement).
- `--efficient` (ou `--mode efficient`) : préréglage de snapshot de rôle compact (interactive + compact + depth + maxChars réduit).
- Valeur par défaut de config (outil/CLI uniquement) : définissez `browser.snapshotDefaults.mode: "efficient"` pour utiliser des snapshots efficaces lorsque lappelant ne passe pas de mode (voir [Configuration de la Gateway](/fr/gateway/configuration-reference#browser)).
- Les options de snapshot de rôle (`--interactive`, `--compact`, `--depth`, `--selector`) forcent un snapshot basé sur les rôles avec des refs comme `ref=e12`.
- `--frame "<iframe selector>"` limite les snapshots de rôle à une iframe (sassocie à des refs de rôle comme `e12`).
- `--interactive` produit une liste plate et facile à sélectionner des éléments interactifs (idéal pour piloter des actions).
- `--labels` ajoute une capture décran du viewport avec des étiquettes de ref superposées (affiche `MEDIA:<path>`).
- `click`/`type`/etc nécessitent une `ref` provenant de `snapshot` (soit la forme numérique `12`, soit la ref de rôle `e12`).
Les sélecteurs CSS ne sont volontairement pas pris en charge pour les actions.
## Instantanés et refs
## Snapshots et refs
OpenClaw prend en charge deux styles d’« instantanés » :
OpenClaw prend en charge deux styles de « snapshot » :
- **Instantané AI (refs numériques)** : `openclaw browser snapshot` (par défaut ; `--format ai`)
- Sortie : un instantané texte qui inclut des refs numériques.
- **Snapshot IA (refs numériques)** : `openclaw browser snapshot` (par défaut ; `--format ai`)
- Sortie : un snapshot texte qui inclut des refs numériques.
- Actions : `openclaw browser click 12`, `openclaw browser type 23 "hello"`.
- En interne, la ref est résolue via `aria-ref` de Playwright.
- **Instantané de rôle (refs de rôle comme `e12`)** : `openclaw browser snapshot --interactive` (ou `--compact`, `--depth`, `--selector`, `--frame`)
- **Snapshot de rôle (refs de rôle comme `e12`)** : `openclaw browser snapshot --interactive` (ou `--compact`, `--depth`, `--selector`, `--frame`)
- Sortie : une liste/arborescence basée sur les rôles avec `[ref=e12]` (et éventuellement `[nth=1]`).
- Actions : `openclaw browser click e12`, `openclaw browser highlight e12`.
- En interne, la ref est résolue via `getByRole(...)` (plus `nth()` pour les doublons).
@ -784,12 +782,12 @@ OpenClaw prend en charge deux styles d« instantanés » :
Comportement des refs :
- Les refs ne sont **pas stables dune navigation à lautre** ; si quelque chose échoue, réexécutez `snapshot` et utilisez une ref fraîche.
- Si linstantané de rôle a été pris avec `--frame`, les refs de rôle sont limitées à cet iframe jusquau prochain instantané de rôle.
- Les refs ne sont **pas stables dune navigation à lautre** ; si quelque chose échoue, relancez `snapshot` et utilisez une nouvelle ref.
- Si le snapshot de rôle a été pris avec `--frame`, les refs de rôle sont limitées à cette iframe jusquau prochain snapshot de rôle.
## Super-pouvoirs de wait
## Attentes renforcées
Vous pouvez attendre plus que du temps/texte :
Vous pouvez attendre plus que du simple temps/texte :
- Attendre une URL (globs pris en charge par Playwright) :
- `openclaw browser wait --url "**/dash"`
@ -810,14 +808,14 @@ openclaw browser wait "#main" \
--timeout-ms 15000
```
## Flux de débogage
## Workflows de débogage
Lorsquune action échoue (par ex. « not visible », « strict mode violation », « covered ») :
Quand une action échoue (par ex. « not visible », « strict mode violation », « covered ») :
1. `openclaw browser snapshot --interactive`
2. Utilisez `click <ref>` / `type <ref>` (préférez les refs de rôle en mode interactif)
3. Si cela échoue toujours : `openclaw browser highlight <ref>` pour voir ce que Playwright cible
4. Si la page se comporte étrangement :
3. Si cela échoue encore : `openclaw browser highlight <ref>` pour voir ce que Playwright cible
4. Si la page se comporte bizarrement :
- `openclaw browser errors --clear`
- `openclaw browser requests --filter api --clear`
5. Pour un débogage approfondi : enregistrez une trace :
@ -827,7 +825,7 @@ Lorsquune action échoue (par ex. « not visible », « strict mode violation
## Sortie JSON
`--json` est destiné au scripting et aux outils structurés.
`--json` est destiné aux scripts et aux outils structurés.
Exemples :
@ -838,11 +836,11 @@ openclaw browser requests --filter api --json
openclaw browser cookies --json
```
Les instantanés de rôle en JSON incluent `refs` plus un petit bloc `stats` (lignes/caractères/refs/interactifs) afin que les outils puissent raisonner sur la taille et la densité des charges utiles.
Les snapshots de rôle en JSON incluent `refs` ainsi quun petit bloc `stats` (lines/chars/refs/interactive) afin que les outils puissent raisonner sur la taille et la densité de la charge utile.
## Réglages détat et denvironnement
Ils sont utiles pour les flux « faire en sorte que le site se comporte comme X » :
Ils sont utiles pour les workflows « faire se comporter le site comme X » :
- Cookies : `cookies`, `cookies set`, `cookies clear`
- Storage : `storage local|session get|set|clear`
@ -851,22 +849,22 @@ Ils sont utiles pour les flux « faire en sorte que le site se comporte comme X
- Auth HTTP Basic : `set credentials user pass` (ou `--clear`)
- Géolocalisation : `set geo <lat> <lon> --origin "https://example.com"` (ou `--clear`)
- Média : `set media dark|light|no-preference|none`
- Fuseau horaire / locale : `set timezone ...`, `set locale ...`
- Fuseau horaire / langue : `set timezone ...`, `set locale ...`
- Appareil / viewport :
- `set device "iPhone 14"` (préréglages dappareil Playwright)
- `set viewport 1280 720`
## Sécurité et confidentialité
- Le profil navigateur openclaw peut contenir des sessions connectées ; traitez-le comme sensible.
- Le profil de navigateur openclaw peut contenir des sessions connectées ; traitez-le comme sensible.
- `browser act kind=evaluate` / `openclaw browser evaluate` et `wait --fn`
exécutent du JavaScript arbitraire dans le contexte de la page. Linjection de prompt peut
orienter cela. Désactivez-le avec `browser.evaluateEnabled=false` si vous nen avez pas besoin.
- Pour les connexions et les notes anti-bot (X/Twitter, etc.), voir [Connexion navigateur + publication X/Twitter](/fr/tools/browser-login).
- Gardez la Gateway/lhôte de nœud privés (loopback ou tailnet uniquement).
exécutent du JavaScript arbitraire dans le contexte de la page. Linjection de prompt peut orienter
cela. Désactivez-le avec `browser.evaluateEnabled=false` si vous nen avez pas besoin.
- Pour les connexions et les notes anti-bot (X/Twitter, etc.), voir [Connexion au navigateur + publication sur X/Twitter](/fr/tools/browser-login).
- Gardez la Gateway/lhôte node privés (loopback ou tailnet uniquement).
- Les points de terminaison CDP distants sont puissants ; tunnelisez-les et protégez-les.
Exemple de mode strict (bloquer par défaut les destinations privées/internes) :
Exemple en mode strict (bloquer par défaut les destinations privées/internes) :
```json5
{
@ -882,34 +880,91 @@ Exemple de mode strict (bloquer par défaut les destinations privées/internes)
## Dépannage
Pour les problèmes spécifiques à Linux (notamment snap Chromium), voir
Pour les problèmes spécifiques à Linux (notamment Chromium snap), voir
[Dépannage du navigateur](/fr/tools/browser-linux-troubleshooting).
Pour les configurations WSL2 Gateway + Chrome Windows sur hôtes séparés, voir
[Dépannage WSL2 + Windows + Chrome distant CDP](/fr/tools/browser-wsl2-windows-remote-cdp-troubleshooting).
Pour les configurations WSL2 Gateway + Chrome Windows hôte séparé, voir
[Dépannage WSL2 + Windows + CDP Chrome distant](/fr/tools/browser-wsl2-windows-remote-cdp-troubleshooting).
## Outils dagent + fonctionnement du contrôle
### Échec de démarrage CDP vs blocage SSRF de navigation
Il sagit de deux classes déchec différentes, et elles pointent vers des chemins de code différents.
- **Échec de démarrage ou de disponibilité CDP** signifie quOpenClaw ne peut pas confirmer que le plan de contrôle du navigateur est sain.
- **Blocage SSRF de navigation** signifie que le plan de contrôle du navigateur est sain, mais quune cible de navigation de page est rejetée par la politique.
Exemples courants :
- Échec de démarrage ou de disponibilité CDP :
- `Chrome CDP websocket for profile "openclaw" is not reachable after start`
- `Remote CDP for profile "<name>" is not reachable at <cdpUrl>`
- Blocage SSRF de navigation :
- les flux `open`, `navigate`, snapshot ou douverture donglet échouent avec une erreur de politique navigateur/réseau alors que `start` et `tabs` fonctionnent toujours
Utilisez cette séquence minimale pour distinguer les deux :
```bash
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw tabs
openclaw browser --browser-profile openclaw open https://example.com
```
Comment interpréter les résultats :
- Si `start` échoue avec `not reachable after start`, dépannez dabord la disponibilité CDP.
- Si `start` réussit mais que `tabs` échoue, le plan de contrôle reste malsain. Traitez cela comme un problème daccessibilité CDP, pas comme un problème de navigation de page.
- Si `start` et `tabs` réussissent mais que `open` ou `navigate` échoue, le plan de contrôle du navigateur est opérationnel et léchec se situe dans la politique de navigation ou la page cible.
- Si `start`, `tabs` et `open` réussissent tous, le chemin de contrôle de base du navigateur géré est sain.
Détails importants du comportement :
- La configuration du navigateur utilise par défaut un objet de politique SSRF en échec fermé même lorsque vous ne configurez pas `browser.ssrfPolicy`.
- Pour le profil géré local `openclaw` en loopback, les vérifications détat CDP ignorent intentionnellement lapplication de laccessibilité SSRF du navigateur pour le propre plan de contrôle local dOpenClaw.
- La protection de navigation est distincte. Un résultat `start` ou `tabs` réussi ne signifie pas quune cible ultérieure de `open` ou `navigate` est autorisée.
Consignes de sécurité :
- Nassouplissez **pas** la politique SSRF du navigateur par défaut.
- Préférez des exceptions dhôte étroites comme `hostnameAllowlist` ou `allowedHostnames` plutôt quun accès large au réseau privé.
- Utilisez `dangerouslyAllowPrivateNetwork: true` uniquement dans des environnements intentionnellement approuvés où laccès du navigateur au réseau privé est nécessaire et vérifié.
Exemple : navigation bloquée, plan de contrôle sain
- `start` réussit
- `tabs` réussit
- `open http://internal.example` échoue
Cela signifie généralement que le démarrage du navigateur fonctionne correctement et que la cible de navigation nécessite un examen de politique.
Exemple : démarrage bloqué avant que la navigation nimporte
- `start` échoue avec `not reachable after start`
- `tabs` échoue aussi ou ne peut pas sexécuter
Cela pointe vers un lancement du navigateur ou une accessibilité CDP, pas vers un problème de liste dautorisation dURL de page.
## Outils agent + fonctionnement du contrôle
Lagent reçoit **un seul outil** pour lautomatisation du navigateur :
- `browser` — status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
Correspondances :
Correspondance :
- `browser snapshot` renvoie un arbre dinterface stable (AI ou ARIA).
- `browser act` utilise les identifiants `ref` de linstantané pour cliquer/saisir/faire glisser/sélectionner.
- `browser snapshot` renvoie un arbre dinterface stable (IA ou ARIA).
- `browser act` utilise les ID `ref` du snapshot pour cliquer/saisir/faire glisser/sélectionner.
- `browser screenshot` capture les pixels (page entière ou élément).
- `browser` accepte :
- `profile` pour choisir un profil de navigateur nommé (openclaw, chrome ou CDP distant).
- `target` (`sandbox` | `host` | `node`) pour sélectionner où se trouve le navigateur.
- Dans les sessions sandboxées, `target: "host"` nécessite `agents.defaults.sandbox.browser.allowHostControl=true`.
- Si `target` est omis : les sessions sandboxées utilisent par défaut `sandbox`, les sessions non sandboxées utilisent par défaut `host`.
- Si un nœud compatible navigateur est connecté, loutil peut y être acheminé automatiquement sauf si vous forcez `target="host"` ou `target="node"`.
- `profile` pour choisir un profil de navigateur nommé (openclaw, chrome, ou CDP distant).
- `target` (`sandbox` | `host` | `node`) pour sélectionner lemplacement du navigateur.
- Dans les sessions en sandbox, `target: "host"` exige `agents.defaults.sandbox.browser.allowHostControl=true`.
- Si `target` est omis : les sessions en sandbox utilisent par défaut `sandbox`, les sessions hors sandbox utilisent par défaut `host`.
- Si un node capable de navigateur est connecté, loutil peut y être routé automatiquement sauf si vous forcez `target="host"` ou `target="node"`.
Cela maintient lagent déterministe et évite les sélecteurs fragiles.
Cela maintient le comportement de lagent déterministe et évite les sélecteurs fragiles.
## Voir aussi
- [Aperçu des outils](/fr/tools) — tous les outils dagent disponibles
- [Vue densemble des outils](/fr/tools) — tous les outils agent disponibles
- [Sandboxing](/fr/gateway/sandboxing) — contrôle du navigateur dans les environnements sandboxés
- [Security](/fr/gateway/security) — risques et durcissement du contrôle du navigateur
- [Sécurité](/fr/gateway/security) — risques et renforcement du contrôle du navigateur