Changer le thème

OpenClaw : guide complet de openclaw.json et bonnes pratiques

Easton editorial illustration: one large JSON configuration card controlling an agent device

Mise à jour du 2026-06-08 : champs, dmPolicy, commandes d’audit de sécurité et conseils CVE-2026-25253 revérifiés dans la doc officielle du Gateway OpenClaw, et lectures complémentaires de la même série ajoutées. Les clés de configuration suivent la doc officielle.

Une fois OpenClaw en marche, ouvrez ~/.openclaw/openclaw.json : gateway, channel, skills, provider… et des options imbriquées partout. dmPolicy en pairing ou allowlist ? gateway.auth.token, c’est le mot de passe ? Faut-il activer toutes les compétences ?

Plus inquiétant : fin janvier 2026, correction d’une faille grave (CVE-2026-25253, CVSS 8,8) — vol de token via l’URL et exécution de commandes. Une mauvaise configuration peut transformer l’assistant en porte dérobée.

Voici le guide que j’aurais voulu à l’époque : chaque module de openclaw.json, le sens des paramètres, les réglages production, les pièges que j’ai rencontrés et une checklist sécurité.

Guide économique « élever un homard » : ArkClaw démocratise l’agent IA

OpenClaw (homard) est puissant mais la config rebute ? ArkClaw de ByteDance Volcano Engine abaisse la barrière : pas de serveur ni de token à bricoler, un assistant 24h/24 qui contrôle le navigateur, exécute des scripts et gère l’agenda.

Le prix compte : 9,9 ¥/mois, code d’invitation ZLKUK54M (inscription) → 8,9 ¥. Développeurs : Coding Plan Pro peut offrir l’accès.

Bases du fichier de configuration

Emplacement et structure

Par défaut : ~/.openclaw/openclaw.json. Créé par l’assistant d’installation ou à créer à la main. Noms de champs et valeurs par défaut : documentation Gateway. Les exemples ci-dessous illustrent la structure ; vérifiez après chaque mise à jour majeure.

Cinq modules :

  • Gateway : port, authentification, logs
  • Channel : WhatsApp, Telegram, etc.
  • Skills : compétences et permissions
  • Provider : Anthropic, modèles locaux, etc.
  • Security : politiques et contrôle d’accès

Gateway = entrée, Channel = communication, Skills = capacités, Provider = cerveau, Security = protection.

Méthodes et priorité

Quatre approches :

  1. Assistant interactif : à l’installation
  2. Édition JSON directe : vim/nano
  3. Variables d’environnement : conteneurs ou override temporaire
  4. Scripts : déploiement en masse

Priorité : variables d’environnement > fichier > défaut.

Exemple : gateway.port: 18789 dans le fichier mais OPENCLAW_GATEWAY_PORT=9000 en env → port 9000. Pratique pour tester sans toucher au fichier.

Les versions 2026 ajoutent le support MCP et openclaw doctor pour diagnostiquer la configuration.

Configuration Gateway

Gateway = entrée Web et clients distants.

Port et authentification

{
  "gateway": {
    "port": 18789,
    "auth": {
      "token": "your-secret-token-here"
    },
    "remote": {
      "token": "your-remote-token-here"
    }
  }
}
  • port : interface Web, défaut 18789 (http://localhost:18789). Si occupé, par ex. 19000.

  • auth.token : jeton d’authentification (= mot de passe). Qui le possède contrôle l’instance. La CVE-2026-25253 venait de la fuite via URL.

  • remote.token : clients distants (app mobile, bureau), séparé pour rotation indépendante.

Sécurité : depuis le 29/01/2026, plus d’"auth: none" — token ou mot de passe obligatoire.

Logs

{
  "gateway": {
    "logging": {
      "redactSensitive": true
    }
  }
}

Avec redactSensitive: true, clés API et tokens deviennent *** dans les logs.

Démarrage : openclaw gateway

[Gateway] Listening on http://localhost:18789
[Gateway] Authentication: Token-based

Configuration Channel

Channel définit les plateformes de conversation.

Types supportés

  1. WhatsApp : appairage QR, le plus courant
  2. Telegram : Bot API, groupes
  3. Discord : communautés techniques
  4. Mattermost : entreprise

WhatsApp = QR ; Telegram = Bot Token ; Discord = Application.

Politique DM (dmPolicy)

Quatre modes :

1. pairing (défaut)

{
  "channel": {
    "dmPolicy": "pairing"
  }
}

Code à 6 chiffres, validité 1 h, approbation manuelle :

openclaw pairing approve whatsapp ABC123

Équilibre sécurité / usage : première fois validée, ensuite fluide.

2. allowlist

{
  "channel": {
    "dmPolicy": "allowlist",
    "allowFrom": [
      "+1234567890",
      "telegram:@username"
    ]
  }
}

Liste blanche stricte.

3. open

{
  "channel": {
    "dmPolicy": "open",
    "allowFrom": ["*"]
  }
}

Tout le monde peut écrire — risqué, sauf démo courte.

4. disabled

DM fermés, groupes uniquement.

Isolation multi-utilisateurs

{
  "channel": {
    "session": {
      "dmScope": "per-channel-peer"
    }
  }
}

Historiques séparés, pas de mélange de contexte.

Groupes et mentionGating

{
  "channel": {
    "groupPolicy": "mention",
    "mentionGating": true
  }
}

Réponses seulement aux @mentions — évite le bot qui spamme le groupe.

Configuration Skills

Skills = ce que l’assistant peut faire.

Concepts

Extensions modulaires ; boutique ClawHub 700+ compétences :

  • Calendrier (Google Calendar, Outlook)
  • Navigateur (browser)
  • Fichiers (file_manager)
  • Shell (exec)
  • Code (python, node)

Chemin : ~/.openclaw/skills/. Priorité : workspace > utilisateur > intégré.

Une compétence browser dans le projet remplace la version globale.

Gestion

Métadonnées dans SKILL.md :

---
name: google-calendar
description: Manage Google Calendar events
requirements:
  bins:
    - gcalcli
  env:
    - GOOGLE_CALENDAR_API_KEY
---

bins = binaires requis (gcalcli pour le calendrier).

Installation :

  1. Interface Web « Add Skill »
  2. openclaw skill install google-calendar
  3. Copie manuelle dans ~/.openclaw/skills/

Dépannage

openclaw skill check google-calendar
openclaw gateway --verbose

Petits modèles

Fenêtre de contexte limitée → désactiver des compétences pour libérer des tokens.

Compétences à haut risque

  • exec : shell arbitraire
  • browser : pages web
  • web_fetch : contenu externe
  • web_search : recherche

À désactiver si non indispensables.

Configuration Provider

Provider = modèle IA utilisé.

Types

  1. Anthropic (Claude) : recommandé, API stable, sécurité solide
  2. OpenAI : bientôt (GPT-5, etc.)
  3. Local : LM Studio, Ollama
  4. OpenRouter : une clé, plusieurs modèles
  5. MCP : Model Context Protocol (2026)

Anthropic

{
  "provider": {
    "type": "anthropic",
    "apiKey": "sk-ant-..."
  }
}

Préférez les variables d’environnement :

export ANTHROPIC_API_KEY="sk-ant-..."

Le fichier peut aller dans Git sans secrets.

Modèle local

{
  "provider": {
    "type": "openai-compatible",
    "baseURL": "http://localhost:1234/v1",
    "modelId": "kimi-k2.5-chat"
  }
}
  • baseURL : serveur local (LM Studio port 1234)
  • modelId : nom du modèle

MCP

{
  "provider": {
    "mcpServers": {
      "onesearch": {
        "command": "npx",
        "args": ["-y", "@onesearch/mcp-server"]
      }
    }
  }
}

OneSearch : Google, Bing, Brave via une interface.

Précautions modèles locaux

Avantages : confidentialité, coût, hors ligne. Inconvénients sécurité :

  • Injection de prompt plus facile
  • Petite fenêtre de contexte
  • Quantification 4-bit : moins de respect des consignes

Si obligatoire : limiter les skills, sandbox, pas de données sensibles sur la machine.

Bonnes pratiques de sécurité

La sécurité passe avant tout. La CVE-2026-25253 l’a démontré.

Checklist

Base (obligatoire)

  • ✅ Ne jamais partager le token gateway
  • ✅ Pare-feu : n’exposer que le port nécessaire (18789)
  • ✅ SSH par clé, pas par mot de passe
  • ✅ Limiter l’accès Web (VPN / IP autorisées)
  • ✅ DM : pairing ou allowlist
  • ✅ Groupes : mention gating

Avancé (recommandé)

  • ✅ Rotation des tokens (trimestrielle minimum)
  • redactSensitive dans les logs
  • ✅ Limiter exec, browser
  • ✅ Serveur dédié, pas la machine de travail principale

Entrées externes et sandbox

Règle : traiter toute entrée externe comme hostile.

Liens, pièces jointes, texte collé — attaques possibles. Sandbox (opt-in) :

{
  "security": {
    "sandbox": {
      "enabled": true,
      "skills": ["exec", "browser"]
    }
  }
}

exec et browser isolés du système hôte.

Secrets

  1. Simple : transférer .env par SCP, pas dans le chat
  2. Avancé : Doppler, HashiCorp Vault

À ne jamais faire :

  • ❌ Envoyer une clé API sur Telegram
  • ❌ Commiter les secrets
  • ❌ Publier des logs bruts (tokens dedans)

Audit

openclaw security audit
openclaw security audit --deep
openclaw security audit --fix

Vérifie : force du token, exposition du port, permissions (~/.openclaw 700, fichier 600), skills à risque, politique DM.

Permissions fichiers

chmod 700 ~/.openclaw
chmod 600 ~/.openclaw/openclaw.json

Interdits

  • ❌ Port 18789 sur Internet public
  • ❌ Accès shell sans comprendre le risque
  • ❌ Skills de source non vérifiée
  • dmPolicy: "open" en production
  • ❌ Machine avec e-mail bancaire principal

Cas pratiques

Scénario 1 : personnel, WhatsApp, pairing

{
  "gateway": {
    "port": 18789,
    "auth": {
      "token": "generate-a-strong-random-token"
    },
    "logging": {
      "redactSensitive": true
    }
  },
  "channel": {
    "type": "whatsapp",
    "dmPolicy": "pairing",
    "session": {
      "dmScope": "per-channel-peer"
    }
  },
  "skills": {
    "enabled": [
      "calendar",
      "web_search",
      "file_manager"
    ],
    "disabled": [
      "exec",
      "browser"
    ]
  },
  "provider": {
    "type": "anthropic"
  },
  "security": {
    "sandbox": {
      "enabled": true
    }
  }
}

Sécurisé, fonctionnel, skills dangereux coupés.

Scénario 2 : équipe, multi-canal, allowlist

{
  "gateway": {
    "port": 18789,
    "auth": {
      "token": "team-gateway-token"
    },
    "remote": {
      "token": "team-remote-token"
    }
  },
  "channel": [
    {
      "type": "telegram",
      "dmPolicy": "allowlist",
      "allowFrom": [
        "telegram:@alice",
        "telegram:@bob",
        "telegram:@carol"
      ],
      "groupPolicy": "mention",
      "mentionGating": true
    },
    {
      "type": "discord",
      "dmPolicy": "allowlist",
      "allowFrom": [
        "discord:123456789"
      ]
    }
  ],
  "skills": {
    "enabled": [
      "calendar",
      "web_search",
      "github",
      "jira"
    ]
  },
  "provider": {
    "type": "anthropic"
  }
}

Tableau channel pour plusieurs plateformes ; mention gating en groupe.

Scénario 3 : local, hors ligne, skills réduits

{
  "gateway": {
    "port": 19000
  },
  "channel": {
    "type": "whatsapp",
    "dmPolicy": "allowlist",
    "allowFrom": ["+1234567890"]
  },
  "skills": {
    "enabled": [
      "calculator",
      "file_manager"
    ]
  },
  "provider": {
    "type": "openai-compatible",
    "baseURL": "http://localhost:1234/v1",
    "modelId": "llama-3.1-8b"
  }
}

Peu de skills pour tenir dans le contexte du petit modèle.

Erreurs courantes

Erreur 1 : token incorrect

Symptôme : « Authentication failed »

Vérifier gateway.auth.token (espaces, retours ligne).

Erreur 2 : dépendances manquantes

Symptôme : Skill 'google-calendar' failed to load

openclaw skill check google-calendar

Erreur 3 : port occupé

Symptôme : Error: listen EADDRINUSE :::18789

Autre port ou libérer le processus.

Erreur 4 : JSON invalide

Symptôme : SyntaxError: Unexpected token }

Validateur JSON — virgules ou guillemets.

Commandes

openclaw status
openclaw doctor
openclaw gateway --verbose

À lire aussi

Conclusion

Trois idées :

Le fichier de config est le cœur d’OpenClaw — comprendre chaque champ accélère le dépannage.

La sécurité d’abord — CVE-2026-25253, tokens secrets, ports limités, DM stricts, skills à risque sous contrôle.

La config évolue — revoyez-la, lancez openclaw security audit.

À faire maintenant :

  1. openclaw security audit --deep
  2. Optimiser selon cette checklist
  3. Sauvegarder la config (sans les tokens)

La communauté (GitHub Discussions, Discord) aide ; partagez vos retours d’expérience.

Configuration complète de openclaw.json OpenClaw

Étapes détaillées pour configurer openclaw.json de zéro : Gateway, Channel, Skills, Provider et Security

Estimated time: PT30M

  1. 1

    Step 1: Étape 1 : créer et localiser le fichier

    Emplacement : ~/.openclaw/openclaw.json
  2. 2

    Step 2: • Manuel

    mkdir -p ~/.openclaw && touch ~/.openclaw/openclaw.json
  3. 3

    Step 3: • Permissions

    chmod 600 ~/.openclaw/openclaw.json
  4. 4

    Step 4: Priorité

    variables d’environnement > fichier > défaut
  5. 5

    Step 5: Astuce

    override temporaire par variable d’environnement
  6. 6

    Step 6: Étape 2 : module Gateway

    Paramètres de base :
  7. 7

    Step 7: • URL

    http://localhost:18789
  8. 8

    Step 8: • “auth.token”

    secret obligatoire
  9. 9

    Step 9: • “remote.token”

    rotation séparée
  10. 10

    Step 10: Commande

    openclaw gateway — vérifier http://localhost:18789
  11. 11

    Step 11: Étape 3 : module Channel

    Canaux : WhatsApp, Telegram, Discord, Mattermost
  12. 12

    Step 12: disabled

    pas de DM
  13. 13

    Step 13: Étape 4 : module Skills

    Chemin : ~/.openclaw/skills/
  14. 14

    Step 14: Priorité

    workspace > utilisateur > intégré
  15. 15

    Step 15: Installation

    GUI, openclaw skill install, copie manuelle
  16. 16

    Step 16: Risque

    exec, browser, web_fetch, web_search
  17. 17

    Step 17: Petits modèles

    moins de skills
  18. 18

    Step 18: Étape 5 : module Provider

    Types : Anthropic, OpenAI, local, OpenRouter, MCP
  19. 19

    Step 19: Préférer

    export ANTHROPIC_API_KEY=“sk-ant-…”
  20. 20

    Step 20: Local

    injection, contexte réduit, sandbox, pas de données sensibles
  21. 21

    Step 21: Étape 6 : module Security

    Base : token secret, pare-feu, SSH clé, VPN, pairing/allowlist, mention gating
  22. 22

    Step 22: Étape 7 : validation et dépannage

    1. Valider le JSON 2. openclaw doctor 3. openclaw status 4. openclaw security audit —deep
  23. 23

    Step 23: Erreurs

    token (espaces), skill (dépendances), port (EADDRINUSE), JSON (syntaxe)

FAQ

Choisir pairing ou allowlist pour dmPolicy ?
Selon le scénario :

Mode pairing (recommandé dans la plupart des cas) :
• Convient si vous ne connaissez pas tous les utilisateurs à l'avance mais voulez valider
• Avantage : flexible, après la première validation les contacts habituels passent librement
• Flux : message d'un inconnu → code à 6 chiffres → vous approuvez → communication ensuite directe
• Commande : openclaw pairing approve whatsapp ABC123

Mode allowlist (haute sécurité) :
• Convient si les utilisateurs sont connus (famille, équipe)
• Avantage : le plus sûr, les autres sont bloqués
• Config : "allowFrom": ["+1234567890", "telegram:@username"]
• Maintenance : ajout manuel des nouveaux utilisateurs

Conseil :
Usage personnel, contacts imprévisibles → pairing
Équipe à membres fixes → allowlist
Démo publique / test → open (temporaire, pas en production)
Qu'est-ce que la CVE-2026-25253 et comment s'en protéger ?
Détails :
• CVE : CVE-2026-25253
• Score CVSS : 8,8 (critique)
• Découverte : fin janvier 2026
• Versions affectées : antérieures au 29 janvier 2026

Principe d'attaque :
Vol du token d'authentification via paramètre URL, ex. :
http://victim.com:18789/?token=leaked-token
Une fois le token obtenu, contrôle total de l'instance et exécution de commandes arbitraires

Correctifs officiels :
1. Suppression de l'option "auth: none", authentification obligatoire
2. Le token n'est plus passé dans l'URL
3. Authentification uniquement via en-têtes HTTP

Mesures :
• Mettre à jour immédiatement (version postérieure au 29/01/2026)
• Faire pivoter tous les tokens existants
• Ne jamais mettre le token dans une URL
• Limiter l'accès Web (VPN / liste blanche IP / pare-feu)
• Ne pas exposer le port 18789 sur Internet
• Lancer régulièrement openclaw security audit

Vérification :
openclaw --version
Si la date est antérieure au 2026-01-29, mettre à jour
Différences de sécurité entre modèle local et API Anthropic ?
Avantages API Anthropic :

1. Protection injection de prompt :
• Couche de sécurité intégrée
• Refus des instructions dangereuses
• Règles mises à jour régulièrement

2. Suivi des instructions :
• Respect strict du prompt système
• Moins facilement trompé par l'utilisateur

3. Contexte :
• Grande fenêtre (200K tokens) pour les consignes de sécurité complètes

Limites des modèles locaux :

1. Risque d'injection élevé :
• Petits modèles (7B-13B) contournables
• Peu de formation sécurité dédiée

2. Quantification :
• En 4-bit, baisse du respect des instructions
• Fonctions de sécurité parfois inefficaces

3. Contexte réduit :
• 4K-8K tokens, prompts de sécurité incomplets
• Compétences et prompts système à réduire

Usage local sécurisé :
• Limiter aux compétences à faible risque
• Sandbox obligatoire
• Pas de données sensibles sur la machine
• allowlist pour les utilisateurs
• Désactiver exec, browser
• Surveiller les logs

Choix :
Haute sécurité / données sensibles → API Anthropic
Confidentialité et hors ligne → modèle local + configuration stricte
Trop de compétences dégradent-elles les performances ? Combien en activer ?
Impact du nombre de compétences :

1. Contexte :
Chaque compétence allonge le prompt système
• Une compétence : ~200-500 tokens
• 10 compétences : ~2000-5000 tokens
• Moins d'espace pour la conversation

2. Selon le modèle :

Grand modèle (Claude Anthropic) :
• 200K tokens
• 10-20 compétences courantes possibles
• Impact négligeable

Modèle moyen (local 13B-30B) :
• 8K-32K tokens
• 5-10 compétences essentielles
• Équilibre fonction / contexte

Petit modèle (local 7B quantifié) :
• 4K-8K tokens
• 2-5 compétences cœur
• Sinon conversation impossible

3. Scénarios :

Assistant personnel :
• calendar, web_search, file_manager, calculator

Développement :
• github, web_search, exec (avec sandbox)

Entreprise :
• calendar, jira, slack, web_search

Ajustement :
• Compétences du workspace > globales
• Configs par projet
• Désactiver l'inutile

Optimisation :
openclaw skill list

Désactivation :
"skills": {"disabled": ["skill-name"]}
Gérer en sécurité plusieurs environnements (dev / test / prod) ?
Stratégies multi-environnements :

Méthode 1 : variables d'environnement (recommandé)

Fichier de base (~/.openclaw/openclaw.json) :
Config générique, sans secrets

Dev (.env.development) :
export OPENCLAW_GATEWAY_PORT=18789
export OPENCLAW_DM_POLICY=open
export ANTHROPIC_API_KEY=sk-ant-dev-key

Prod (.env.production) :
export OPENCLAW_GATEWAY_PORT=18789
export OPENCLAW_DM_POLICY=allowlist
export ANTHROPIC_API_KEY=sk-ant-prod-key

Bascule :
source .env.development
openclaw gateway

Priorité : env > fichier > défaut

Méthode 2 : plusieurs fichiers
~/.openclaw/openclaw.dev.json
~/.openclaw/openclaw.prod.json
openclaw gateway --config ~/.openclaw/openclaw.prod.json

Méthode 3 : Git (équipes)
openclaw.json.template (versionné)
openclaw.json (.gitignore)
.env.example

.gitignore :
openclaw.json, .env, .env.local, .env.*.local

Méthode 4 : gestionnaire de secrets (entreprise)
Doppler : doppler run -- openclaw gateway
Vault : vault kv get -field=token secret/openclaw/gateway

Checklist :
✅ Pas de clés API dans le fichier
✅ Secrets en variables d'environnement
✅ .gitignore complet
✅ Tokens prod ≠ dev
✅ Rotation régulière prod
✅ Permissions 600
✅ Ne pas partager la config dans le chat

Sauvegarde :
Dev : Git si sans secrets
Prod : coffre chiffré (1Password / Bitwarden)
L'assistant répond en boucle dans un groupe : que faire ?
Cause :
mention gating désactivé, l'IA répond à tous les messages

Solutions :

1. Mention Gating (recommandé)
"channel": {
"groupPolicy": "mention",
"mentionGating": true
}
Réponse uniquement aux @mentions

2. Mots-clés
"groupPolicy": "keyword",
"keywords": ["openclaw", "assistant"]

3. Désactiver les groupes
"groupPolicy": "disabled"

4. Limitation de débit
"rateLimit": {"maxMessages": 10, "perMinutes": 1}

Urgence :
openclaw channel disable --group
Retirer OpenClaw du groupe
openclaw gateway restart

Bonnes pratiques :
mention + rateLimit 5/min
Le fichier de config ne fonctionne plus, Gateway ne démarre pas : comment diagnostiquer ?
Diagnostic systématique :

Étape 1 : format JSON
cat ~/.openclaw/openclaw.json | python -m json.tool
Erreurs courantes : virgule en trop, guillemets, commentaires //
jsonlint.com

Étape 2 : permissions
ls -la ~/.openclaw/openclaw.json
-rw------- (600)
chmod 600 ~/.openclaw/openclaw.json
chmod 700 ~/.openclaw

Étape 3 : logs
openclaw gateway --verbose
~/.openclaw/logs/gateway.log
tail -n 50 ~/.openclaw/logs/gateway.log

Étape 4 : santé
openclaw doctor
openclaw security audit --deep

Étape 5 : pannes courantes

Port occupé (EADDRINUSE) :
lsof -i :18789, kill -9, ou "port": 19000

Token invalide :
cat -A, openssl rand -hex 32

Conflit env :
env | grep OPENCLAW, unset

Fichier corrompu :
cp .backup ou template

Étape 6 : réinitialisation
cp openclaw.json.broken
rm openclaw.json
openclaw onboard
openclaw gateway --verbose

Prévention :
Sauvegarde cron, template Git, test --dry-run, openclaw config validate

8 min de lecture · Publié le: 5 févr. 2026 · Mis à jour le: 27 juil. 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog