Slash-commando’s
Commando’s worden afgehandeld door de Gateway. De meeste commando’s moeten worden verzonden als een zelfstandig bericht dat begint met/.
Het bash-chatcommando voor alleen de host gebruikt ! <cmd> (met /bash <cmd> als alias).
Er zijn twee verwante systemen:
- Commando’s: zelfstandige
/...-berichten. - Richtlijnen:
/think,/verbose,/reasoning,/elevated,/exec,/model,/queue.- Richtlijnen worden uit het bericht verwijderd voordat het model het ziet.
- In normale chatberichten (niet alleen richtlijnen) worden ze behandeld als “inline hints” en blijven ze geen sessie-instellingen behouden.
- In berichten die alleen uit richtlijnen bestaan (het bericht bevat uitsluitend richtlijnen) blijven ze behouden in de sessie en volgt een bevestigingsantwoord.
- Richtlijnen worden alleen toegepast voor geautoriseerde afzenders. Richtlijnen worden alleen toegepast voor geautoriseerde afzenders (kanaaltoegestane lijsten/pairing plus
commands.useAccessGroups). Niet-geautoriseerde afzenders zien richtlijnen als gewone tekst.
/help, /commands, /status, /whoami (/id).
Ze worden onmiddellijk uitgevoerd, verwijderd voordat het model het bericht ziet, en de resterende tekst gaat verder via de normale flow.
Configuratie
commands.text(standaardtrue) schakelt het parsen van/...in chatberichten in.- Op oppervlakken zonder native commando’s (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) blijven tekstcommando’s werken, zelfs als je dit instelt op
false.
- Op oppervlakken zonder native commando’s (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) blijven tekstcommando’s werken, zelfs als je dit instelt op
commands.native(standaard"auto") registreert native commando’s.- Auto: aan voor Discord/Telegram; uit voor Slack (totdat je slash-commando’s toevoegt); genegeerd voor providers zonder native ondersteuning.
- Stel
channels.discord.commands.native,channels.telegram.commands.nativeofchannels.slack.commands.nativein om per provider te overschrijven (bool of"auto"). falsewist eerder geregistreerde commando’s op Discord/Telegram bij het opstarten. Slack-commando’s worden beheerd in de Slack-app en worden niet automatisch verwijderd.
commands.nativeSkills(standaard"auto") registreert skill-commando’s native wanneer ondersteund.- Auto: aan voor Discord/Telegram; uit voor Slack (Slack vereist het aanmaken van één slash-commando per skill).
- Stel
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillsofchannels.slack.commands.nativeSkillsin om per provider te overschrijven (bool of"auto").
commands.bash(standaardfalse) schakelt! <cmd>in om host-shellcommando’s uit te voeren (/bash <cmd>is een alias; vereisttools.elevated-toegestane lijsten).commands.bashForegroundMs(standaard2000) bepaalt hoe lang bash wacht voordat wordt overgeschakeld naar de achtergrondmodus (0gaat direct naar de achtergrond).commands.config(standaardfalse) schakelt/configin (leest/schrijftopenclaw.json).commands.debug(standaardfalse) schakelt/debugin (alleen runtime-overschrijvingen).commands.allowFrom(optioneel) stelt een allowlist per provider in voor commando-autorisatie. Wanneer geconfigureerd, is dit de enige autorisatiebron voor commando’s en richtlijnen (channel-allowlists/pairing encommands.useAccessGroupsworden genegeerd). Gebruik"*"als globale standaard; provider-specifieke sleutels overschrijven deze.commands.useAccessGroups(standaardtrue) handhaaft toegestane lijsten/beleidsregels voor commando’s.
Commandolijst
Tekst + native (indien ingeschakeld):/help/commands/skill <name> [input](een skill uitvoeren op naam)/status(toon huidige status; bevat providergebruik/-quotum voor de huidige modelprovider indien beschikbaar)/allowlist(toegestane-lijstvermeldingen weergeven/toevoegen/verwijderen)/approve <id> allow-once|allow-always|deny(uitvoeringsgoedkeuringsprompts oplossen)/context [list|detail|json](leg “context” uit;detailtoont per-bestand + per-tool + per-skill + systeempromptgrootte)/whoami(toon je afzender-id; alias:/id)/subagents list|stop|log|info|send(inspecteer, stop, log of bericht sub-agent-runs voor de huidige sessie)/kill <id|#|all>(breek onmiddellijk één of alle actieve sub-agents voor deze sessie af; geen bevestigingsbericht)/steer <id|#> <message>(stuur een actieve sub-agent onmiddellijk bij: tijdens uitvoering indien mogelijk, anders huidige taak afbreken en herstarten met het stuurbericht)/tell <id|#> <message>(alias voor/steer)/config show|get|set|unset(config opslaan op schijf, alleen eigenaar; vereistcommands.config: true)/debug show|set|unset|reset(runtime-overschrijvingen, alleen eigenaar; vereistcommands.debug: true)/usage off|tokens|full|cost(gebruik-footer per antwoord of lokale kostensamenvatting)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(TTS beheren; zie /tts)- Discord: native commando is
/voice(Discord reserveert/tts); tekst/ttswerkt nog steeds.
- Discord: native commando is
/stop/restart/dock-telegram(alias:/dock_telegram) (schakel antwoorden naar Telegram)/dock-discord(alias:/dock_discord) (schakel antwoorden naar Discord)/dock-slack(alias:/dock_slack) (schakel antwoorden naar Slack)/activation mention|always(alleen groepen)/send on|off|inherit(alleen eigenaar)/resetof/new [model](optionele modelhint; rest wordt doorgegeven)/think <off|minimal|low|medium|high|xhigh>(dynamische keuzes per model/provider; aliassen:/thinking,/t)/verbose on|full|off(alias:/v)/reasoning on|off|stream(alias:/reason; indien aan, verzendt een apart bericht met prefixReasoning:;stream= alleen Telegram-concept)/elevated on|off|ask|full(alias:/elev;fullslaat uitvoeringsgoedkeuringen over)/exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(stuur/execom de huidige te tonen)/model <name>(alias:/models; of/<alias>vanafagents.defaults.models.*.alias)/queue <mode>(plus opties zoalsdebounce:2s cap:25 drop:summarize; stuur/queueom de huidige instellingen te zien)/bash <command>(alleen host; alias voor! <command>; vereistcommands.bash: true+tools.elevated-toegestane lijsten)
/compact [instructions](zie /concepts/compaction)! <command>(alleen host; één tegelijk; gebruik!poll+!stopvoor langlopende taken)!poll(controleer uitvoer/status; accepteert optioneelsessionId;/bash pollwerkt ook)!stop(stop de draaiende bash-taak; accepteert optioneelsessionId;/bash stopwerkt ook)
- Commando’s accepteren een optionele
:tussen het commando en de argumenten (bijv./think: high,/send: on,/help:). /new <model>accepteert een modelalias,provider/modelof een providernaam (fuzzy match); bij geen match wordt de tekst behandeld als de berichtinhoud.- Voor een volledige uitsplitsing van providergebruik, gebruik
openclaw status --usage. /allowlist add|removevereistcommands.config=trueen respecteert kanaal-configWrites./usageregelt de gebruik-footer per antwoord;/usage costprint een lokale kostensamenvatting uit OpenClaw-sessielogs./restartis standaard uitgeschakeld; stelcommands.restart: truein om het in te schakelen./verboseis bedoeld voor debuggen en extra zichtbaarheid; houd het uit bij normaal gebruik./reasoning(en/verbose) zijn riskant in groepsinstellingen: ze kunnen interne redenering of tooluitvoer onthullen die je niet wilde blootstellen. Laat ze bij voorkeur uit, vooral in groepschats.- Snelle route: berichten met alleen commando’s van toegestane afzenders worden direct afgehandeld (omzeilen wachtrij + model).
- Groepsmention-gating: berichten met alleen commando’s van toegestane afzenders omzeilen mention-vereisten.
- Inline snelkoppelingen (alleen toegestane afzenders): bepaalde commando’s werken ook wanneer ze in een normaal bericht zijn ingebed en worden verwijderd voordat het model de resterende tekst ziet.
- Voorbeeld:
hey /statustriggert een statusantwoord en de resterende tekst gaat verder via de normale flow.
- Voorbeeld:
- Momenteel:
/help,/commands,/status,/whoami(/id). - Niet-geautoriseerde berichten met alleen commando’s worden stilzwijgend genegeerd en inline
/...-tokens worden als gewone tekst behandeld. - Skill-commando’s:
user-invocable-skills worden blootgesteld als slash-commando’s. Namen worden opgeschoond naara-z0-9_(max. 32 tekens); botsingen krijgen numerieke suffixen (bijv._2)./skill <name> [input]voert een skill uit op naam (handig wanneer native commandolimieten per-skill-commando’s verhinderen).- Standaard worden skill-commando’s doorgestuurd naar het model als een normaal verzoek.
- Skills kunnen optioneel
command-dispatch: tooldeclareren om het commando direct naar een tool te routeren (deterministisch, zonder model). - Voorbeeld:
/prose(OpenProse-plugin) — zie OpenProse.
- Argumenten voor native commando’s: Discord gebruikt autocomplete voor dynamische opties (en knopmenu’s wanneer je vereiste argumenten weglaat). Telegram en Slack tonen een knopmenu wanneer een commando keuzes ondersteunt en je het argument weglaat.
Gebruik op oppervlakken (wat waar verschijnt)
- Providergebruik/-quotum (voorbeeld: “Claude 80% over”) verschijnt in
/statusvoor de huidige modelprovider wanneer gebruikstracking is ingeschakeld. - Tokens/kosten per antwoord worden geregeld door
/usage off|tokens|full(toegevoegd aan normale antwoorden). /model statusgaat over modellen/auth/eindpunten, niet over gebruik.
Modelselectie (/model)
/model is geïmplementeerd als een richtlijn.
Voorbeelden:
/modelen/model listtonen een compacte, genummerde kiezer (modelfamilie + beschikbare providers)./model <#>selecteert uit die kiezer (en geeft waar mogelijk de voorkeur aan de huidige provider)./model statustoont de gedetailleerde weergave, inclusief het geconfigureerde provider-eindpunt (baseUrl) en API-modus (api) indien beschikbaar.
Debug-overschrijvingen
/debug laat je alleen-runtime config-overschrijvingen instellen (geheugen, niet schijf). Alleen eigenaar. Standaard uitgeschakeld; inschakelen met commands.debug: true.
Voorbeelden:
- Overschrijvingen worden direct toegepast op nieuwe config-lezingen, maar schrijven niet naar
openclaw.json. - Gebruik
/debug resetom alle overschrijvingen te wissen en terug te keren naar de config op schijf.
Config-updates
/config schrijft naar je config op schijf (openclaw.json). Alleen eigenaar. Standaard uitgeschakeld; inschakelen met commands.config: true.
Voorbeelden:
- De config wordt gevalideerd vóór het schrijven; ongeldige wijzigingen worden geweigerd.
/config-updates blijven behouden na herstarts.
Oppervlaktenotities
- Tekstcommando’s draaien in de normale chatsessie (DM’s delen
main, groepen hebben hun eigen sessie). - Native commando’s gebruiken geïsoleerde sessies:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(prefix configureerbaar viachannels.slack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(richt zich op de chatsessie viaCommandTargetSessionKey)
- Discord:
/stopricht zich op de actieve chatsessie zodat het de huidige run kan afbreken.- Slack:
channels.slack.slashCommandwordt nog steeds ondersteund voor één enkel/openclaw-achtig commando. Als jecommands.nativeinschakelt, moet je één Slack slash-commando per ingebouwd commando aanmaken (dezelfde namen als/help). Command-argumentmenu’s voor Slack worden geleverd als ephemeral Block Kit-knoppen.