Tools
Goedkeuringen voor uitvoeren
Exec-goedkeuringen zijn de beveiliging van de begeleidende app / nodehost waarmee een
gesandboxte agent opdrachten op een echte host kan uitvoeren (gateway of node). Opdrachten
worden alleen uitgevoerd wanneer beleid + toestemmingslijst + (optionele) gebruikersgoedkeuring allemaal overeenstemmen.
Goedkeuringen komen boven op het toolbeleid en de verhoogde toegangscontrole (verhoogde
full omzeilt ze).
Zie
Toestemmingsmodi voor een modusgericht overzicht van deny, allowlist, ask, auto, full,
Codex Guardian-toewijzing en ACPX-harnastoestemmingen.
Waar dit van toepassing is
Exec-goedkeuringen worden lokaal afgedwongen op de uitvoeringshost:
- Gateway-host ->
openclaw-proces op de gatewaymachine. - Nodehost -> node-runner (begeleidende macOS-app of headless nodehost).
Vertrouwensmodel
- Door de Gateway geauthenticeerde aanroepers zijn vertrouwde operators voor die Gateway.
- Gekoppelde nodes breiden die vertrouwde operatorbevoegdheid uit naar de nodehost.
- Goedkeuringen verminderen het risico op onbedoelde uitvoering, maar zijn geen authenticatiegrens per gebruiker of alleen-lezenbeleid voor het bestandssysteem.
- Na goedkeuring kan een opdracht bestanden wijzigen volgens de geselecteerde host- of sandboxbestandssysteemtoestemmingen.
- Goedgekeurde uitvoeringen op de nodehost leggen de canonieke uitvoeringscontext vast: cwd, exacte argv, omgevingsbinding indien aanwezig en een vastgezet pad naar het uitvoerbare bestand indien van toepassing.
- Voor shellscripts en directe aanroepen van interpreter-/runtimebestanden probeert OpenClaw ook één concreet lokaal bestandsoperand vast te leggen. Als dat bestand na goedkeuring maar vóór uitvoering verandert, wordt de uitvoering geweigerd in plaats van gewijzigde inhoud uit te voeren.
- Bestandsbinding gebeurt naar beste vermogen en vormt geen volledig model van elk laadpad van interpreters/runtimes. Als niet precies één concreet lokaal bestand kan worden geïdentificeerd, weigert OpenClaw een door goedkeuring gedekte uitvoering aan te maken in plaats van volledige dekking te veinzen.
macOS-splitsing
- De nodehostservice stuurt
system.runvia lokale IPC door naar de macOS-app. - De macOS-app dwingt goedkeuringen af en voert de opdracht uit in de UI-context.
Het effectieve beleid inspecteren
| Opdracht | Wat deze toont |
|---|---|
openclaw approvals get / --gateway / --node <id|name|ip> |
Aangevraagd beleid, bronnen van hostbeleid en het effectieve resultaat. |
openclaw exec-policy show |
Samengevoegde weergave van de lokale machine. |
openclaw exec-policy set / preset |
Synchroniseert het lokaal aangevraagde beleid in één stap met het lokale hostgoedkeuringsbestand. |
Volledige CLI-referentie (vlaggen, JSON-uitvoer, toevoegen aan/verwijderen uit de toestemmingslijst): CLI voor goedkeuringen.
Wanneer een lokaal bereik host=node aanvraagt, rapporteert exec-policy show dat
bereik tijdens runtime als door de node beheerd, in plaats van het lokale goedkeuringsbestand
als de bron van waarheid te behandelen.
Als de UI van de begeleidende app niet beschikbaar is, wordt elk verzoek dat
normaal om goedkeuring zou vragen, afgehandeld door de vraagterugval (standaard: deny).
Instellingen en opslag
Goedkeuringen bevinden zich in een lokaal JSON-bestand op de uitvoeringshost. Wanneer
OPENCLAW_STATE_DIR is ingesteld, volgt het bestand die statusmap;
anders gebruikt het de standaardstatusmap van OpenClaw:
$OPENCLAW_STATE_DIR/exec-approvals.json# anders~/.openclaw/exec-approvals.jsonDe standaardgoedkeuringssocket volgt dezelfde hoofdmap:
$OPENCLAW_STATE_DIR/exec-approvals.sock, of
~/.openclaw/exec-approvals.sock wanneer de variabele niet is ingesteld.
Statusmappen zijn onafhankelijke vertrouwensbereiken. Wanneer OPENCLAW_STATE_DIR
naar een andere locatie verwijst, importeert of archiveert OpenClaw
~/.openclaw/exec-approvals.json nooit; configureer goedkeuringen afzonderlijk voor de
aangepaste statusmap. Doctor importeert ook de verouderde
plugin-binding-approvals.json alleen wanneer deze bij de actieve statusmap
hoort.
Voorbeeldschema:
{ "version": 1, "socket": { "path": "~/.openclaw/exec-approvals.sock", "token": "base64url-token" }, "defaults": { "security": "deny", "ask": "on-miss", "askFallback": "deny", "autoAllowSkills": false }, "agents": { "main": { "security": "allowlist", "ask": "on-miss", "askFallback": "deny", "autoAllowSkills": true, "allowlist": [ { "id": "B0C8C0B3-2C2D-4F8A-9A3C-5A4B3C2D1E0F", "pattern": "~/Projects/**/bin/rg", "argPattern": "sha256:argv:...", "source": "allow-always", "lastUsedAt": 1737150000000, "lastResolvedPath": "/Users/user/Projects/.../bin/rg" }, { "pattern": "~/Projects/**/bin/git" } ] } }}Beleidsinstellingen
tools.exec.mode
tools.exec.mode is het aanbevolen genormaliseerde beleidsoppervlak voor host-exec:
| Waarde | Gedrag |
|---|---|
deny |
Host-exec blokkeren. |
allowlist |
Alleen opdrachten op de toestemmingslijst uitvoeren zonder te vragen. |
ask |
Toestemmingslijstbeleid gebruiken en bij ontbrekende overeenkomsten om goedkeuring vragen. |
auto |
Toestemmingslijstbeleid gebruiken, deterministische overeenkomsten direct uitvoeren en ontbrekende goedkeuringen via de native automatische reviewer van OpenClaw sturen voordat wordt teruggevallen op een menselijke goedkeuringsroute. |
full |
Host-exec zonder goedkeuringsvragen uitvoeren. |
Doctor migreert het buiten gebruik gestelde, opgeslagen paar tools.exec.security / tools.exec.ask
naar tools.exec.mode.
exec.security
security"deny" | "allowlist" | "full"deny- alle host-exec-verzoeken blokkeren.allowlist- alleen opdrachten op de toestemmingslijst toestaan.full- alles toestaan (gelijkwaardig aan verhoogd).
De standaardwaarde is full voor gateway-/nodehosts; een sandbox-host gebruikt in plaats daarvan standaard
deny.
exec.ask
ask"off" | "on-miss" | "always"Geconfigureerd vraagbeleid voor host-exec. Bepaalt het basisgedrag voor
goedkeuringsvragen vanuit tools.exec.ask en de standaardwaarden voor hostgoedkeuringen.
De standaardwaarde is off. De toolparameter ask per aanroep (zie
Exec-tool) kan die basis alleen aanscherpen, en
modelaanroepen vanuit kanalen negeren deze wanneer de effectieve hostvraaginstelling off is.
off- nooit vragen.on-miss- alleen vragen wanneer de toestemmingslijst niet overeenkomt.always- bij elke opdracht vragen. Duurzaam vertrouwen viaallow-alwaysonderdrukt vragen niet wanneer de effectieve vraagmodusalwaysis.
askFallback
askFallback"deny" | "allowlist" | "full"Afhandeling wanneer een vraag vereist is maar geen UI bereikbaar is (of de
vraag verloopt). Standaard deny wanneer weggelaten.
deny- blokkeren.allowlist- alleen toestaan als de toestemmingslijst overeenkomt.full- toestaan.
tools.exec.strictInlineEval
strictInlineEvalbooleanWanneer true, worden vormen voor inline code-evaluatie behandeld als uitsluitend na goedkeuring, zelfs als het
interpreterprogramma zelf op de toestemmingslijst staat. Verdediging in de diepte voor
interpreterladers die niet eenduidig aan één stabiel bestandsoperand kunnen worden gekoppeld.
Voorbeelden die door de strikte modus worden onderschept: python -c, node -e/--eval/-p,
ruby -e, perl -e/-E, php -r, lua -e, osascript -e (ook inlinevormen van awk,
sed, make, find -exec en xargs).
In de strikte modus vereisen deze opdrachten een reviewer of expliciete goedkeuring. Met
tools.exec.mode: "auto" kan de reviewer één uitvoering met laag risico toestaan wanneer
de opdracht een afdwingbaar plan heeft; anders vraagt OpenClaw een mens om goedkeuring.
Codex app-server-opdrachtgoedkeuringen die bij de reviewerterugval terechtkomen, vragen een
mens om goedkeuring omdat hun goedkeuringsverzoeken geen afdwingbaar, bepaald
uitvoerbaar bestand beschikbaar stellen.
allow-always slaat geen nieuwe vermeldingen in de toestemmingslijst op voor inline-evaluatieopdrachten.
tools.exec.commandHighlighting
commandHighlightingbooleandefault: falseAlleen voor presentatie: indien ingeschakeld, kan OpenClaw door de parser afgeleide
opdrachtbereiken toevoegen, zodat webgoedkeuringsvragen opdrachttokens kunnen markeren. Dit
wijzigt niet security, ask, overeenkomsten met de toestemmingslijst, strikt inline-evaluatiegedrag,
het doorsturen van goedkeuringen of de uitvoering van opdrachten.
Stel dit globaal in onder tools.exec.commandHighlighting of per agent onder
agents.entries.*.tools.exec.commandHighlighting.
YOLO-modus (zonder goedkeuring)
Om host-exec zonder goedkeuringsvragen uit te voeren, open je beide beleidslagen:
het aangevraagde exec-beleid in de OpenClaw-configuratie (tools.exec.*) en
het hostlokale goedkeuringsbeleid in het goedkeuringsbestand van de uitvoeringshost.
Een weggelaten askFallback gebruikt standaard deny. Stel host-askFallback expliciet in op full
wanneer een goedkeuringsvraag zonder UI moet terugvallen op toestaan.
| Laag | YOLO-instelling |
|---|---|
tools.exec.mode |
full op gateway/node |
Host-askFallback |
full |
CLI-gebaseerde providers die hun eigen niet-interactieve machtigingsmodus aanbieden,
kunnen dit beleid volgen. Claude CLI voegt
--permission-mode bypassPermissions toe wanneer het effectieve exec-beleid
van OpenClaw YOLO is. Voor door OpenClaw beheerde live Claude-sessies is het
effectieve exec-beleid van OpenClaw bepalend ten opzichte van de eigen machtigingsmodus van Claude:
YOLO normaliseert live starts naar --permission-mode bypassPermissions, en
een beperkend effectief exec-beleid normaliseert live starts naar
--permission-mode default, zelfs als onbewerkte argumenten voor de Claude-backend een andere
modus opgeven.
Als je een conservatievere configuratie wilt, stel je het exec-beleid van OpenClaw weer strenger in op
allowlist / on-miss of deny.
Permanente configuratie 'nooit vragen' voor de Gateway-host
Stel het gevraagde configuratiebeleid in
openclaw config set tools.exec.host gatewayopenclaw config set tools.exec.mode fullopenclaw gateway restartStem het bestand met hostgoedkeuringen af
openclaw approvals set --stdin <<'EOF'{ version: 1, defaults: { security: "full", ask: "off", askFallback: "full" }}EOFLokale snelkoppeling
openclaw exec-policy preset yoloWerkt zowel de lokale tools.exec.host/security/ask als de standaardwaarden in het lokale
goedkeuringsbestand bij (inclusief askFallback: "full"). Dit is bewust
uitsluitend lokaal. Gebruik openclaw approvals set --gateway of openclaw approvals set --node <id|name|ip> om
goedkeuringen voor een Gateway-host of Node-host op afstand te wijzigen.
Andere ingebouwde voorinstellingen: cautious (host=gateway, security=allowlist,
ask=on-miss, askFallback=deny) en deny-all (host=gateway,
security=deny, ask=off, askFallback=deny). Pas ze op dezelfde manier toe:
openclaw exec-policy preset cautious.
Gebruik openclaw exec-policy set --host <auto|sandbox|gateway|node> --security <deny|allowlist|full> --ask <off|on-miss|always> --ask-fallback <deny|allowlist|full> met een willekeurige subset van die vlaggen
om afzonderlijke velden in te stellen in plaats van een volledige voorinstelling.
Node-host
Pas in plaats daarvan hetzelfde goedkeuringsbestand toe op de Node:
openclaw approvals set --node <id|name|ip> --stdin <<'EOF'{ version: 1, defaults: { security: "full", ask: "off", askFallback: "full" }}EOFSnelkoppeling voor alleen de sessie
/exec security=full ask=offwijzigt alleen de huidige sessie./elevated fullis een noodsnelkoppeling die exec-goedkeuringen alleen overslaat wanneer zowel het gevraagde beleid als het goedkeuringsbestand van de host worden herleid totsecurity: "full"enask: "off". Een strenger hostbestand, zoalsask: "always", blijft om goedkeuring vragen.
Als het goedkeuringsbestand van de host strenger blijft dan de configuratie, blijft het strengere hostbeleid bepalend.
Toestaanlijst (per agent)
Toestaanlijsten gelden per agent. Als er meerdere agents bestaan, wissel je in de macOS-app van agent om te bepalen welke je bewerkt. Patronen zijn glob-overeenkomsten.
Patronen kunnen globs voor opgeloste paden naar binaire bestanden of globs met alleen opdrachtnamen zijn.
Losse namen komen alleen overeen met opdrachten die via PATH worden aangeroepen, zodat rg kan overeenkomen met
/opt/homebrew/bin/rg wanneer de opdracht rg is, maar niet met ./rg of
/tmp/rg. Gebruik een padglob om één specifieke locatie van een binair bestand te vertrouwen.
Verouderde agents.default-vermeldingen worden tijdens het laden naar agents.main gemigreerd.
Bij shellketens zoals echo ok && pwd moet elk segment op het hoogste niveau nog steeds
aan de regels van de toestaanlijst voldoen.
Voorbeelden:
rg~/Projects/**/bin/peekaboo~/.local/bin/*/opt/homebrew/bin/rg
Argumenten beperken met argPattern
Voeg argPattern toe wanneer een vermelding in de toestaanlijst moet overeenkomen met een binair bestand en een
specifieke argumentstructuur. OpenClaw gebruikt op elke host de semantiek van reguliere
ECMAScript-expressies (JavaScript) en evalueert de expressie aan de hand van
de geparseerde opdrachtargumenten, exclusief het uitvoerbare token (argv[0]).
Bij handmatig gemaakte vermeldingen worden argumenten met één spatie samengevoegd; veranker
het patroon daarom wanneer je een exacte overeenkomst nodig hebt.
{ "version": 1, "agents": { "main": { "allowlist": [ { "pattern": "python3", "argPattern": "^safe\\.py$" } ] } }}Die vermelding staat python3 safe.py toe; python3 other.py komt niet overeen met de toestaanlijst.
Als er ook een vermelding met alleen een pad voor hetzelfde binaire bestand aanwezig is, kunnen niet-overeenkomende
argumenten nog steeds terugvallen op die vermelding met alleen een pad. Laat de vermelding met alleen een pad
weg wanneer het doel is om het binaire bestand tot de opgegeven argumenten te beperken.
Vermeldingen die door goedkeuringsflows worden opgeslagen, gebruiken een interne scheidingsindeling voor exacte
argv-overeenkomsten. Gebruik bij voorkeur de gebruikersinterface of goedkeuringsflow om die vermeldingen opnieuw te genereren
in plaats van de gecodeerde waarde handmatig te bewerken. Als OpenClaw argv voor
een opdrachtsegment niet kan parseren, komen vermeldingen met argPattern niet overeen.
Gegenereerde allow-always-vermeldingen zijn aan argv gebonden. Nieuwe gegenereerde vermeldingen bevatten
argPattern; oudere gegenereerde vermeldingen met alleen een pad worden genegeerd en vereisen een nieuwe
goedkeuring. Laat voor een handmatige regel met alleen een pad zowel source als argPattern weg.
Elke vermelding in de toestaanlijst ondersteunt:
| Veld | Betekenis |
|---|---|
pattern |
Glob voor het opgeloste pad naar het binaire bestand of glob met alleen de opdrachtnaam |
argPattern |
ECMAScript-regex voor argv of gegenereerde hash voor exacte argv; weglaten betekent alleen pad |
id |
Stabiele ondoorzichtige ID; wordt bij afwezigheid als UUID gegenereerd |
source |
Bron van de gegenereerde vermelding, zoals allow-always; weglaten voor handmatige vermeldingen |
commandText |
Verouderde invoer als platte tekst; wordt tijdens het laden verwijderd |
lastUsedAt |
Tijdstempel van het laatste gebruik |
lastUsedCommand |
Laatste opdracht die overeenkwam; weggelaten bij gegenereerde vermeldingen met gehashte argv |
lastResolvedPath |
Laatst opgeloste pad naar het binaire bestand |
CLI's van Skills automatisch toestaan
Wanneer CLI's van Skills automatisch toestaan (autoAllowSkills) is ingeschakeld, worden uitvoerbare bestanden
waarnaar bekende Skills verwijzen, op Nodes als toegestaan beschouwd (macOS-Node
of headless Node-host). Hiervoor wordt skills.bins via de Gateway-RPC gebruikt om
de lijst met binaire bestanden van Skills op te halen. Schakel dit uit als je strikt handmatige
toestaanlijsten wilt.
Veilige binaire bestanden en doorsturen van goedkeuringen
Zie voor veilige binaire bestanden (het snelle pad met uitsluitend stdin), details over het binden van interpreters en het doorsturen van goedkeuringsvragen naar Slack/Discord/Telegram (of het uitvoeren ervan als native goedkeuringsclients) Exec-goedkeuringen - geavanceerd.
Bewerken in de Control UI
Gebruik de kaart Control UI -> Nodes -> Exec approvals om standaardwaarden, overschrijvingen per agent en toestaanlijsten te bewerken. Kies een bereik (Defaults of een agent), pas het beleid aan, voeg patronen aan de toestaanlijst toe of verwijder ze en kies vervolgens Save. De gebruikersinterface toont per patroon metagegevens over het laatste gebruik, zodat je de lijst overzichtelijk kunt houden.
De doelselector kiest Gateway (lokale goedkeuringen) of een Node.
Nodes moeten system.execApprovals.get/set aankondigen (macOS-app of headless
Node-host). Als een Node nog geen exec-goedkeuringen aankondigt, bewerk je het
lokale goedkeuringsbestand rechtstreeks.
Sommige Node-hosts, waaronder de Windows-companion, gebruiken een andere indeling voor het
goedkeuringsbeleid. De Control UI toont dit systeemeigen hostbeleid als alleen-lezen. Gebruik de
companion-app of openclaw approvals set --node <id|name|ip> met de systeemeigen
beleidsstructuur om het te bewerken; zie CLI voor goedkeuringen.
CLI: openclaw approvals ondersteunt het bewerken van de Gateway of een Node — zie
CLI voor goedkeuringen.
Goedkeuringsflow
Wanneer goedkeuring vereist is, zendt de Gateway
exec.approval.requested uit naar beheerclients. De Control UI en macOS-app
handelen dit af via exec.approval.resolve, waarna de Gateway het
goedgekeurde verzoek doorstuurt naar de Node-host.
Voor host=node bevatten goedkeuringsverzoeken een canonieke systemRunPlan-payload.
De Gateway gebruikt dat plan als de gezaghebbende context voor opdracht/cwd/sessie
wanneer goedgekeurde system.run-verzoeken worden doorgestuurd:
- Het exec-pad van de Node bereidt vooraf één canoniek plan voor.
- De goedkeuringsrecord slaat dat plan en de bijbehorende bindingsmetagegevens op.
- Na goedkeuring hergebruikt de uiteindelijke doorgestuurde
system.run-aanroep het opgeslagen plan in plaats van latere wijzigingen van de aanroeper te vertrouwen. - Als de aanroeper
command,rawCommand,cwd,agentIdofsessionKeywijzigt nadat het goedkeuringsverzoek is gemaakt, wijst de Gateway de doorgestuurde uitvoering af wegens een afwijking van de goedkeuring.
Systeemgebeurtenissen en afwijzingen
De exec-levenscyclus plaatst een Exec finished-systeembericht in de sessie van de agent
nadat de Node voltooiing meldt. OpenClaw kan ook een melding over de voortgang verzenden zodra een goedkeuring is verleend, nadat
tools.exec.approvalRunningNoticeMs is verstreken (standaard 10000; 0 schakelt
dit uit). Afgewezen exec-goedkeuringen beëindigen de hostopdracht definitief: de opdracht
wordt niet uitgevoerd.
- Bij asynchrone goedkeuringen voor de hoofdagent met een oorspronkelijke sessie plaatst OpenClaw de afwijzing als interne vervolgmelding terug in die sessie, zodat de agent niet langer op de asynchrone opdracht wacht en herstel wegens een ontbrekend resultaat wordt voorkomen.
- Als er geen sessie is of de sessie niet kan worden hervat, kan OpenClaw nog steeds een beknopte afwijzing melden aan de beheerder of via de rechtstreekse chatroute.
- Afwijzingen voor subagent- en Cron-sessies worden niet teruggeplaatst in die sessie.
Exec-goedkeuringen voor de Gateway-host zenden dezelfde gebeurtenis voor voltooiing van de levenscyclus uit.
Exec-opdrachten waarvoor goedkeuring vereist is, hergebruiken de goedkeurings-ID om het openstaande
verzoek aan het voltooiings- of afwijzingsbericht te koppelen (Exec finished (gateway id=...) / Exec denied (gateway id=...)).
Gevolgen
fullis krachtig; geef waar mogelijk de voorkeur aan toestaanlijsten.askhoudt je op de hoogte en maakt snelle goedkeuringen toch mogelijk.- Toestaanlijsten per agent voorkomen dat goedkeuringen van de ene agent naar andere agents doorlekken.
- Goedkeuringen zijn alleen van toepassing op exec-verzoeken voor de host van geautoriseerde afzenders. Niet-geautoriseerde afzenders kunnen geen
/execuitvoeren. /exec security=fullis een hulpmiddel op sessieniveau voor geautoriseerde beheerders en slaat goedkeuringen bewust over. Stel de beveiliging voor goedkeuringen in opdenyof weiger de toolexecvia het toolbeleid om exec op de host volledig te blokkeren.
Gerelateerd
Veilige binaire bestanden, interpreterkoppeling en doorsturen van goedkeuringen naar de chat.
Tool voor het uitvoeren van shell-opdrachten.
Noodroute die ook goedkeuringen overslaat.
Sandboxmodi en toegang tot de werkruimte.
Beveiligingsmodel en versterking.
Wanneer je welk besturingselement gebruikt.
Door Skills ondersteund automatisch toestaan.