Slash-Befehle
Befehle werden vom Gateway verarbeitet. Die meisten Befehle müssen als eigenständige Nachricht gesendet werden, die mit / beginnt. Der nur-Host-Bash-Chat-Befehl nutzt ! <cmd> (Alias: /bash <cmd>). Es gibt zwei zusammenhängende Systeme:
-
Commands: eigenständige
/...-Nachrichten. -
Directives:
/think,/verbose,/reasoning,/elevated,/exec,/model,/queue.- Directives werden aus der Nachricht entfernt, bevor das Modell sie sieht.
- In normalen Chat-Nachrichten (nicht nur Directives) gelten sie als „Inline-Hinweise“ und speichern keine Sitzungseinstellungen.
- In Nur-Directive-Nachrichten (die Nachricht enthält nur Directives) werden sie in der Sitzung gespeichert und mit einer Bestätigung beantwortet.
- Directives gelten nur für autorisierte Sender (Kanal-Allowlists/Pairing plus
commands.useAccessGroups). Unautorisierte Sender sehen Directives als normalen Text.
Es gibt auch Inline-Shortcuts (nur allowlistete/autorisierte Sender): /help, /commands, /status, /whoami (/id). Sie laufen sofort, werden vor dem Modell aus der Nachricht entfernt, der Rest geht normal weiter.
Config
{
commands: {
native: "auto",
nativeSkills: "auto",
text: true,
bash: false,
bashForegroundMs: 2000,
config: false,
debug: false,
restart: false,
useAccessGroups: true
}
}-
commands.text(Standardtrue): parst/...in Chat-Nachrichten.- Auf Oberflächen ohne Native-Commands (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) funktionieren Text-Befehle auch bei
false.
- Auf Oberflächen ohne Native-Commands (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) funktionieren Text-Befehle auch bei
-
commands.native(Standard"auto"): registriert Native-Commands.- Auto: an für Discord/Telegram; aus für Slack (bis du Slash-Commands hinzufügst); ignoriert für Provider ohne Native-Support.
channels.discord.commands.native,channels.telegram.commands.nativeoderchannels.slack.commands.nativepro Provider überschreiben (bool oder"auto").falseentfernt zuvor registrierte Commands auf Discord/Telegram beim Start. Slack-Commands werden in der Slack-App verwaltet und nicht automatisch entfernt.
-
commands.nativeSkills(Standard"auto"): registriert Skill-Commands nativ, wo unterstützt.- Auto: an für Discord/Telegram; aus für Slack (Slack braucht einen Slash-Command pro Skill).
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillsoderchannels.slack.commands.nativeSkillspro Provider überschreiben (bool oder"auto").
-
commands.bash(Standardfalse): aktiviert! <cmd>für Host-Shell-Befehle (/bash <cmd>ist Alias; erforderttools.elevated-Allowlists). -
commands.bashForegroundMs(Standard2000): wie lange bash wartet, bevor sie in den Hintergrund wechselt (0= sofort Hintergrund). -
commands.config(Standardfalse): aktiviert/config(liest/schreibtopenclaw.json). -
commands.debug(Standardfalse): aktiviert/debug(nur Laufzeit-Überschreibungen). -
commands.useAccessGroups(Standardtrue): erzwingt Allowlists/Richtlinien für Befehle.
Befehlsliste
Text + Native (wenn aktiviert):
-
/help -
/commands -
/skill <name> [input](Skill per Name ausführen) -
/status(aktuellen Status anzeigen; inkl. Provider-Nutzung/Quota für den aktuellen Modell-Provider, wenn verfügbar) -
/allowlist(Allowlist-Einträge auflisten/hinzufügen/entfernen) -
/approve <id> allow-once|allow-always|deny(Exec-Freigabe-Abfragen auflösen) -
/context [list|detail|json](„Kontext“ erklären;detailzeigt pro Datei + pro Tool + pro Skill + System-Prompt-Größe) -
/whoami(deine Sender-ID anzeigen; Alias:/id) -
/subagents list|stop|log|info|send(Sub-Agenten-Läufe der aktuellen Sitzung inspizieren, stoppen, loggen oder Nachricht senden) -
/config show|get|set|unset(Config auf Disk speichern, nur Owner; erfordertcommands.config: true) -
/debug show|set|unset|reset(Laufzeit-Überschreibungen, nur Owner; erfordertcommands.debug: true) -
/usage off|tokens|full|cost(Nutzungs-Footer pro Antwort oder lokale Kosten-Zusammenfassung) -
/tts off|always|inbound|tagged|status|provider|limit|summary|audio(TTS steuern; siehe /tts)- Discord: Native-Command ist
/voice(Discord reserviert/tts); Text-/tts funktioniert weiter.
- Discord: Native-Command ist
-
/stop -
/restart -
/dock-telegram(Alias:/dock_telegram) (Antworten auf Telegram umstellen) -
/dock-discord(Alias:/dock_discord) (Antworten auf Discord umstellen) -
/dock-slack(Alias:/dock_slack) (Antworten auf Slack umstellen) -
/activation mention|always(nur Gruppen) -
/send on|off|inherit(nur Owner) -
/resetoder/new [model](optionaler Modell-Hinweis; Rest wird durchgereicht) -
/think <off|minimal|low|medium|high|xhigh>(dynamische Wahl je Modell/Provider; Aliase:/thinking,/t) -
/verbose on|full|off(Alias:/v) -
/reasoning on|off|stream(Alias:/reason; bei on separate Nachricht mit PräfixReasoning:;stream= nur Telegram-Entwurf) -
/elevated on|off|ask|full(Alias:/elev;fullüberspringt Exec-Freigaben) -
/exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(/execsenden für aktuelle Anzeige) -
/model <name>(Alias:/models; oder/<alias>ausagents.defaults.models.*.alias) -
/queue <mode>(plus Optionen wiedebounce:2s cap:25 drop:summarize;/queuesenden für aktuelle Einstellungen) -
/bash <command>(nur Host; Alias für! <command>; erfordertcommands.bash: true+tools.elevated-Allowlists)
Nur Text:
/compact [instructions](siehe /concepts/compaction)! <command>(nur Host; nacheinander;!poll+!stopfür lange Jobs)!poll(Ausgabe/Status prüfen; optionalsessionId;/bash pollfunktioniert auch)!stop(laufenden Bash-Job stoppen; optionalsessionId;/bash stopfunktioniert auch)
Hinweise:
-
Befehle akzeptieren optional
:zwischen Befehl und Args (z. B./think: high,/send: on,/help:). -
/new <model>akzeptiert Modell-Alias,provider/modeloder Provider-Name (Fuzzy-Match); bei keinem Match wird der Text als Nachrichtenkörper behandelt. -
Für vollständige Provider-Nutzungsaufschlüsselung:
openclaw status --usage. -
/allowlist add|removeerfordertcommands.config=trueund beachtet Kanal-configWrites. -
/usagesteuert den Nutzungs-Footer pro Antwort;/usage costgibt eine lokale Kosten-Zusammenfassung aus den OpenClaw-Sitzungslogs aus. -
/restartist standardmäßig deaktiviert;commands.restart: truesetzen zum Aktivieren. -
/verboseist für Debugging und Sichtbarkeit gedacht; im Normalbetrieb aus lassen. -
/reasoning(und/verbose) sind in Gruppen riskant: Sie können internes Reasoning oder Tool-Ausgaben zeigen, die du nicht preisgeben willst. Vorzugsweise aus, besonders in Gruppenchats. -
Fast Path: Nur-Befehl-Nachrichten von allowlisteten Sendern werden sofort verarbeitet (Queue + Modell umgangen).
-
Gruppen-Mention-Gating: Nur-Befehl-Nachrichten von allowlisteten Sendern umgehen Mention-Anforderungen.
-
Inline-Shortcuts (nur allowlistete Sender): Bestimmte Befehle funktionieren auch eingebettet in einer normalen Nachricht und werden entfernt, bevor das Modell den Rest sieht.
- Beispiel:
hey /statuslöst eine Status-Antwort aus, der Rest geht normal weiter.
- Beispiel:
-
Aktuell:
/help,/commands,/status,/whoami(/id). -
Unautorisierte Nur-Befehl-Nachrichten werden still ignoriert, Inline-
/...-Tokens als normaler Text behandelt. -
Skill-Commands:
user-invocable-Skills werden als Slash-Commands bereitgestellt. Namen werden aufa-z0-9_bereinigt (max. 32 Zeichen); Kollisionen erhalten numerische Suffixe (z. B._2)./skill <name> [input]führt einen Skill per Name aus (nützlich, wenn Native-Command-Limits pro-Skill-Commands verhindern).- Standardmäßig werden Skill-Commands als normale Anfrage an das Modell weitergeleitet.
- Skills können optional
command-dispatch: tooldeklarieren, um den Befehl direkt an ein Tool zu routen (deterministisch, ohne Modell). - Beispiel:
/prose(OpenProse-Plugin) — siehe OpenProse.
-
Native-Command-Argumente: Discord nutzt Autocomplete für dynamische Optionen (und Button-Menüs bei fehlenden erforderlichen Args). Telegram und Slack zeigen ein Button-Menü, wenn ein Befehl Choices unterstützt und du das Arg weglässt.
Nutzungsoberflächen (was wo erscheint)
- Provider-Nutzung/Quota (z. B. „Claude 80% übrig“) erscheint in
/statusfür den aktuellen Modell-Provider, wenn Nutzungs-Tracking aktiv ist. - Tokens/Kosten pro Antwort steuert
/usage off|tokens|full(an normale Antworten angehängt). /model statusbetrifft Modelle/Auth/Endpunkte, nicht Nutzung.
Modellauswahl (/model)
/model ist als Directive umgesetzt. Beispiele:
/model
/model list
/model 3
/model openai/gpt-5.2
/model opus@anthropic:default
/model statusHinweise:
/modelund/model listzeigen eine kompakte, nummerierte Auswahl (Modell-Familie + verfügbare Provider)./model <#>wählt aus dieser Auswahl (bevorzugt den aktuellen Provider wenn möglich)./model statuszeigt die Detailansicht inkl. konfiguriertem Provider-Endpoint (baseUrl) und API-Modus (api), wenn verfügbar.
Debug-Überschreibungen
/debug setzt nur Laufzeit-Config-Überschreibungen (Speicher, nicht Disk). Nur Owner. Standardmäßig deaktiviert; mit commands.debug: true aktivieren. Beispiele:
/debug show
/debug set messages.responsePrefix="[openclaw]"
/debug set channels.whatsapp.allowFrom=["+1555","+4477"]
/debug unset messages.responsePrefix
/debug resetHinweise:
- Überschreibungen gelten sofort für neue Config-Leser, schreiben aber nicht in
openclaw.json. /debug resetlöscht alle Überschreibungen und stellt die On-Disk-Config wieder her.
Config-Updates
/config schreibt in die On-Disk-Config (openclaw.json). Nur Owner. Standardmäßig deaktiviert; mit commands.config: true aktivieren. Beispiele:
/config show
/config show messages.responsePrefix
/config get messages.responsePrefix
/config set messages.responsePrefix="[openclaw]"
/config unset messages.responsePrefixHinweise:
- Config wird vor dem Schreiben validiert; ungültige Änderungen werden abgelehnt.
/config-Updates überdauern Neustarts.
Oberflächen-Hinweise
-
Text-Commands laufen in der normalen Chat-Sitzung (DMs teilen
main, Gruppen haben eigene Sitzung). -
Native-Commands nutzen isolierte Sitzungen:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(Präfix konfigurierbar viachannels.slack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(zielt überCommandTargetSessionKeyauf die Chat-Sitzung)
- Discord:
-
/stopzielt auf die aktive Chat-Sitzung, um den aktuellen Lauf abzubrechen. -
Slack:
channels.slack.slashCommandwird weiterhin für einen einzelnen/clawd-Style-Befehl unterstützt. Beicommands.nativemusst du einen Slack-Slash-Command pro eingebautem Befehl anlegen (gleiche Namen wie/help). Command-Argument-Menüs für Slack werden als ephemerale Block-Kit-Buttons geliefert.