Voer shellopdrachten uit in de werkruimte. Ondersteunt uitvoering op de voorgrond en achtergrond viaDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
process.
Als process niet is toegestaan, voert exec synchroon uit en negeert het yieldMs/background.
Achtergrondsessies zijn per agent scoped; process ziet alleen sessies van dezelfde agent.
Parameters
Uit te voeren shellopdracht.
Werkmap voor de opdracht.
Key/value-omgevingsoverschrijvingen samengevoegd boven op de geërfde omgeving.
Plaats de opdracht automatisch op de achtergrond na deze vertraging (ms).
Plaats de opdracht onmiddellijk op de achtergrond in plaats van te wachten op
yieldMs.Overschrijf de geconfigureerde exec-time-out voor deze aanroep. Stel
timeout: 0 alleen in wanneer de opdracht zonder exec-procestime-out moet worden uitgevoerd.Voer uit in een pseudo-terminal wanneer beschikbaar. Gebruik dit voor CLI’s die alleen met een TTY werken, coding agents en terminal-UI’s.
Waar moet worden uitgevoerd.
auto wordt opgelost naar sandbox wanneer een sandbox-runtime actief is en anders naar gateway.Handhavingsmodus voor uitvoering via
gateway / node.Gedrag van goedkeuringsprompt voor uitvoering via
gateway / node.Node-id/-naam wanneer
host=node.Vraag verhoogde modus aan — ontsnap uit de sandbox naar het geconfigureerde hostpad.
security=full wordt alleen afgedwongen wanneer verhoogd wordt opgelost naar full.hostis standaardauto: sandbox wanneer sandbox-runtime actief is voor de sessie, anders gateway.hostaccepteert alleenauto,sandbox,gatewayofnode. Het is geen hostnaamselector; waarden die op hostnamen lijken worden afgewezen voordat de opdracht wordt uitgevoerd.autois de standaard routeringsstrategie, geen jokerteken. Per-aanroephost=nodeis toegestaan vanuitauto; per-aanroephost=gatewayis alleen toegestaan wanneer er geen sandbox-runtime actief is.- Zonder extra configuratie werkt
host=autonog steeds gewoon: geen sandbox betekent dat het wordt opgelost naargateway; een live sandbox betekent dat het in de sandbox blijft. elevatedontsnapt uit de sandbox naar het geconfigureerde hostpad: standaardgateway, ofnodewanneertools.exec.host=node(of de sessiestandaardhost=nodeis). Het is alleen beschikbaar wanneer verhoogde toegang is ingeschakeld voor de huidige sessie/provider.- Goedkeuringen voor
gateway/nodeworden beheerd door~/.openclaw/exec-approvals.json. nodevereist een gekoppelde node (companion-app of headless node-host).- Als er meerdere nodes beschikbaar zijn, stel dan
exec.nodeoftools.exec.nodein om er een te selecteren. exec host=nodeis het enige pad voor shelluitvoering voor nodes; de oudenodes.run-wrapper is verwijderd.timeoutis van toepassing op uitvoering op de voorgrond, achtergrond,yieldMs, gateway, sandbox en nodesystem.run. Als deze wordt weggelaten, gebruikt OpenClawtools.exec.timeoutSec; explicietetimeout: 0schakelt de exec-procestime-out voor die aanroep uit.- Op niet-Windows-hosts gebruikt exec
SHELLwanneer ingesteld; alsSHELLfishis, geeft het de voorkeur aanbash(ofsh) uitPATHom scripts te vermijden die niet compatibel zijn met fish, en valt daarna terug opSHELLals geen van beide bestaat. - Op Windows-hosts geeft exec de voorkeur aan ontdekking van PowerShell 7 (
pwsh) (Program Files, ProgramW6432, daarna PATH), en valt daarna terug op Windows PowerShell 5.1. - Hostuitvoering (
gateway/node) wijstenv.PATHen loader-overschrijvingen (LD_*/DYLD_*) af om het kapen van binaries of geïnjecteerde code te voorkomen. - OpenClaw stelt
OPENCLAW_SHELL=execin de opdrachtomgeving van de gestartte opdracht in (inclusief PTY- en sandboxuitvoering), zodat shell-/profielregels exec-toolcontext kunnen detecteren. openclaw channels loginwordt geblokkeerd vanuitexecomdat het een interactieve channel-auth-flow is; voer het uit in een terminal op de gateway-host, of gebruik de channel-native login-tool vanuit chat wanneer die bestaat.- Belangrijk: sandboxing staat standaard uit. Als sandboxing uitstaat, wordt impliciet
host=autoopgelost naargateway. Expliciethost=sandboxfaalt nog steeds gesloten in plaats van stilzwijgend op de gateway-host uit te voeren. Schakel sandboxing in of gebruikhost=gatewaymet goedkeuringen. - Script-preflightcontroles (voor veelvoorkomende Python-/Node-shellsyntaxfouten) inspecteren alleen bestanden binnen de
effectieve
workdir-grens. Als een scriptpad buitenworkdirwordt opgelost, wordt preflight voor dat bestand overgeslagen. - Voor langlopende werkzaamheden die nu starten: start ze eenmaal en vertrouw op automatische
voltooiingswake wanneer die is ingeschakeld en de opdracht uitvoer produceert of faalt.
Gebruik
processvoor logs, status, invoer of interventie; emuleer geen planning met slaaplussen, time-outlussen of herhaalde polling. - Voor werk dat later of volgens een schema moet plaatsvinden, gebruik cron in plaats van
exec-slaap-/vertragingspatronen.
Configuratie
tools.exec.notifyOnExit(standaard: true): wanneer true, plaatsen op de achtergrond gezette exec-sessies een systeemgebeurtenis in de wachtrij en vragen ze bij afsluiten een Heartbeat aan.tools.exec.approvalRunningNoticeMs(standaard: 10000): emit één “running”-melding wanneer een exec met verplichte goedkeuring langer draait dan dit (0 schakelt uit).tools.exec.timeoutSec(standaard: 1800): standaard exec-time-out per opdracht in seconden. Per-aanroeptimeoutoverschrijft deze; per-aanroeptimeout: 0schakelt de exec-procestime-out uit.tools.exec.host(standaard:auto; wordt opgelost naarsandboxwanneer sandbox-runtime actief is, andersgateway)tools.exec.security(standaard:denyvoor sandbox,fullvoor gateway + node wanneer niet ingesteld)tools.exec.ask(standaard:off)- Host-exec zonder goedkeuring is standaard voor gateway + node. Als u goedkeurings-/toestemmingslijstgedrag wilt, verstrak dan zowel
tools.exec.*als de host~/.openclaw/exec-approvals.json; zie Exec-goedkeuringen. - YOLO komt voort uit de standaardwaarden van het hostbeleid (
security=full,ask=off), niet uithost=auto. Als u gateway- of node-routering wilt afdwingen, stel dantools.exec.hostin of gebruik/exec host=.... - In de modus
security=fullplusask=offvolgt host-exec direct het geconfigureerde beleid; er is geen extra heuristische prefilter voor opdrachtverduistering of script-preflightafwijzingslaag. tools.exec.node(standaard: niet ingesteld)tools.exec.strictInlineEval(standaard: false): wanneer true, vereisen inline interpreter-evalvormen zoalspython -c,node -e,ruby -e,perl -e,php -r,lua -eenosascript -ealtijd expliciete goedkeuring.allow-alwayskan nog steeds goedaardige interpreter-/scriptaanroepen blijven toestaan, maar inline-evalvormen vragen nog steeds elke keer om bevestiging.tools.exec.pathPrepend: lijst met mappen die vóórPATHmoeten worden geplaatst voor exec-runs (alleen gateway + sandbox).tools.exec.safeBins: veilige binaries met alleen stdin die zonder expliciete toestemmingslijstvermeldingen kunnen worden uitgevoerd. Zie Veilige bins voor gedragsdetails.tools.exec.safeBinTrustedDirs: aanvullende expliciete mappen die worden vertrouwd voorsafeBins-padcontroles.PATH-items worden nooit automatisch vertrouwd. Ingebouwde standaardwaarden zijn/binen/usr/bin.tools.exec.safeBinProfiles: optioneel aangepast argv-beleid per veilige bin (minPositional,maxPositional,allowedValueFlags,deniedFlags).
PATH-afhandeling
host=gateway: voegt uw login-shell-PATHsamen in de exec-omgeving.env.PATH-overschrijvingen worden afgewezen voor hostuitvoering. De daemon zelf draait nog steeds met een minimalePATH:- macOS:
/opt/homebrew/bin,/usr/local/bin,/usr/bin,/bin - Linux:
/usr/local/bin,/usr/bin,/bin
- macOS:
host=sandbox: voertsh -lc(login-shell) uit binnen de container, dus/etc/profilekanPATHresetten. OpenClaw plaatstenv.PATHvóór na het sourcen van het profiel via een interne env-var (geen shellinterpolatie);tools.exec.pathPrependis hier ook van toepassing.host=node: alleen niet-geblokkeerde env-overschrijvingen die u doorgeeft, worden naar de node verzonden.env.PATH-overschrijvingen worden afgewezen voor hostuitvoering en genegeerd door node-hosts. Als u extra PATH-items op een node nodig hebt, configureer dan de serviceomgeving van de node-host (systemd/launchd) of installeer tools op standaardlocaties.
Sessieoverschrijvingen (/exec)
Gebruik /exec om per-sessie standaardwaarden voor host, security, ask en node in te stellen.
Verzend /exec zonder argumenten om de huidige waarden te tonen.
Voorbeeld:
Autorisatiemodel
/exec wordt alleen gehonoreerd voor geautoriseerde afzenders (channel-toestemmingslijsten/koppeling plus commands.useAccessGroups).
Het werkt alleen sessiestatus bij en schrijft geen configuratie. Om exec hard uit te schakelen, weigert u het via toolbeleid
(tools.deny: ["exec"] of per agent). Hostgoedkeuringen blijven van toepassing tenzij u expliciet
security=full en ask=off instelt.
Exec-goedkeuringen (companion-app / node-host)
Gesandboxte agents kunnen per-requestgoedkeuring vereisen voordatexec op de gateway- of node-host wordt uitgevoerd.
Zie Exec-goedkeuringen voor het beleid, de toestemmingslijst en de UI-flow.
Wanneer goedkeuringen vereist zijn, retourneert de exec-tool onmiddellijk met
status: "approval-pending" en een goedkeurings-id. Zodra goedgekeurd (of geweigerd / verlopen),
emit de Gateway systeemgebeurtenissen (Exec finished / Exec denied). Als de opdracht nog steeds
draait na tools.exec.approvalRunningNoticeMs, wordt één Exec running-melding geëmiteerd.
Op channels met native goedkeuringskaarten/-knoppen moet de agent eerst op die
native UI vertrouwen en alleen een handmatige /approve-opdracht opnemen wanneer het toolresultaat
expliciet zegt dat chatgoedkeuringen niet beschikbaar zijn of dat handmatige goedkeuring het
enige pad is.
Toestemmingslijst + veilige bins
Handmatige handhaving van de toestemmingslijst matcht opgeloste binary-padglobs en kale commandonaam- globs. Kale namen matchen alleen opdrachten die via PATH worden aangeroepen, dusrg kan matchen met
/opt/homebrew/bin/rg wanneer de opdracht rg is, maar niet met ./rg of /tmp/rg.
Wanneer security=allowlist, worden shellopdrachten alleen automatisch toegestaan als elk pipeline-
segment op de toestemmingslijst staat of een veilige bin is. Koppeling (;, &&, ||) en omleidingen
worden in toestemmingslijstmodus afgewezen tenzij elk top-level segment voldoet aan de
toestemmingslijst (inclusief veilige bins). Omleidingen blijven niet ondersteund.
Duurzaam allow-always-vertrouwen omzeilt die regel niet: een gekoppelde opdracht vereist nog steeds dat elk
top-level segment matcht.
autoAllowSkills is een afzonderlijk gemakspad in exec-goedkeuringen. Het is niet hetzelfde als
handmatige padvermeldingen in de toestemmingslijst. Houd autoAllowSkills uitgeschakeld voor strikt expliciet vertrouwen.
Gebruik de twee controles voor verschillende taken:
tools.exec.safeBins: kleine, alleen-stdin streamfilters.tools.exec.safeBinTrustedDirs: expliciete extra vertrouwde mappen voor uitvoerbare paden van veilige bins.tools.exec.safeBinProfiles: expliciet argv-beleid voor aangepaste veilige bins.- toestemmingslijst: expliciet vertrouwen voor uitvoerbare paden.
safeBins niet als een generieke allowlist, en voeg geen interpreter-/runtime-binaries toe (bijvoorbeeld python3, node, ruby, bash). Als je die nodig hebt, gebruik dan expliciete allowlist-vermeldingen en houd goedkeuringsprompts ingeschakeld.
openclaw security audit waarschuwt wanneer interpreter-/runtime-vermeldingen in safeBins expliciete profielen missen, en openclaw doctor --fix kan ontbrekende aangepaste safeBinProfiles-vermeldingen scaffolden.
openclaw security audit en openclaw doctor waarschuwen ook wanneer je expliciet bins met breed gedrag, zoals jq, opnieuw aan safeBins toevoegt.
Als je interpreters expliciet op de allowlist zet, schakel dan tools.exec.strictInlineEval in zodat inline code-evaluatievormen nog steeds nieuwe goedkeuring vereisen.
Zie Exec-goedkeuringen en Veilige bins versus allowlist voor volledige beleidsdetails en voorbeelden.
Voorbeelden
Voorgrond:apply_patch
apply_patch is een subtool van exec voor gestructureerde bewerkingen in meerdere bestanden.
Het is standaard ingeschakeld voor OpenAI- en OpenAI Codex-modellen. Gebruik configuratie alleen
wanneer je het wilt uitschakelen of beperken tot specifieke modellen:
- Alleen beschikbaar voor OpenAI-/OpenAI Codex-modellen.
- Toolbeleid blijft van toepassing;
allow: ["write"]staat implicietapply_patchtoe. - Configuratie bevindt zich onder
tools.exec.applyPatch. tools.exec.applyPatch.enabledis standaardtrue; stel dit in opfalseom de tool voor OpenAI-modellen uit te schakelen.tools.exec.applyPatch.workspaceOnlyis standaardtrue(binnen de workspace). Stel dit alleen in opfalseals je bewust wilt datapply_patchbuiten de workspace-directory schrijft/verwijdert.
Gerelateerd
- Exec-goedkeuringen — goedkeuringspoorten voor shellopdrachten
- Sandboxing — opdrachten uitvoeren in sandboxomgevingen
- Achtergrondproces — langlopende exec- en process-tool
- Beveiliging — toolbeleid en verhoogde toegang