Comandi slash
I comandi sono gestiti dal Gateway. La maggior parte dei comandi deve essere inviata come messaggio autonomo che inizia con/.
Il comando chat bash solo host usa ! <cmd> (con /bash <cmd> come alias).
Esistono due sistemi correlati:
- Comandi: messaggi
/...autonomi. - Direttive:
/think,/fast,/verbose,/reasoning,/elevated,/exec,/model,/queue.- Le direttive vengono rimosse dal messaggio prima che il modello lo veda.
- Nei normali messaggi chat (non composti solo da direttive), vengono trattate come “suggerimenti inline” e non rendono persistenti le impostazioni della sessione.
- Nei messaggi composti solo da direttive (il messaggio contiene solo direttive), rendono persistenti le impostazioni nella sessione e rispondono con una conferma.
- Le direttive vengono applicate solo per i mittenti autorizzati. Se
commands.allowFromè impostato, è l’unica allowlist usata; altrimenti l’autorizzazione deriva dalle allowlist/associazioni del canale piùcommands.useAccessGroups. I mittenti non autorizzati vedono le direttive trattate come testo normale.
/help, /commands, /status, /whoami (/id).
Vengono eseguite immediatamente, vengono rimosse prima che il modello veda il messaggio e il testo rimanente continua nel flusso normale.
Configurazione
commands.text(predefinitotrue) abilita il parsing di/...nei messaggi chat.- Sulle superfici senza comandi nativi (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams), i comandi testuali continuano a funzionare anche se imposti questo valore su
false.
- Sulle superfici senza comandi nativi (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams), i comandi testuali continuano a funzionare anche se imposti questo valore su
commands.native(predefinito"auto") registra i comandi nativi.- Auto: attivo per Discord/Telegram; disattivo per Slack (finché non aggiungi i comandi slash); ignorato per i provider senza supporto nativo.
- Imposta
channels.discord.commands.native,channels.telegram.commands.nativeochannels.slack.commands.nativeper sovrascrivere per provider (bool o"auto"). falsecancella i comandi registrati in precedenza su Discord/Telegram all’avvio. I comandi Slack sono gestiti nell’app Slack e non vengono rimossi automaticamente.
commands.nativeSkills(predefinito"auto") registra in modo nativo i comandi skill quando supportato.- Auto: attivo per Discord/Telegram; disattivo per Slack (Slack richiede la creazione di un comando slash per ogni skill).
- Imposta
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillsochannels.slack.commands.nativeSkillsper sovrascrivere per provider (bool o"auto").
commands.bash(predefinitofalse) abilita! <cmd>per eseguire comandi shell host (/bash <cmd>è un alias; richiede le allowlisttools.elevated).commands.bashForegroundMs(predefinito2000) controlla quanto tempo bash aspetta prima di passare alla modalità background (0passa subito in background).commands.config(predefinitofalse) abilita/config(legge/scriveopenclaw.json).commands.mcp(predefinitofalse) abilita/mcp(legge/scrive la configurazione MCP gestita da OpenClaw sottomcp.servers).commands.plugins(predefinitofalse) abilita/plugins(scoperta/stato dei plugin più controlli di installazione + abilitazione/disabilitazione).commands.debug(predefinitofalse) abilita/debug(sovrascritture solo runtime).commands.allowFrom(opzionale) imposta una allowlist per provider per l’autorizzazione dei comandi. Quando configurata, è l’unica fonte di autorizzazione per comandi e direttive (le allowlist/associazioni del canale ecommands.useAccessGroupsvengono ignorati). Usa"*"come valore predefinito globale; le chiavi specifiche del provider lo sovrascrivono.commands.useAccessGroups(predefinitotrue) applica allowlist/policy ai comandi quandocommands.allowFromnon è impostato.
Elenco dei comandi
Testo + nativi (quando abilitati):/help/commands/tools [compact|verbose](mostra cosa può usare l’agente corrente in questo momento;verboseaggiunge descrizioni)/skill <name> [input](esegue una skill per nome)/status(mostra lo stato corrente; include utilizzo/quota del provider corrente del modello quando disponibile)/tasks(elenca le attività in background per la sessione corrente; mostra dettagli delle attività attive e recenti con conteggi di fallback locali all’agente)/allowlist(elenca/aggiunge/rimuove voci della allowlist)/approve <id> <decision>(risolve le richieste di approvazione exec; usa il messaggio di approvazione in sospeso per le decisioni disponibili)/context [list|detail|json](spiega il “contesto”;detailmostra la dimensione per file + per strumento + per skill + del prompt di sistema)/btw <question>(pone una domanda laterale effimera sulla sessione corrente senza modificare il contesto futuro della sessione; vedi /tools/btw)/export-session [path](alias:/export) (esporta la sessione corrente in HTML con il prompt di sistema completo)/whoami(mostra il tuo sender id; alias:/id)/session idle <duration|off>(gestisce il defocus automatico per inattività per le associazioni focus del thread)/session max-age <duration|off>(gestisce il defocus automatico per età massima rigida per le associazioni focus del thread)/subagents list|kill|log|info|send|steer|spawn(ispeziona, controlla o avvia esecuzioni di sottoagenti per la sessione corrente)/acp spawn|cancel|steer|close|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|sessions(ispeziona e controlla le sessioni runtime ACP)/agents(elenca gli agenti associati al thread per questa sessione)/focus <target>(Discord: associa questo thread, o un nuovo thread, a una destinazione sessione/sottoagente)/unfocus(Discord: rimuove l’associazione del thread corrente)/kill <id|#|all>(interrompe immediatamente uno o tutti i sottoagenti in esecuzione per questa sessione; nessun messaggio di conferma)/steer <id|#> <message>(indirizza subito un sottoagente in esecuzione: durante l’esecuzione quando possibile, altrimenti interrompe il lavoro corrente e riavvia sul messaggio di steering)/tell <id|#> <message>(alias di/steer)/config show|get|set|unset(rende persistente la configurazione su disco, solo proprietario; richiedecommands.config: true)/mcp show|get|set|unset(gestisce la configurazione del server MCP OpenClaw, solo proprietario; richiedecommands.mcp: true)/plugins list|show|get|install|enable|disable(ispeziona i plugin rilevati, installa nuovi plugin e attiva/disattiva l’abilitazione; scritture solo proprietario; richiedecommands.plugins: true)/pluginè un alias di/plugins./plugin install <spec>accetta le stesse specifiche plugin diopenclaw plugins install: percorso/archive locale, pacchetto npm oclawhub:<pkg>.- Le scritture di abilitazione/disabilitazione rispondono comunque con un suggerimento di riavvio. Su un gateway in foreground osservato, OpenClaw può eseguire automaticamente quel riavvio subito dopo la scrittura.
/debug show|set|unset|reset(sovrascritture runtime, solo proprietario; richiedecommands.debug: true)/usage off|tokens|full|cost(piè di pagina per risposta dell’utilizzo o riepilogo locale dei costi)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(controlla TTS; vedi /tts)- Discord: il comando nativo è
/voice(Discord riserva/tts); il testo/ttscontinua a funzionare.
- Discord: il comando nativo è
/stop/restart/dock-telegram(alias:/dock_telegram) (sposta le risposte su Telegram)/dock-discord(alias:/dock_discord) (sposta le risposte su Discord)/dock-slack(alias:/dock_slack) (sposta le risposte su Slack)/activation mention|always(solo gruppi)/send on|off|inherit(solo proprietario)/reseto/new [model](suggerimento modello opzionale; il resto viene inoltrato)/think <off|minimal|low|medium|high|xhigh>(scelte dinamiche per modello/provider; alias:/thinking,/t)/fast status|on|off(se ometti l’argomento mostra lo stato effettivo corrente della modalità fast)/verbose on|full|off(alias:/v)/reasoning on|off|stream(alias:/reason; quando è attivo, invia un messaggio separato con prefissoReasoning:;stream= solo bozza Telegram)/elevated on|off|ask|full(alias:/elev;fullsalta le approvazioni exec)/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(invia/execper vedere lo stato corrente)/model <name>(alias:/models; oppure/<alias>daagents.defaults.models.*.alias)/queue <mode>(più opzioni comedebounce:2s cap:25 drop:summarize; invia/queueper vedere le impostazioni correnti)/bash <command>(solo host; alias di! <command>; richiedecommands.bash: true+ allowlisttools.elevated)/dreaming [off|core|rem|deep|status|help](attiva/disattiva la modalità dreaming o mostra lo stato; vedi Dreaming)
/compact [instructions](vedi /concepts/compaction)! <command>(solo host; uno alla volta; usa!poll+!stopper lavori lunghi)!poll(controlla output / stato; accettasessionIdopzionale; funziona anche/bash poll)!stop(ferma il job bash in esecuzione; accettasessionIdopzionale; funziona anche/bash stop)
- I comandi accettano facoltativamente
:tra comando e argomenti (es./think: high,/send: on,/help:). /new <model>accetta un alias modello,provider/modelo un nome provider (corrispondenza fuzzy); se non c’è corrispondenza, il testo viene trattato come corpo del messaggio.- Per il dettaglio completo dell’utilizzo del provider, usa
openclaw status --usage. /allowlist add|removerichiedecommands.config=truee rispettaconfigWritesdel canale.- Nei canali multi-account, anche
/allowlist --account <id>mirato alla configurazione e/config set channels.<provider>.accounts.<id>...rispettanoconfigWritesdell’account di destinazione. /usagecontrolla il piè di pagina dell’utilizzo per risposta;/usage coststampa un riepilogo locale dei costi dai log di sessione OpenClaw./restartè abilitato per default; impostacommands.restart: falseper disabilitarlo.- Comando nativo solo Discord:
/vc join|leave|statuscontrolla i canali vocali (richiedechannels.discord.voicee comandi nativi; non disponibile come testo). - I comandi Discord di associazione ai thread (
/focus,/unfocus,/agents,/session idle,/session max-age) richiedono che le associazioni ai thread effettive siano abilitate (session.threadBindings.enablede/ochannels.discord.threadBindings.enabled). - Riferimento dei comandi ACP e comportamento del runtime: Agenti ACP.
/verboseè pensato per debugging e visibilità aggiuntiva; tienilo disattivato nell’uso normale./fast on|offrende persistente una sovrascrittura della sessione. Usa l’opzioneinheritnella UI Sessions per cancellarla e tornare ai valori predefiniti della configurazione./fastè specifico del provider: OpenAI/OpenAI Codex lo mappano aservice_tier=prioritysugli endpoint Responses nativi, mentre le richieste Anthropic pubbliche dirette, incluso il traffico autenticato OAuth inviato aapi.anthropic.com, lo mappano aservice_tier=autoostandard_only. Vedi OpenAI e Anthropic.- I riepiloghi dei fallimenti degli strumenti vengono comunque mostrati quando rilevanti, ma il testo dettagliato dei fallimenti è incluso solo quando
/verboseèonofull. /reasoning(e/verbose) sono rischiosi nelle impostazioni di gruppo: potrebbero rivelare reasoning interno o output degli strumenti che non intendevi esporre. Preferisci lasciarli disattivati, soprattutto nelle chat di gruppo./modelrende subito persistente il nuovo modello della sessione.- Se l’agente è inattivo, la successiva esecuzione lo userà immediatamente.
- Se un’esecuzione è già attiva, OpenClaw contrassegna uno switch live come in sospeso e riavvia nel nuovo modello solo in un punto pulito di retry.
- Se l’attività degli strumenti o l’output della risposta sono già iniziati, lo switch in sospeso può restare in coda fino a una successiva opportunità di retry o al turno utente seguente.
- Percorso rapido: i messaggi composti solo da comandi da mittenti in allowlist vengono gestiti immediatamente (bypass della coda + modello).
- Blocco per menzioni nei gruppi: i messaggi composti solo da comandi da mittenti in allowlist bypassano i requisiti di menzione.
- Scorciatoie inline (solo mittenti in allowlist): alcuni comandi funzionano anche quando incorporati in un normale messaggio e vengono rimossi prima che il modello veda il testo rimanente.
- Esempio:
hey /statusattiva una risposta di stato e il testo rimanente continua nel flusso normale.
- Esempio:
- Attualmente:
/help,/commands,/status,/whoami(/id). - I messaggi composti solo da comandi non autorizzati vengono ignorati in silenzio e i token inline
/...vengono trattati come testo normale. - Comandi skill: le skill
user-invocablesono esposte come comandi slash. I nomi vengono sanificati ina-z0-9_(massimo 32 caratteri); le collisioni ricevono suffissi numerici (es._2)./skill <name> [input]esegue una skill per nome (utile quando i limiti dei comandi nativi impediscono comandi per singola skill).- Per default, i comandi skill vengono inoltrati al modello come una richiesta normale.
- Le skill possono opzionalmente dichiarare
command-dispatch: toolper instradare il comando direttamente a uno strumento (deterministico, senza modello). - Esempio:
/prose(plugin OpenProse) — vedi OpenProse.
- Argomenti dei comandi nativi: Discord usa l’autocomplete per le opzioni dinamiche (e menu a pulsanti quando ometti argomenti obbligatori). Telegram e Slack mostrano un menu a pulsanti quando un comando supporta scelte e ometti l’argomento.
/tools
/tools risponde a una domanda di runtime, non di configurazione: cosa può usare questo agente in questo momento in
questa conversazione.
- Il valore predefinito di
/toolsè compatto e ottimizzato per una scansione rapida. /tools verboseaggiunge brevi descrizioni.- Le superfici con comandi nativi che supportano argomenti espongono lo stesso selettore di modalità
compact|verbose. - I risultati hanno ambito di sessione, quindi cambiare agente, canale, thread, autorizzazione del mittente o modello può modificarne l’output.
/toolsinclude gli strumenti effettivamente raggiungibili a runtime, compresi strumenti core, strumenti plugin connessi e strumenti di proprietà del canale.
/tools come un catalogo statico.
Superfici di utilizzo (cosa viene mostrato dove)
- Utilizzo/quota del provider (esempio: “Claude 80% left”) compare in
/statusper il provider del modello corrente quando il tracciamento dell’utilizzo è abilitato. OpenClaw normalizza le finestre dei provider a% left; per MiniMax, i campi percentuali solo-rimanenti vengono invertiti prima della visualizzazione e le rispostemodel_remainspreferiscono la voce del modello chat più un’etichetta del piano con tag del modello. - Righe token/cache in
/statuspossono ricorrere all’ultima voce di utilizzo della trascrizione quando lo snapshot live della sessione è scarso. I valori live esistenti e diversi da zero restano comunque prioritari, e il fallback della trascrizione può anche recuperare l’etichetta del modello runtime attivo più un totale orientato al prompt più grande quando i totali memorizzati mancano o sono inferiori. - Token/costo per risposta è controllato da
/usage off|tokens|full(aggiunto alle normali risposte). /model statusriguarda modelli/autenticazione/endpoint, non l’utilizzo.
Selezione del modello (/model)
/model è implementato come direttiva.
Esempi:
/modele/model listmostrano un selettore compatto numerato (famiglia di modelli + provider disponibili).- Su Discord,
/modele/modelsaprono un selettore interattivo con menu a discesa per provider e modello più un passaggio Submit. /model <#>seleziona da quel selettore (e preferisce il provider corrente quando possibile)./model statusmostra la vista dettagliata, incluso l’endpoint configurato del provider (baseUrl) e la modalità API (api) quando disponibili.
Sovrascritture di debug
/debug ti permette di impostare sovrascritture di configurazione solo runtime (in memoria, non su disco). Solo proprietario. Disabilitato per default; abilitalo con commands.debug: true.
Esempi:
- Le sovrascritture si applicano immediatamente alle nuove letture di configurazione, ma non scrivono in
openclaw.json. - Usa
/debug resetper cancellare tutte le sovrascritture e tornare alla configurazione su disco.
Aggiornamenti della configurazione
/config scrive nella configurazione su disco (openclaw.json). Solo proprietario. Disabilitato per default; abilitalo con commands.config: true.
Esempi:
- La configurazione viene validata prima della scrittura; le modifiche non valide vengono rifiutate.
- Gli aggiornamenti
/configpersistono tra i riavvii.
Aggiornamenti MCP
/mcp scrive le definizioni del server MCP gestite da OpenClaw sotto mcp.servers. Solo proprietario. Disabilitato per default; abilitalo con commands.mcp: true.
Esempi:
/mcpmemorizza la configurazione nella configurazione OpenClaw, non nelle impostazioni del progetto di proprietà di Pi.- Gli adapter runtime decidono quali trasporti siano effettivamente eseguibili.
Aggiornamenti dei plugin
/plugins permette agli operatori di ispezionare i plugin rilevati e attivarne/disattivarne l’abilitazione nella configurazione. I flussi in sola lettura possono usare /plugin come alias. Disabilitato per default; abilitalo con commands.plugins: true.
Esempi:
/plugins liste/plugins showusano la reale rilevazione dei plugin rispetto al workspace corrente più la configurazione su disco./plugins enable|disableaggiorna solo la configurazione del plugin; non installa né disinstalla i plugin.- Dopo modifiche di abilitazione/disabilitazione, riavvia il gateway per applicarle.
Note sulle superfici
- Comandi testuali vengono eseguiti nella normale sessione chat (i DM condividono
main, i gruppi hanno la propria sessione). - Comandi nativi usano sessioni isolate:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(prefisso configurabile tramitechannels.slack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(punta alla sessione chat tramiteCommandTargetSessionKey)
- Discord:
/stoppunta alla sessione chat attiva in modo da poter interrompere l’esecuzione corrente.- Slack:
channels.slack.slashCommandè ancora supportato per un singolo comando in stile/openclaw. Se abiliticommands.native, devi creare un comando slash Slack per ogni comando integrato (stessi nomi di/help). I menu argomenti dei comandi per Slack vengono forniti come pulsanti effimeri Block Kit.- Eccezione nativa Slack: registra
/agentstatus(non/status) perché Slack riserva/status. Il testo/statuscontinua a funzionare nei messaggi Slack.
- Eccezione nativa Slack: registra
Domande laterali BTW
/btw è una rapida domanda laterale sulla sessione corrente.
A differenza della normale chat:
- usa la sessione corrente come contesto di sfondo,
- viene eseguita come chiamata one-shot separata senza strumenti,
- non modifica il contesto futuro della sessione,
- non viene scritta nella cronologia della trascrizione,
- viene consegnata come risultato laterale live invece che come normale messaggio dell’assistente.
/btw utile quando vuoi un chiarimento temporaneo mentre il compito
principale continua.
Esempio: