Skip to main content
Le Gateway gère les commandes envoyées sous forme de messages autonomes commençant par /. Les commandes bash réservées à l’hôte utilisent ! <cmd> (avec /bash <cmd> comme alias). Lorsqu’une conversation est liée à une session ACP, le texte normal est acheminé vers le harnais ACP. Les commandes de gestion du Gateway restent locales : /acp ... atteint toujours le gestionnaire de commandes OpenClaw, et /status ainsi que /unfocus restent locales chaque fois que la gestion des commandes est activée pour l’interface.

Trois types de commandes

Commandes

Messages /... autonomes gérés par le Gateway. Ils doivent constituer l’unique contenu du message.

Directives

/think, /fast, /verbose, /trace, /reasoning, /elevated, /exec, /model, /queue — supprimées du message avant que le modèle ne le voie. Elles conservent les paramètres de session lorsqu’elles sont envoyées seules et servent d’indications intégrées lorsqu’elles sont accompagnées d’un autre texte.

Raccourcis intégrés

/help, /commands, /status, /whoami — s’exécutent immédiatement et sont supprimés avant que le modèle ne voie le texte restant. Expéditeurs autorisés uniquement.
  • Les directives sont supprimées du message avant que le modèle ne le voie.
  • Dans les messages contenant uniquement des directives (le message ne contient que des directives), elles sont conservées dans la session et une confirmation est renvoyée.
  • Dans les messages de discussion normale contenant un autre texte, elles servent d’indications intégrées et ne conservent pas les paramètres de session.
  • Les directives ne s’appliquent qu’aux expéditeurs autorisés. Si commands.allowFrom est défini, il constitue l’unique liste d’autorisation utilisée ; sinon, l’autorisation provient des listes d’autorisation/de l’association du canal ainsi que de commands.useAccessGroups. Pour les expéditeurs non autorisés, les directives sont traitées comme du texte brut.

Configuration

boolean
défaut:"true"
Active l’analyse de /... dans les messages de discussion. Sur les interfaces dépourvues de commandes natives (WhatsApp, WebChat, Signal, iMessage, Google Chat, Microsoft Teams), les commandes textuelles fonctionnent même lorsque cette option est définie sur false.
boolean | "auto"
défaut:"\"auto\""
Enregistre les commandes natives. Mode automatique : activé pour Discord/Telegram ; désactivé pour Slack ; ignoré pour les fournisseurs dépourvus de prise en charge native. Remplacez ce réglage pour chaque canal avec channels.<provider>.commands.native. Sur Discord, false ignore l’enregistrement des commandes à barre oblique ; les commandes précédemment enregistrées peuvent rester visibles jusqu’à leur suppression.
boolean | "auto"
défaut:"\"auto\""
Enregistre nativement les commandes de Skills lorsque cela est pris en charge. Mode automatique : activé pour Discord/Telegram ; désactivé pour Slack. Remplacez ce réglage avec channels.<provider>.commands.nativeSkills.
boolean
défaut:"false"
Active ! <cmd> pour exécuter des commandes shell sur l’hôte (alias /bash <cmd>). Nécessite les listes d’autorisation tools.elevated.
number
défaut:"2000"
Durée pendant laquelle bash attend avant de passer en mode arrière-plan (0 passe immédiatement en arrière-plan).
boolean
défaut:"false"
Active /config (lit/écrit openclaw.json). Réservé au propriétaire.
boolean
défaut:"false"
Active /mcp (lit/écrit la configuration MCP gérée par OpenClaw sous mcp.servers). Réservé au propriétaire.
boolean
défaut:"false"
Active /plugins (découverte/état des plugins, installation et activation/désactivation). Écritures réservées au propriétaire.
boolean
défaut:"false"
Active /debug (remplacements de configuration limités à l’exécution). Réservé au propriétaire.
boolean
défaut:"true"
Active /restart et les demandes de redémarrage externes SIGUSR1.
string[]
Liste d’autorisation explicite du propriétaire pour les interfaces de commandes réservées au propriétaire. Distincte de commands.allowFrom et de l’accès par association en message privé.
boolean
défaut:"false"
Par canal : exige l’identité du propriétaire pour les commandes réservées au propriétaire. Lorsque true, l’expéditeur doit correspondre à commands.ownerAllowFrom ou détenir la portée interne operator.admin. Une entrée générique allowFrom n’est pas suffisante.
"raw" | "hash"
Contrôle la manière dont les identifiants du propriétaire apparaissent dans l’invite système.
string
Secret HMAC utilisé lorsque commands.ownerDisplay: "hash".
object
Liste d’autorisation par fournisseur pour l’autorisation des commandes. Lorsqu’elle est configurée, elle constitue l’unique source d’autorisation pour les commandes et les directives. Utilisez "*" comme valeur globale par défaut ; les clés propres aux fournisseurs la remplacent.
boolean
défaut:"true"
Applique les listes d’autorisation/politiques aux commandes lorsque commands.allowFrom n’est pas défini.

Liste des commandes

Les commandes proviennent de trois sources :
  • Commandes intégrées au cœur : src/auto-reply/commands-registry.shared.ts
  • Commandes de dock générées : src/auto-reply/commands-registry.data.ts
  • Commandes de plugins : appels registerCommand() du plugin
Leur disponibilité dépend des options de configuration, de l’interface du canal et des plugins installés/activés.

Commandes principales

Les chemins /export-session explicites remplacent les fichiers existants dans l’espace de travail. Omettre le chemin pour générer un nom de fichier sans risque de collision.
Control UI intercepte la saisie de /new pour créer une nouvelle session de tableau de bord et y basculer, sauf lorsque session.dmScope: "main" est configuré et que le parent actuel est la session principale de l’agent — dans ce cas, /new réinitialise la session principale sur place. La saisie de /reset exécute toujours la réinitialisation sur place du Gateway. Utilisez /model default pour effacer la sélection épinglée du modèle de session.
  • /verbose est destiné au débogage — laissez-le désactivé en utilisation normale.
  • /trace ne révèle que les lignes de traçage/débogage propres aux plugins ; les messages détaillés ordinaires restent désactivés.
  • /fast auto|on|off conserve un remplacement de session ; utilisez l’option inherit de l’interface Sessions pour l’effacer.
  • /fast dépend du fournisseur : OpenAI/Codex l’associent à service_tier=priority ; les requêtes Anthropic directes l’associent à service_tier=auto ou standard_only.
  • /reasoning, /verbose et /trace présentent des risques dans les groupes — ils peuvent révéler le raisonnement interne ou les diagnostics des plugins. Laissez-les désactivés dans les discussions de groupe.
  • /model conserve immédiatement le nouveau modèle dans la session.
  • Si l’agent est inactif, l’exécution suivante l’utilise immédiatement.
  • Si une exécution est active, le changement est marqué comme étant en attente et appliqué au prochain point de nouvelle tentative propre.

Commandes d’ancrage

Les commandes d’ancrage font basculer la route de réponse de la session active vers un autre canal lié. Consultez Ancrage des canaux pour la configuration et le dépannage. Générées à partir des Plugins de canal prenant en charge les commandes natives :
  • /dock-discord (alias : /dock_discord)
  • /dock-mattermost (alias : /dock_mattermost)
  • /dock-slack (alias : /dock_slack)
  • /dock-telegram (alias : /dock_telegram)
Les commandes d’ancrage nécessitent session.identityLinks. L’expéditeur source et le pair cible doivent appartenir au même groupe d’identités.

Commandes des Plugins intégrés

QQBot uniquement : /bot-ping, /bot-version, /bot-help, /bot-upgrade, /bot-logs

Commandes de Skills

Les Skills invocables par l’utilisateur sont exposées comme commandes à barre oblique :
  • /skill <name> [input] fonctionne toujours comme point d’entrée générique.
  • Les Skills peuvent s’enregistrer comme commandes directes (par exemple /prose pour OpenProse).
  • L’enregistrement natif des commandes de Skills est contrôlé par commands.nativeSkills et channels.<provider>.commands.nativeSkills.
  • Les noms sont normalisés en a-z0-9_ (32 caractères maximum) ; les collisions reçoivent des suffixes numériques.
Par défaut, les commandes de Skills sont acheminées vers le modèle comme une requête normale.Les Skills peuvent déclarer command-dispatch: tool pour acheminer directement vers un outil (de manière déterministe, sans intervention du modèle). Exemple : /prose (Plugin OpenProse) — voir OpenProse.
Discord utilise la saisie semi-automatique pour les options dynamiques et les menus de boutons lorsque des arguments obligatoires sont omis. Telegram et Slack affichent un menu de boutons pour les commandes comportant des choix. Les choix dynamiques sont déterminés en fonction du modèle de la session cible ; les options propres au modèle, telles que les niveaux /think, suivent donc le remplacement /model de la session.

/tools : ce que l’agent peut utiliser maintenant

/tools répond à une question d’exécution : ce que cet agent peut utiliser immédiatement dans cette conversation — et non un catalogue statique de configuration.
Les résultats sont limités à la session. Le changement d’agent, de canal, de fil, d’autorisation de l’expéditeur ou de modèle peut modifier la sortie. Pour modifier le profil et les remplacements, utilisez le panneau Tools de l’interface de contrôle ou les surfaces de configuration.

/model : sélection du modèle

Sur Discord, /model et /models ouvrent un sélecteur interactif avec des listes déroulantes de fournisseurs et de modèles. Le sélecteur respecte agents.defaults.models, y compris les entrées provider/*.

/config : écritures de la configuration sur disque

Réservé au propriétaire. Désactivé par défaut — activez-le avec commands.config: true.
La configuration est validée avant l’écriture. Les modifications non valides sont rejetées. Les mises à jour /config persistent après les redémarrages.

/mcp : configuration des serveurs MCP

Réservé au propriétaire. Désactivé par défaut — activez-le avec commands.mcp: true.
/mcp stocke la configuration dans celle d’OpenClaw, et non dans les paramètres de projet de l’agent intégré. /mcp show masque les champs contenant des identifiants, les valeurs reconnues des options relatives aux identifiants et les arguments présentant une forme connue de secret. Lorsqu’elle est exécutée depuis un groupe, la configuration est envoyée en privé au propriétaire ; si aucune route privée vers le propriétaire n’est disponible, la commande échoue de manière sécurisée et demande au propriétaire de réessayer depuis une conversation directe.

/debug : remplacements limités à l’exécution

Réservé au propriétaire. Désactivé par défaut — activez-le avec commands.debug: true. Les remplacements s’appliquent immédiatement aux nouvelles lectures de configuration, mais n’écrivent pas sur le disque.

/plugins : gestion des Plugins

Écritures réservées au propriétaire. Désactivé par défaut — activez-le avec commands.plugins: true.
/plugins enable|disable met à jour la configuration des Plugins et recharge à chaud l’environnement d’exécution des Plugins du Gateway pour les nouveaux tours des agents. /plugins install redémarre automatiquement les Gateways gérés, car les modules sources des Plugins ont changé. Les installations ClawHub de confiance et celles provenant du catalogue officiel ne nécessitent pas d’accusé de réception supplémentaire. Les sources npm, git, d’archive, npm-pack: et de chemin local arbitraires affichent un avertissement de provenance et nécessitent un --force final après examen de la source. Cette option confirme la prise en compte de la source et autorise le remplacement d’une installation existante ; elle ne contourne ni security.installPolicy ni les contrôles de sécurité du programme d’installation. Les versions ClawHub accompagnées d’avertissements de risque nécessitent toujours l’option distincte, disponible uniquement dans le shell, --acknowledge-clawhub-risk. Les installations issues de la place de marché, liées et épinglées restent également limitées au shell.

/trace : sortie de traçage des Plugins

/trace affiche les lignes de traçage et de débogage des Plugins limitées à la session sans activer le mode entièrement détaillé. Il ne remplace ni /debug (remplacements d’exécution), ni /verbose (sortie normale des outils).

/btw : questions secondaires

/btw permet de poser rapidement une question secondaire sur le contexte de la session actuelle. Alias : /side.
Contrairement à un message normal :
  • Utilise la session actuelle comme contexte d’arrière-plan.
  • Dans les sessions du harnais Codex, s’exécute comme un fil secondaire Codex éphémère.
  • Ne modifie pas le contexte futur de la session.
  • N’est pas écrit dans l’historique de la transcription.
Consultez Questions secondaires BTW pour connaître le comportement complet.

Remarques sur les surfaces

  • Commandes textuelles : s’exécutent dans la session de conversation normale (les messages privés partagent main, les groupes possèdent leur propre session).
  • Commandes Discord natives : agent:<agentId>:discord:slash:<userId>
  • Commandes Slack natives : agent:<agentId>:slack:slash:<userId> (préfixe configurable via channels.slack.slashCommand.sessionPrefix)
  • Commandes Telegram natives : telegram:slash:<userId> (ciblent la session de conversation via CommandTargetSessionKey)
  • /login codex envoie les codes d’association d’appareils uniquement par conversation privée ou via les chemins de réponse de l’interface Web. Les appels depuis un groupe ou un sujet Telegram demandent plutôt au propriétaire d’envoyer un message privé au bot.
  • /stop cible la session de conversation active afin d’interrompre l’exécution en cours.
channels.slack.slashCommand prend en charge une seule commande de type /openclaw. Avec commands.native: true, créez une commande slash Slack par commande intégrée. Enregistrez /agentstatus (et non /status), car Slack réserve /status. Le texte /status fonctionne toujours dans les messages Slack.
  • Les messages contenant uniquement une commande et provenant d’expéditeurs figurant sur la liste d’autorisation sont traités immédiatement (sans passer par la file d’attente ni le modèle).
  • Les raccourcis intégrés (/help, /commands, /status, /whoami) fonctionnent également lorsqu’ils sont incorporés dans des messages normaux et sont retirés avant que le modèle ne voie le texte restant.
  • Les messages non autorisés contenant uniquement une commande sont ignorés silencieusement ; les jetons /... intégrés sont traités comme du texte brut.
  • Les commandes acceptent un : facultatif entre la commande et les arguments (/think: high, /send: on).
  • /new <model> accepte un alias de modèle, provider/model ou un nom de fournisseur (correspondance approximative) ; en l’absence de correspondance, le texte est traité comme le corps du message.
  • /allowlist add|remove nécessite commands.config: true et respecte la valeur configWrites du canal.

Utilisation et état du fournisseur

  • Utilisation/quota du fournisseur (par exemple, « Claude : 80 % restants ») s’affiche dans /status pour le fournisseur du modèle actuel lorsque le suivi de l’utilisation est activé.
  • Les lignes de jetons/cache dans /status peuvent utiliser en dernier recours la dernière entrée d’utilisation de la transcription lorsque l’instantané de la session en direct contient peu d’informations.
  • Exécution et environnement d’exécution : /status indique Execution pour le chemin effectif du bac à sable et Runtime pour l’entité qui exécute la session : OpenClaw Default, OpenAI Codex, un moteur CLI ou un moteur ACP.
  • Jetons/coût par réponse : contrôlés par /usage off|tokens|full.
  • /model status concerne les modèles, l’authentification et les points de terminaison, et non l’utilisation.

Pages connexes

Skills

Mode d’enregistrement et de contrôle des commandes slash de Skills.

Création de Skills

Créez une Skill qui enregistre sa propre commande slash.

BTW

Posez des questions annexes sans modifier le contexte de la session.

Pilotage

Guidez l’agent en cours d’exécution avec /steer.