Voer shell-opdrachten uit in de workspace.Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
exec is een muterend shell-oppervlak: opdrachten kunnen bestanden maken, bewerken of verwijderen waar het geselecteerde host- of sandbox-bestandssysteem dat toestaat. Het uitschakelen van OpenClaw-bestandssysteemtools zoals write, edit of apply_patch maakt exec niet alleen-lezen.
Ondersteunt voorgrond- en achtergronduitvoering via process. Als process niet is toegestaan, wordt exec synchroon uitgevoerd en negeert het yieldMs/background.
Achtergrondsessies zijn per agent gescoped; process ziet alleen sessies van dezelfde agent.
Parameters
Uit te voeren shell-opdracht.
Werkmap voor de opdracht.
Sleutel/waarde-omgevingsoverschrijvingen die bovenop de geërfde omgeving worden samengevoegd.
Zet de opdracht automatisch op de achtergrond na deze vertraging (ms).
Zet 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 time-out van het exec-proces moet worden uitgevoerd.Voer uit in een pseudo-terminal wanneer beschikbaar. Gebruik dit voor TTY-only CLI’s, coding agents en terminal-UI’s.
Waar uit te voeren.
auto wordt opgelost naar sandbox wanneer een sandbox-runtime actief is en anders naar gateway.Genegeerd voor normale tool-aanroepen.
gateway- / node-beveiliging wordt beheerd door
tools.exec.security en ~/.openclaw/exec-approvals.json; verhoogde modus kan
security=full alleen afdwingen wanneer de operator expliciet verhoogde toegang verleent.Gedrag van goedkeuringsprompts voor
gateway- / node-uitvoering.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.hoststaat standaard opauto: sandbox wanneer sandbox-runtime actief is voor de sessie, anders Gateway.hostaccepteert alleenauto,sandbox,gatewayofnode. Het is geen hostnaamselector; hostnaamachtige waarden worden geweigerd voordat de opdracht wordt uitgevoerd.autois de standaardrouteringsstrategie, geen wildcard. Per aanroep ishost=nodetoegestaan vanuitauto; per aanroep ishost=gatewayalleen 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.gateway/node-goedkeuringen worden 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 shell-uitvoeringspad voor Nodes; de legacynodes.run-wrapper is verwijderd.timeoutis van toepassing op voorgrond-, achtergrond-,yieldMs-, Gateway-, sandbox- en Node-system.run-uitvoering. Als het wordt weggelaten, gebruikt OpenClawtools.exec.timeoutSec; expliciettimeout: 0schakelt de time-out van het exec-proces uit voor die aanroep.- Op niet-Windows-hosts gebruikt exec
SHELLwanneer ingesteld; alsSHELLfishis, geeft het de voorkeur aanbash(ofsh) uitPATHom scripts die niet compatibel zijn met fish te vermijden, en valt daarna terug opSHELLals geen van beide bestaat. - Op Windows-hosts geeft exec de voorkeur aan detectie van PowerShell 7 (
pwsh) (Program Files, ProgramW6432, daarna PATH), en valt daarna terug op Windows PowerShell 5.1. - Hostuitvoering (
gateway/node) weigertenv.PATHen loader-overschrijvingen (LD_*/DYLD_*) om binary hijacking of geïnjecteerde code te voorkomen. - OpenClaw stelt
OPENCLAW_SHELL=execin de omgeving van de gestarte opdracht in (inclusief PTY- en sandbox-uitvoering), zodat shell-/profielregels exec-toolcontext kunnen detecteren. openclaw channels loginwordt vanuitexecgeblokkeerd omdat het een interactieve kanaal-authenticatiestroom is; voer het uit in een terminal op de Gateway-host, of gebruik de kanaaleigen login-tool vanuit chat wanneer die bestaat.- Belangrijk: sandboxing staat standaard uit. Als sandboxing uit staat, wordt impliciet
host=autoopgelost naargateway. Expliciethost=sandboxfaalt nog steeds gesloten in plaats van stilzwijgend op de Gateway-host te draaien. Schakel sandboxing in of gebruikhost=gatewaymet goedkeuringen. - Script-preflightcontroles (voor veelvoorkomende Python/Node-shellsyntaxisfouten) 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 u deze eenmaal en vertrouwt u op automatische
completion wake wanneer dit is ingeschakeld en de opdracht uitvoer produceert of faalt.
Gebruik
processvoor logs, status, invoer of interventie; emuleer geen planning met sleep-lussen, time-outlussen of herhaald pollen. - Gebruik cron in plaats van
exec-sleep-/vertragingspatronen voor werk dat later of volgens een schema moet plaatsvinden.
Configuratie
tools.exec.notifyOnExit(standaard: true): wanneer true, plaatsen exec-sessies op de achtergrond een systeemgebeurtenis in de wachtrij en vragen ze een Heartbeat aan bij afsluiten.tools.exec.approvalRunningNoticeMs(standaard: 10000): geef één “running”-melding af wanneer een exec met goedkeuringspoort langer draait dan dit (0 schakelt uit).tools.exec.timeoutSec(standaard: 1800): standaard exec-time-out per opdracht in seconden. Per-aanroeptimeoutoverschrijft dit; per-aanroeptimeout: 0schakelt de time-out van het exec-proces 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 de standaard voor Gateway + Node. Als u goedkeuringen/allowlist-gedrag wilt, verscherp 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 opdrachtverhulling of script-preflight-weigeringslaag. tools.exec.node(standaard: niet ingesteld)tools.exec.strictInlineEval(standaard: false): wanneer true, vereisen inline interpreter-eval-vormen zoalspython -c,node -e,ruby -e,perl -e,php -r,lua -eenosascript -ealtijd expliciete goedkeuring.allow-alwayskan nog steeds onschuldige interpreter-/scriptaanroepen blijvend toestaan, maar inline-eval-vormen vragen nog steeds elke keer om bevestiging.tools.exec.commandHighlighting(standaard: false): wanneer true, kunnen goedkeuringsprompts door de parser afgeleide opdrachtspans in de opdrachttekst markeren. Stel wereldwijd of per agent in optrueom markering van opdrachttekst in te schakelen zonder het exec-goedkeuringsbeleid te wijzigen.tools.exec.pathPrepend: lijst met mappen om voor exec-runs aanPATHvooraf toe te voegen (alleen Gateway + sandbox).tools.exec.safeBins: veilige binaries met alleen stdin die zonder expliciete allowlist-vermeldingen 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 dePATHvan uw login-shell samen in de exec-omgeving.env.PATH-overschrijvingen worden geweigerd 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 voegtenv.PATHvooraf toe na het sourcen van het profiel via een interne omgevingsvariabele (geen shell-interpolatie);tools.exec.pathPrependis hier ook van toepassing.host=node: alleen niet-geblokkeerde omgevingsoverschrijvingen die u doorgeeft, worden naar de Node verzonden.env.PATH-overschrijvingen worden geweigerd voor hostuitvoering en genegeerd door Node-hosts. Als u extra PATH-items op een Node nodig hebt, configureer dan de omgeving van de Node-hostservice (systemd/launchd) of installeer tools op standaardlocaties.
Sessieoverschrijvingen (/exec)
Gebruik /exec om per sessie standaardwaarden in te stellen voor host, security, ask en node.
Verzend /exec zonder argumenten om de huidige waarden te tonen.
Voorbeeld:
Autorisatiemodel
/exec wordt alleen gehonoreerd voor geautoriseerde afzenders (kanaal-allowlists/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-request-goedkeuring vereisen voordatexec op de Gateway- of Node-host draait.
Zie Exec-goedkeuringen voor het beleid, de allowlist en de UI-stroom.
Wanneer goedkeuringen vereist zijn, retourneert de exec-tool onmiddellijk met
status: "approval-pending" en een goedkeurings-id. Na goedkeuring (of weigering / time-out)
zendt de Gateway systeemgebeurtenissen uit (Exec finished / Exec denied). Als de opdracht nog
actief is na tools.exec.approvalRunningNoticeMs, wordt één Exec running-melding uitgegeven.
Op kanalen 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.
Allowlist + veilige bins
Handmatige allowlist-afdwinging matcht opgeloste binarypad-globs en kale opdrachtnaam- 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 is, worden shell-opdrachten alleen automatisch toegestaan als elk pipeline-
segment op de allowlist staat of een veilige bin is. Chaining (;, &&, ||) en omleidingen
worden in allowlist-modus geweigerd, tenzij elk top-level segment voldoet aan de
allowlist (inclusief veilige bins). Omleidingen blijven niet ondersteund.
Duurzaam allow-always-vertrouwen omzeilt die regel niet: een chained opdracht vereist nog steeds dat elk
top-level segment matcht.
autoAllowSkills is een apart gemakspad in exec-goedkeuringen. Het is niet hetzelfde als
handmatige pad-allowlist-vermeldingen. Houd autoAllowSkills uitgeschakeld voor strikt expliciet vertrouwen.
Gebruik de twee bedieningselementen voor verschillende taken:
tools.exec.safeBins: kleine, alleen-stdin streamfilters.tools.exec.safeBinTrustedDirs: expliciete extra vertrouwde mappen voor safe-bin-paden naar uitvoerbare bestanden.tools.exec.safeBinProfiles: expliciet argv-beleid voor aangepaste safe bins.- allowlist: expliciet vertrouwen voor paden naar uitvoerbare bestanden.
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 laat 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, weer toevoegt aan safeBins.
Als je interpreters expliciet op de allowlist zet, schakel dan tools.exec.strictInlineEval in zodat inline code-eval-vormen nog steeds een nieuwe goedkeuring vereisen.
Zie Exec-goedkeuringen en Safe 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.
Deze is standaard ingeschakeld voor OpenAI- en OpenAI Codex-modellen. Gebruik configuratie alleen
wanneer je deze wilt uitschakelen of beperken tot specifieke modellen:
- Alleen beschikbaar voor OpenAI-/OpenAI Codex-modellen.
- Toolbeleid blijft van toepassing;
allow: ["write"]staatapply_patchimpliciet toe. deny: ["write"]weigertapply_patchniet; weigerapply_patchexpliciet of gebruikdeny: ["group:fs"]wanneer patch-writes ook moeten worden geblokkeerd.- Configuratie staat 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-map schrijft/verwijdert.
Gerelateerd
- Exec-goedkeuringen — goedkeuringspoorten voor shellopdrachten
- Sandboxing — opdrachten uitvoeren in sandboxomgevingen
- Achtergrondproces — langlopende exec- en process-tool
- Beveiliging — toolbeleid en verhoogde toegang