Commandes slash
Les commandes sont gérées par la Gateway. La plupart des commandes doivent être envoyées sous forme de message autonome commençant par/.
La commande de chat bash, réservée à l’hôte, utilise ! <cmd> (avec /bash <cmd> comme alias).
Il existe deux systèmes liés :
- Commandes : messages autonomes
/.... - Directives :
/think,/fast,/verbose,/reasoning,/elevated,/exec,/model,/queue.- Les directives sont retirées du message avant que le modèle ne le voie.
- Dans les messages de chat normaux (pas uniquement composés de directives), elles sont traitées comme des « indications en ligne » et ne conservent pas les paramètres de session.
- Dans les messages composés uniquement de directives (le message ne contient que des directives), elles persistent dans la session et répondent avec un accusé de réception.
- Les directives ne sont appliquées que pour les expéditeurs autorisés. Si
commands.allowFromest défini, c’est la seule liste d’autorisation utilisée ; sinon l’autorisation provient des listes d’autorisation/appairages de canaux pluscommands.useAccessGroups. Les expéditeurs non autorisés voient les directives traitées comme du texte brut.
/help, /commands, /status, /whoami (/id).
Ils s’exécutent immédiatement, sont retirés avant que le modèle ne voie le message, et le texte restant continue dans le flux normal.
Configuration
commands.text(par défauttrue) active l’analyse de/...dans les messages de chat.- Sur les surfaces sans commandes natives (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams), les commandes texte fonctionnent quand même même si vous définissez cette valeur sur
false.
- Sur les surfaces sans commandes natives (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams), les commandes texte fonctionnent quand même même si vous définissez cette valeur sur
commands.native(par défaut"auto") enregistre les commandes natives.- Auto : activé pour Discord/Telegram ; désactivé pour Slack (jusqu’à ce que vous ajoutiez des commandes slash) ; ignoré pour les fournisseurs sans prise en charge native.
- Définissez
channels.discord.commands.native,channels.telegram.commands.nativeouchannels.slack.commands.nativepour remplacer par fournisseur (booléen ou"auto"). falseefface les commandes précédemment enregistrées sur Discord/Telegram au démarrage. Les commandes Slack sont gérées dans l’application Slack et ne sont pas supprimées automatiquement.
commands.nativeSkills(par défaut"auto") enregistre les commandes de skills de manière native lorsque cela est pris en charge.- Auto : activé pour Discord/Telegram ; désactivé pour Slack (Slack nécessite de créer une commande slash par skill).
- Définissez
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillsouchannels.slack.commands.nativeSkillspour remplacer par fournisseur (booléen ou"auto").
commands.bash(par défautfalse) active! <cmd>pour exécuter des commandes shell sur l’hôte (/bash <cmd>est un alias ; nécessite les listes d’autorisationtools.elevated).commands.bashForegroundMs(par défaut2000) contrôle la durée d’attente de bash avant de passer en mode arrière-plan (0passe immédiatement en arrière-plan).commands.config(par défautfalse) active/config(lit/écritopenclaw.json).commands.mcp(par défautfalse) active/mcp(lit/écrit la configuration MCP gérée par OpenClaw sousmcp.servers).commands.plugins(par défautfalse) active/plugins(découverte/statut des plugins plus installation et contrôles d’activation/désactivation).commands.debug(par défautfalse) active/debug(remplacements à l’exécution uniquement).commands.allowFrom(facultatif) définit une liste d’autorisation par fournisseur pour l’autorisation des commandes. Lorsqu’elle est configurée, c’est la seule source d’autorisation pour les commandes et directives (les listes d’autorisation/appairages de canaux etcommands.useAccessGroupssont ignorés). Utilisez"*"pour une valeur globale par défaut ; les clés spécifiques aux fournisseurs la remplacent.commands.useAccessGroups(par défauttrue) applique les listes d’autorisation/politiques pour les commandes lorsquecommands.allowFromn’est pas défini.
Liste des commandes
Texte + natives (quand elles sont activées) :/help/commands/tools [compact|verbose](affiche ce que l’agent actuel peut utiliser maintenant ;verboseajoute des descriptions)/skill <name> [input](exécuter un skill par nom)/status(afficher l’état actuel ; inclut l’usage/quota du fournisseur pour le fournisseur de modèle actuel lorsque disponible)/tasks(lister les tâches en arrière-plan pour la session actuelle ; affiche les détails des tâches actives et récentes avec comptes de secours locaux à l’agent)/allowlist(lister/ajouter/supprimer des entrées de liste d’autorisation)/approve <id> <decision>(résoudre les invites d’approbation exec ; utilisez le message d’approbation en attente pour voir les décisions disponibles)/context [list|detail|json](expliquer le « contexte » ;detailaffiche la taille par fichier + par outil + par skill + celle de l’invite système)/btw <question>(poser une question latérale éphémère sur la session actuelle sans changer le contexte futur de la session ; voir /tools/btw)/export-session [path](alias :/export) (exporter la session actuelle en HTML avec l’invite système complète)/whoami(afficher votre identifiant d’expéditeur ; alias :/id)/session idle <duration|off>(gérer la perte automatique de focus par inactivité pour les liaisons de fils ciblées)/session max-age <duration|off>(gérer la perte automatique de focus par âge maximal strict pour les liaisons de fils ciblées)/subagents list|kill|log|info|send|steer|spawn(inspecter, contrôler ou lancer des exécutions de sous-agents pour la session actuelle)/acp spawn|cancel|steer|close|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|sessions(inspecter et contrôler les sessions d’exécution ACP)/agents(lister les agents liés au fil pour cette session)/focus <target>(Discord : lier ce fil, ou un nouveau fil, à une cible de session/sous-agent)/unfocus(Discord : supprimer la liaison du fil actuel)/kill <id|#|all>(abandonner immédiatement un ou tous les sous-agents en cours pour cette session ; aucun message de confirmation)/steer <id|#> <message>(rediriger immédiatement un sous-agent en cours : dans l’exécution si possible, sinon interrompre le travail en cours et redémarrer sur le message de redirection)/tell <id|#> <message>(alias de/steer)/config show|get|set|unset(persister la configuration sur disque, propriétaire uniquement ; nécessitecommands.config: true)/mcp show|get|set|unset(gérer la configuration des serveurs MCP OpenClaw, propriétaire uniquement ; nécessitecommands.mcp: true)/plugins list|show|get|install|enable|disable(inspecter les plugins détectés, en installer de nouveaux et activer/désactiver ; propriétaire uniquement pour les écritures ; nécessitecommands.plugins: true)/pluginest un alias de/plugins./plugin install <spec>accepte les mêmes spécifications de plugin queopenclaw plugins install: chemin/archive local, paquet npm ouclawhub:<pkg>.- Les écritures d’activation/désactivation répondent toujours avec une indication de redémarrage. Sur une gateway au premier plan surveillée, OpenClaw peut effectuer ce redémarrage automatiquement juste après l’écriture.
/debug show|set|unset|reset(remplacements à l’exécution, propriétaire uniquement ; nécessitecommands.debug: true)/usage off|tokens|full|cost(pied de page d’usage par réponse ou résumé local des coûts)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(contrôler TTS ; voir /tts)- Discord : la commande native est
/voice(Discord réserve/tts) ; la commande texte/ttsfonctionne toujours.
- Discord : la commande native est
/stop/restart/dock-telegram(alias :/dock_telegram) (basculer les réponses vers Telegram)/dock-discord(alias :/dock_discord) (basculer les réponses vers Discord)/dock-slack(alias :/dock_slack) (basculer les réponses vers Slack)/activation mention|always(groupes uniquement)/send on|off|inherit(propriétaire uniquement)/resetou/new [model](indication de modèle facultative ; le reste est transmis)/think <off|minimal|low|medium|high|xhigh>(choix dynamiques selon le modèle/fournisseur ; alias :/thinking,/t)/fast status|on|off(en omettant l’argument, affiche l’état effectif actuel du mode rapide)/verbose on|full|off(alias :/v)/reasoning on|off|stream(alias :/reason; quand activé, envoie un message séparé préfixé parReasoning:;stream= brouillon Telegram uniquement)/elevated on|off|ask|full(alias :/elev;fullignore les approbations exec)/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(envoyez/execpour afficher l’état actuel)/model <name>(alias :/models; ou/<alias>depuisagents.defaults.models.*.alias)/queue <mode>(avec en plus des options commedebounce:2s cap:25 drop:summarize; envoyez/queuepour voir les paramètres actuels)/bash <command>(réservé à l’hôte ; alias de! <command>; nécessitecommands.bash: true+ listes d’autorisationtools.elevated)/dreaming [off|core|rem|deep|status|help](activer/désactiver le mode dreaming ou afficher l’état ; voir Dreaming)
/compact [instructions](voir /concepts/compaction)! <command>(réservé à l’hôte ; une à la fois ; utilisez!poll+!stoppour les tâches longues)!poll(vérifier la sortie / l’état ; accepte unsessionIdfacultatif ;/bash pollfonctionne aussi)!stop(arrêter la tâche bash en cours ; accepte unsessionIdfacultatif ;/bash stopfonctionne aussi)
- Les commandes acceptent un
:facultatif entre la commande et les arguments (par exemple/think: high,/send: on,/help:). /new <model>accepte un alias de modèle,provider/modelou un nom de fournisseur (correspondance approximative) ; si aucune correspondance n’est trouvée, le texte est traité comme corps du message.- Pour la ventilation complète de l’usage par fournisseur, utilisez
openclaw status --usage. /allowlist add|removenécessitecommands.config=trueet respecteconfigWritesdu canal.- Dans les canaux multi-comptes,
/allowlist --account <id>ciblé configuration et/config set channels.<provider>.accounts.<id>...respectent aussiconfigWritesdu compte cible. /usagecontrôle le pied de page d’usage par réponse ;/usage costaffiche un résumé local des coûts à partir des journaux de session OpenClaw./restartest activé par défaut ; définissezcommands.restart: falsepour le désactiver.- Commande native réservée à Discord :
/vc join|leave|statuscontrôle les canaux vocaux (nécessitechannels.discord.voiceet les commandes natives ; non disponible en texte). - Les commandes de liaison de fil Discord (
/focus,/unfocus,/agents,/session idle,/session max-age) nécessitent que les liaisons de fils effectives soient activées (session.threadBindings.enabledet/ouchannels.discord.threadBindings.enabled). - Référence de la commande ACP et comportement d’exécution : ACP Agents.
/verboseest destiné au débogage et à une visibilité supplémentaire ; gardez-le désactivé en usage normal./fast on|offpersiste un remplacement de session. Utilisez l’optioninheritde l’interface Sessions pour l’effacer et revenir aux paramètres par défaut de la configuration./fastest spécifique au fournisseur : OpenAI/OpenAI Codex le mappe versservice_tier=prioritysur les endpoints Responses natifs, tandis que les requêtes Anthropic publiques directes, y compris le trafic authentifié OAuth envoyé àapi.anthropic.com, le mappent versservice_tier=autooustandard_only. Voir OpenAI et Anthropic.- Les résumés d’échec d’outil sont toujours affichés lorsqu’ils sont pertinents, mais le texte détaillé des échecs n’est inclus que lorsque
/verboseestonoufull. /reasoning(et/verbose) sont risqués dans les contextes de groupe : ils peuvent révéler un raisonnement interne ou une sortie d’outil que vous n’aviez pas l’intention d’exposer. Il est préférable de les laisser désactivés, surtout dans les discussions de groupe./modelpersiste immédiatement le nouveau modèle de session.- Si l’agent est inactif, la prochaine exécution l’utilise immédiatement.
- Si une exécution est déjà active, OpenClaw marque un changement en direct comme en attente et ne redémarre vers le nouveau modèle qu’à un point de nouvelle tentative propre.
- Si l’activité des outils ou la sortie de réponse a déjà commencé, le changement en attente peut rester en file jusqu’à une opportunité de nouvelle tentative ultérieure ou au prochain tour utilisateur.
- Chemin rapide : les messages composés uniquement de commandes provenant d’expéditeurs sur liste d’autorisation sont traités immédiatement (contournent la file + le modèle).
- Contrôle des mentions en groupe : les messages composés uniquement de commandes provenant d’expéditeurs sur liste d’autorisation contournent les exigences de mention.
- Raccourcis en ligne (expéditeurs sur liste d’autorisation uniquement) : certaines commandes fonctionnent aussi lorsqu’elles sont intégrées dans un message normal et sont retirées avant que le modèle ne voie le texte restant.
- Exemple :
hey /statusdéclenche une réponse de statut, et le texte restant continue dans le flux normal.
- Exemple :
- Actuellement :
/help,/commands,/status,/whoami(/id). - Les messages composés uniquement de commandes non autorisés sont ignorés silencieusement, et les jetons
/...en ligne sont traités comme du texte brut. - Commandes de skills : les skills
user-invocablesont exposés comme commandes slash. Les noms sont assainis ena-z0-9_(32 caractères max) ; les collisions reçoivent des suffixes numériques (par ex._2)./skill <name> [input]exécute un skill par nom (utile lorsque les limites des commandes natives empêchent les commandes par skill).- Par défaut, les commandes de skill sont transférées au modèle comme une requête normale.
- Les skills peuvent éventuellement déclarer
command-dispatch: toolpour acheminer la commande directement vers un outil (déterministe, sans modèle). - Exemple :
/prose(plugin OpenProse) — voir OpenProse.
- Arguments des commandes natives : Discord utilise l’autocomplétion pour les options dynamiques (et des menus à boutons quand vous omettez des arguments requis). Telegram et Slack affichent un menu à boutons lorsqu’une commande prend en charge des choix et que vous omettez l’argument.
/tools
/tools répond à une question d’exécution, pas à une question de configuration : ce que cet agent peut utiliser actuellement dans
cette conversation.
- Par défaut,
/toolsest compact et optimisé pour une lecture rapide. /tools verboseajoute de courtes descriptions.- Les surfaces à commandes natives qui prennent en charge les arguments exposent le même changement de mode
compact|verbose. - Les résultats sont limités à la session, donc changer d’agent, de canal, de fil, d’autorisation d’expéditeur ou de modèle peut modifier la sortie.
/toolsinclut les outils réellement accessibles à l’exécution, y compris les outils principaux, les outils de plugin connectés et les outils appartenant au canal.
/tools comme un catalogue statique.
Surfaces d’usage (ce qui s’affiche où)
- Usage/quota du fournisseur (exemple : « Claude 80% left ») s’affiche dans
/statuspour le fournisseur du modèle actuel lorsque le suivi d’usage est activé. OpenClaw normalise les fenêtres de fournisseur en% left; pour MiniMax, les champs de pourcentage restants seuls sont inversés avant affichage, et les réponsesmodel_remainspréfèrent l’entrée du modèle de chat plus une étiquette de plan taguée par modèle. - Lignes jetons/cache dans
/statuspeuvent revenir à la dernière entrée d’usage de transcription lorsque l’instantané de session en direct est clairsemé. Les valeurs en direct non nulles existantes restent prioritaires, et ce retour à la transcription peut aussi récupérer l’étiquette du modèle d’exécution actif ainsi qu’un total plus important orienté invite lorsque les totaux stockés sont absents ou plus petits. - Jetons/coût par réponse est contrôlé par
/usage off|tokens|full(ajouté aux réponses normales). /model statusconcerne les modèles/auth/endpoints, pas l’usage.
Sélection du modèle (/model)
/model est implémenté comme directive.
Exemples :
/modelet/model listaffichent un sélecteur compact numéroté (famille de modèles + fournisseurs disponibles).- Sur Discord,
/modelet/modelsouvrent un sélecteur interactif avec des menus déroulants de fournisseur et de modèle plus une étape Submit. /model <#>sélectionne depuis ce sélecteur (et préfère le fournisseur actuel si possible)./model statusaffiche la vue détaillée, y compris l’endpoint configuré du fournisseur (baseUrl) et le mode API (api) lorsque disponible.
Remplacements de débogage
/debug vous permet de définir des remplacements de configuration à l’exécution uniquement (en mémoire, pas sur disque). Propriétaire uniquement. Désactivé par défaut ; activez-le avec commands.debug: true.
Exemples :
- Les remplacements s’appliquent immédiatement aux nouvelles lectures de configuration, mais n’écrivent pas dans
openclaw.json. - Utilisez
/debug resetpour effacer tous les remplacements et revenir à la configuration sur disque.
Mises à jour de configuration
/config écrit dans votre configuration sur disque (openclaw.json). Propriétaire uniquement. Désactivé par défaut ; activez-le avec commands.config: true.
Exemples :
- La configuration est validée avant écriture ; les modifications invalides sont rejetées.
- Les mises à jour
/configpersistent après redémarrage.
Mises à jour MCP
/mcp écrit les définitions de serveurs MCP gérées par OpenClaw sous mcp.servers. Propriétaire uniquement. Désactivé par défaut ; activez-le avec commands.mcp: true.
Exemples :
/mcpstocke la configuration dans la configuration OpenClaw, pas dans les paramètres de projet gérés par Pi.- Les adaptateurs d’exécution décident quels transports sont réellement exécutables.
Mises à jour des plugins
/plugins permet aux opérateurs d’inspecter les plugins détectés et d’activer/désactiver leur activation dans la configuration. Les flux en lecture seule peuvent utiliser /plugin comme alias. Désactivé par défaut ; activez-le avec commands.plugins: true.
Exemples :
/plugins listet/plugins showutilisent la découverte réelle de plugins sur l’espace de travail actuel plus la configuration sur disque./plugins enable|disablemet uniquement à jour la configuration du plugin ; cela n’installe ni ne désinstalle les plugins.- Après des modifications d’activation/désactivation, redémarrez la gateway pour les appliquer.
Remarques sur les surfaces
- Les commandes texte s’exécutent dans la session de chat normale (les DM partagent
main, les groupes ont leur propre session). - Les commandes natives utilisent des sessions isolées :
- Discord :
agent:<agentId>:discord:slash:<userId> - Slack :
agent:<agentId>:slack:slash:<userId>(préfixe configurable viachannels.slack.slashCommand.sessionPrefix) - Telegram :
telegram:slash:<userId>(cible la session du chat viaCommandTargetSessionKey)
- Discord :
/stopcible la session de chat active afin de pouvoir interrompre l’exécution en cours.- Slack :
channels.slack.slashCommandest toujours pris en charge pour une seule commande de type/openclaw. Si vous activezcommands.native, vous devez créer une commande slash Slack par commande intégrée (mêmes noms que/help). Les menus d’arguments de commande pour Slack sont livrés sous forme de boutons Block Kit éphémères.- Exception native Slack : enregistrez
/agentstatus(pas/status) parce que Slack réserve/status. La commande texte/statusfonctionne toujours dans les messages Slack.
- Exception native Slack : enregistrez
Questions latérales BTW
/btw est une question latérale rapide sur la session actuelle.
Contrairement au chat normal :
- il utilise la session actuelle comme contexte d’arrière-plan,
- il s’exécute comme un appel unique séparé sans outil,
- il ne modifie pas le contexte futur de la session,
- il n’est pas écrit dans l’historique de transcription,
- il est livré comme résultat latéral en direct au lieu d’un message assistant normal.
/btw utile lorsque vous voulez une clarification temporaire pendant que la tâche principale
continue.
Exemple :