Tools
Exec рдЯреВрд▓
рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдореЗрдВ рд╢реЗрд▓ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВред exec рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирдХрд╛рд░реА рд╢реЗрд▓ рд╕рддрд╣ рд╣реИ: рдХрдорд╛рдВрдб рдЙрди рд╕рднреА рдЬрдЧрд╣реЛрдВ рдкрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛, рд╕рдВрдкрд╛рджрд┐рдд рдпрд╛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЪрдпрдирд┐рдд рд╣реЛрд╕реНрдЯ рдпрд╛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред write, edit, рдпрд╛ apply_patch рдЬреИрд╕реЗ OpenClaw рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЯреВрд▓ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ exec рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред
process рдХреЗ рдЬрд╝рд░рд┐рдП рдЕрдЧреНрд░рднреВрдорд┐ + рдкреГрд╖реНрдарднреВрдорд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ process рдЕрд╕реНрд╡реАрдХреГрдд рд╣реИ, рддреЛ exec рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ yieldMs/background рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред
рдкреГрд╖реНрдарднреВрдорд┐ рд╕рддреНрд░ рдкреНрд░рддрд┐ рдПрдЬреЗрдВрдЯ рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ; process рдХреЗрд╡рд▓ рдЙрд╕реА рдПрдЬреЗрдВрдЯ рдХреЗ рд╕рддреНрд░ рджреЗрдЦрддрд╛ рд╣реИред
рдкреИрд░рд╛рдореАрдЯрд░
commandstringrequiredрдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд▓ рдХрдорд╛рдВрдбред
workdirstringdefault: cwdрдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╢реАрд▓ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАред
envobjectрдЗрдирд╣реЗрд░рд┐рдЯ рдХрд┐рдП рдЧрдП рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдКрдкрд░ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдХреА/рд╡реИрд▓реНрдпреВ рд╡рд╛рддрд╛рд╡рд░рдг рдУрд╡рд░рд░рд╛рдЗрдбред
yieldMsnumberdefault: 10000рдЗрд╕ рд╡рд┐рд▓рдВрдм (ms) рдХреЗ рдмрд╛рдж рдХрдорд╛рдВрдб рдХреЛ рдЕрдкрдиреЗ-рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рднреЗрдЬреЗрдВред
backgroundbooleandefault: falseyieldMs рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрдорд╛рдВрдб рдХреЛ рддреБрд░рдВрдд рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рднреЗрдЬреЗрдВред
timeoutnumberdefault: tools.exec.timeoutSecрдЗрд╕ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП exec рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВред timeout: 0 рдХреЗрд╡рд▓ рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрдм рдХрдорд╛рдВрдб рдХреЛ exec рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
ptybooleandefault: falseрдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рдЫрджреНрдо-рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЪрд▓рд╛рдПрдВред TTY-рдХреЗрд╡рд▓ CLIs, рдХреЛрдбрд┐рдВрдЧ рдПрдЬреЗрдВрдЯреЛрдВ, рдФрд░ рдЯрд░реНрдорд┐рдирд▓ UIs рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
host'auto' | 'sandbox' | 'gateway' | 'node'default: autoрдХрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИред auto рддрдм sandbox рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ рдЬрдм рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд░рдирдЯрд╛рдЗрдо рд╕рдХреНрд░рд┐рдп рд╣реЛ, рдЕрдиреНрдпрдерд╛ gateway рдореЗрдВред
security'deny' | 'allowlist' | 'full'рд╕рд╛рдорд╛рдиреНрдп рдЯреВрд▓ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред gateway / node рд╕реБрд░рдХреНрд╖рд╛
tools.exec.security рдФрд░ рд╣реЛрд╕реНрдЯ рдЕрдиреБрдореЛрджрди рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреА рд╣реИ; рдЙрдиреНрдирдд рдореЛрдб
security=full рдХреЗрд╡рд▓ рддрдм рдмрд╛рдзреНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдСрдкрд░реЗрдЯрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдиреНрдирдд рдПрдХреНрд╕реЗрд╕ рджреЗрддрд╛ рд╣реИред
ask'off' | 'on-miss' | 'always'рдмреЗрд╕рд▓рд╛рдЗрди рдкреВрдЫрдиреЗ рдХрд╛ рдореЛрдб tools.exec.ask рдФрд░ рд╣реЛрд╕реНрдЯ рдЕрдиреБрдореЛрджрдиреЛрдВ рд╕реЗ рдЖрддрд╛ рд╣реИред
рдЪреИрдирд▓-рдореВрд▓ рдореЙрдбрд▓ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐-рдХреЙрд▓ ask рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм
рдкреНрд░рднрд╛рд╡реА рд╣реЛрд╕реНрдЯ ask off рд╣реЛ; рдЕрдиреНрдпрдерд╛ рдпрд╣ рдХреЗрд╡рд▓ рдЕрдзрд┐рдХ рд╕рдЦреНрдд
рдореЛрдб рддрдХ рдХрдареЛрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЖрдВрддрд░рд┐рдХ/API рдХреЙрд▓рд░ рдЬреЛ exec рдЯреВрд▓ рдХреЛ
рд╕реНрдкрд╖реНрдЯ ask рдорд╛рди рдХреЗ рд╕рд╛рде рдмрдирд╛рддреЗ рд╣реИрдВ, рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддреЗ рд╣реИрдВред
nodestringhost=node рд╣реЛрдиреЗ рдкрд░ Node id/nameред
elevatedbooleandefault: falseрдЙрдиреНрдирдд рдореЛрдб рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ тАФ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдХрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реЛрд╕реНрдЯ рдкрде рдкрд░ рдЬрд╛рдПрдВред security=full рдХреЗрд╡рд▓ рддрдм рдмрд╛рдзреНрдп рд╣реЛрддрд╛ рд╣реИ рдЬрдм elevated full рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред
рдиреЛрдЯреНрд╕:
hostрдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯautoрд╣реИ: рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд░рдирдЯрд╛рдЗрдо рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕, рдЕрдиреНрдпрдерд╛ GatewayредhostрдХреЗрд╡рд▓auto,sandbox,gateway, рдпрд╛nodeрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣реЛрд╕реНрдЯрдиреЗрдо рдЪрдпрдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИ; рд╣реЛрд╕реНрдЯрдиреЗрдо-рдЬреИрд╕реЗ рдорд╛рди рдХрдорд╛рдВрдб рдЪрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВредautoрдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдЯрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рд╣реИ, рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдирд╣реАрдВредautoрд╕реЗ рдкреНрд░рддрд┐-рдХреЙрд▓host=nodeрдХреА рдЕрдиреБрдорддрд┐ рд╣реИ; рдкреНрд░рддрд┐-рдХреЙрд▓host=gatewayрдХреЗрд╡рд▓ рддрдм рдЕрдиреБрдорддрд┐ рд╣реИ рдЬрдм рдХреЛрдИ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд░рдирдЯрд╛рдЗрдо рд╕рдХреНрд░рд┐рдп рди рд╣реЛредtools.exec.modeрд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдиреАрддрд┐ рдиреЙрдм рд╣реИред рдорд╛рдиdeny,allowlist,ask,auto, рдФрд░fullрд╣реИрдВредautoрдирд┐рд░реНрдзрд╛рд░рдХ allowlist/safe-bin рдорд┐рд▓рд╛рдиреЛрдВ рдХреЛ рд╕реАрдзреЗ рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рдХреА exec рдЕрдиреБрдореЛрджрди рдорд╛рдорд▓реЗ рдХреЛ рдорд╛рдирд╡ рд╕реЗ рдкреВрдЫрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ OpenClaw рдХреЗ рдореВрд▓ рдСрдЯреЛ рд╕рдореАрдХреНрд╖рдХ рдХреЗ рдЬрд╝рд░рд┐рдП рд░реВрдЯ рдХрд░рддрд╛ рд╣реИредask/ask=alwaysрдлрд┐рд░ рднреА рд╣рд░ рдмрд╛рд░ рдорд╛рдирд╡ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИред- рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рдмрд┐рдирд╛,
host=autoрдлрд┐рд░ рднреА "рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ": рд╕реИрдВрдбрдмреЙрдХреНрд╕ рди рд╣реЛрдиреЗ рдкрд░ рдпрд╣gatewayрдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ; рд▓рд╛рдЗрд╡ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред elevatedрд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдХрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реЛрд╕реНрдЯ рдкрде рдкрд░ рдЬрд╛рддрд╛ рд╣реИ: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗgateway, рдпрд╛nodeрдЬрдмtools.exec.host=nodeрд╣реЛ (рдпрд╛ рд╕рддреНрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯhost=nodeрд╣реЛ)ред рдпрд╣ рдХреЗрд╡рд▓ рддрдм рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрдм рдореМрдЬреВрджрд╛ рд╕рддреНрд░/рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд рдПрдХреНрд╕реЗрд╕ рд╕рдХреНрд╖рдо рд╣реЛредgateway/nodeрдЕрдиреБрдореЛрджрди рд╣реЛрд╕реНрдЯ рдЕрдиреБрдореЛрджрди рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВредnodeрдХреЗ рд▓рд┐рдП рдпреБрдЧреНрдорд┐рдд Node (рд╕рд╣рдЪрд░ рдРрдк рдпрд╛ рд╣реЗрдбрд▓реЗрд╕ Node рд╣реЛрд╕реНрдЯ) рдЖрд╡рд╢реНрдпрдХ рд╣реИред- рдпрджрд┐ рдХрдИ Node рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рддреЛ рдПрдХ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП
exec.nodeрдпрд╛tools.exec.nodeрд╕реЗрдЯ рдХрд░реЗрдВред exec host=nodeNode рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рд╢реЗрд▓-рдирд┐рд╖реНрдкрд╛рджрди рдкрде рд╣реИ; рдкреБрд░рд╛рдирд╛nodes.runрд░реИрдкрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредtimeoutрдЕрдЧреНрд░рднреВрдорд┐, рдкреГрд╖реНрдарднреВрдорд┐,yieldMs, Gateway, рд╕реИрдВрдбрдмреЙрдХреНрд╕, рдФрд░ Nodesystem.runрдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реЛ, рддреЛ OpenClawtools.exec.timeoutSecрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рд╕реНрдкрд╖реНрдЯtimeout: 0рдЙрд╕ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП exec рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред- рдЧреИрд░-Windows рд╣реЛрд╕реНрдЯ рдкрд░, exec рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░
SHELLрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рдпрджрд┐SHELLfishрд╣реИ, рддреЛ fish-рдЕрд╕рдВрдЧрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣PATHрд╕реЗbash(рдпрд╛sh) рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реИ, рдлрд┐рд░ рджреЛрдиреЛрдВ рди рдорд┐рд▓рдиреЗ рдкрд░SHELLрдкрд░ рд▓реМрдЯрддрд╛ рд╣реИред - Windows рд╣реЛрд╕реНрдЯ рдкрд░, exec PowerShell 7 (
pwsh) рдЦреЛрдЬ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реИ (Program Files, ProgramW6432, рдлрд┐рд░ PATH), рдлрд┐рд░ Windows PowerShell 5.1 рдкрд░ рд▓реМрдЯрддрд╛ рд╣реИред - рдЧреИрд░-Windows Gateway рд╣реЛрд╕реНрдЯ рдкрд░, bash рдФрд░ zsh exec рдХрдорд╛рдВрдб рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред OpenClaw рд╢реЗрд▓ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕реНрд░реЛрдд-рдпреЛрдЧреНрдп
aliases/functions рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ
$OPENCLAW_STATE_DIR/cache/shell-snapshots/рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╣рд░ exec рдХрдорд╛рдВрдб рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рд╕реНрд░реЛрдд рдХрд░рддрд╛ рд╣реИред рд╕реАрдХреНрд░реЗрдЯ-рдЬреИрд╕реЗ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдмрд╛рд╣рд░ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ; рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдФрд░ Node exec рдЗрд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗред рдЗрд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рдкрде рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Gateway рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВOPENCLAW_EXEC_SHELL_SNAPSHOT=0рд╕реЗрдЯ рдХрд░реЗрдВред - рд╣реЛрд╕реНрдЯ рдирд┐рд╖реНрдкрд╛рджрди (
gateway/node) рдмрд╛рдЗрдирд░реА рд╣рд╛рдИрдЬреИрдХрд┐рдВрдЧ рдпрд╛ рдЗрдВрдЬреЗрдХреНрдЯреЗрдб рдХреЛрдб рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдПenv.PATHрдФрд░ рд▓реЛрдбрд░ рдУрд╡рд░рд░рд╛рдЗрдб (LD_*/DYLD_*) рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред - OpenClaw рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд╡рд╛рддрд╛рд╡рд░рдг (PTY рдФрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдирд┐рд╖реНрдкрд╛рджрди рд╕рд╣рд┐рдд) рдореЗрдВ
OPENCLAW_SHELL=execрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╢реЗрд▓/рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдирд┐рдпрдо exec-рдЯреВрд▓ рд╕рдВрджрд░реНрдн рдкрд╣рдЪрд╛рди рд╕рдХреЗрдВред - рдЪреИрдирд▓-рдореВрд▓ рд░рди рдХреЗ рд▓рд┐рдП, OpenClaw
OPENCLAW_CHANNEL_CONTEXTрдореЗрдВ рдПрдХ рд╕рдВрдХреАрд░реНрдг рдкреНрд░реЗрд╖рдХ/рдЪреИрдЯ рдкрд╣рдЪрд╛рди JSON рдкреЗрд▓реЛрдб рднреА рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЪреИрдирд▓ рдиреЗ рд╡реЗ ids рдкреНрд░рджрд╛рди рдХрд┐рдП рд╣реЛрдВред openclaw channels loginрдХреЛexecрд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЪреИрдирд▓-auth рдкреНрд░рд╡рд╛рд╣ рд╣реИ; рдЗрд╕реЗ Gateway рд╣реЛрд╕реНрдЯ рдкрд░ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЪрд▓рд╛рдПрдВ, рдпрд╛ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдЪреИрдЯ рд╕реЗ рдЪреИрдирд▓-рдиреЗрдЯрд┐рд╡ рд▓реЙрдЧрд┐рди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред- рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╕реИрдВрдбрдмреЙрдХреНрд╕рд┐рдВрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реИред рдпрджрд┐ рд╕реИрдВрдбрдмреЙрдХреНрд╕рд┐рдВрдЧ рдмрдВрдж рд╣реИ, рддреЛ рдирд┐рд╣рд┐рдд
host=autogatewayрдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯhost=sandboxрдлрд┐рд░ рднреА Gateway рд╣реЛрд╕реНрдЯ рдкрд░ рдЪреБрдкрдЪрд╛рдк рдЪрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрдВрдж рд╣реЛрдХрд░ рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИред рд╕реИрдВрдбрдмреЙрдХреНрд╕рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдпрд╛ рдЕрдиреБрдореЛрджрдиреЛрдВ рдХреЗ рд╕рд╛рдеhost=gatewayрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реАрдлрд╝реНрд▓рд╛рдЗрдЯ рдЬрд╛рдВрдЪреЗрдВ (рд╕рд╛рдорд╛рдиреНрдп Python/Node рд╢реЗрд▓-рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП) рдХреЗрд╡рд▓ рдкреНрд░рднрд╛рд╡реА
workdirрд╕реАрдорд╛ рдХреЗ рдЕрдВрджрд░ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреА рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрдеworkdirрдХреЗ рдмрд╛рд╣рд░ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрдлрд╝реНрд▓рд╛рдЗрдЯ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред - рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЙрд╕реЗ рдПрдХ рдмрд╛рд░ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд
рдкреВрд░реНрдгрддрд╛ рд╡реЗрдХ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВ рдЬрдм рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рджреЗрддрд╛ рд╣реИ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИред
рд▓реЙрдЧ, рд╕реНрдерд┐рддрд┐, рдЗрдирдкреБрдЯ, рдпрд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП
processрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; sleep рд▓реВрдк, timeout рд▓реВрдк, рдпрд╛ рдмрд╛рд░-рдмрд╛рд░ polling рд╕реЗ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХреА рдирдХрд▓ рди рдХрд░реЗрдВред - рдЬреЛ рдХрд╛рдо рдмрд╛рдж рдореЗрдВ рдпрд╛ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрд╕рдХреЗ рд▓рд┐рдП
execsleep/delay рдкреИрдЯрд░реНрди рдХреЗ рдмрдЬрд╛рдп Cron рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧ
tools.exec.notifyOnExit(рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true): true рд╣реЛрдиреЗ рдкрд░, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рднреЗрдЬреЗ рдЧрдП exec рд╕рддреНрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдЗрд╡реЗрдВрдЯ рдХрддрд╛рд░рдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ рдФрд░ Heartbeat рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВредtools.exec.approvalRunningNoticeMs(рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 10000): рдЕрдиреБрдореЛрджрди-рдЧреЗрдЯреЗрдб exec рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рджреЗрд░ рдЪрд▓рдиреЗ рдкрд░ рдПрдХрд▓ "рдЪрд▓ рд░рд╣рд╛ рд╣реИ" рд╕реВрдЪрдирд╛ рдЬрд╛рд░реА рдХрд░реЗрдВ (0 рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ)редtools.exec.timeoutSec(рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 1800): рд╕реЗрдХрдВрдб рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рддрд┐-рдХрдорд╛рдВрдб exec рдЯрд╛рдЗрдордЖрдЙрдЯред рдкреНрд░рддрд┐-рдХреЙрд▓timeoutрдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ; рдкреНрд░рддрд┐-рдХреЙрд▓timeout: 0exec рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИредtools.exec.host(рдбрд┐рдлрд╝реЙрд▓реНрдЯ:auto; рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд░рдирдЯрд╛рдЗрдо рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░sandboxрдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛gateway)tools.exec.security(рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдПdeny, unset рд╣реЛрдиреЗ рдкрд░ Gateway + Node рдХреЗ рд▓рд┐рдПfull)tools.exec.ask(рдбрд┐рдлрд╝реЙрд▓реНрдЯ:off)- Gateway + Node рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛-рдЕрдиреБрдореЛрджрди рд╣реЛрд╕реНрдЯ exec рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдиреБрдореЛрджрди/allowlist рд╡реНрдпрд╡рд╣рд╛рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ
tools.exec.*рдФрд░ рд╣реЛрд╕реНрдЯ рдЕрдиреБрдореЛрджрди рдлрд╝рд╛рдЗрд▓ рджреЛрдиреЛрдВ рдХреЛ рд╕рдЦреНрдд рдХрд░реЗрдВ; рджреЗрдЦреЗрдВ Exec рдЕрдиреБрдореЛрджрдиред - YOLO рд╣реЛрд╕реНрдЯ-рдиреАрддрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ (
security=full,ask=off) рд╕реЗ рдЖрддрд╛ рд╣реИ,host=autoрд╕реЗ рдирд╣реАрдВред рдпрджрд┐ рдЖрдк Gateway рдпрд╛ Node рд░реВрдЯрд┐рдВрдЧ рдмрд╛рдзреНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛtools.exec.hostрд╕реЗрдЯ рдХрд░реЗрдВ рдпрд╛/exec host=...рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред security=fullрдФрд░ask=offрдореЛрдб рдореЗрдВ, рд╣реЛрд╕реНрдЯ exec рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдиреАрддрд┐ рдХрд╛ рд╕реАрдзреЗ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ; рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд heuristic рдХрдорд╛рдВрдб-obfuscation prefilter рдпрд╛ script-preflight rejection layer рдирд╣реАрдВ рд╣реИредtools.exec.node(рдбрд┐рдлрд╝реЙрд▓реНрдЯ: unset)tools.exec.strictInlineEval(рдбрд┐рдлрд╝реЙрд▓реНрдЯ: false): true рд╣реЛрдиреЗ рдкрд░,python -c,node -e,ruby -e,perl -e,php -r,lua -e, рдФрд░osascript -eрдЬреИрд╕реЗ inline interpreter eval рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдореАрдХреНрд╖рдХ рдпрд╛ рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдореЛрджрди рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИредmode=autoрдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп exec рдЕрдиреБрдореЛрджрди рдкрде рдореВрд▓ рдСрдЯреЛ рд╕рдореАрдХреНрд╖рдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдо-рдЬреЛрдЦрд┐рдо рд╡рд╛рд▓реЗ рдПрдХрдмрд╛рд░рдЧреА рдХрдорд╛рдВрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рджреЗ рд╕рдХрддрд╛ рд╣реИ; рдкреНрд░рддреНрдпрдХреНрд╖ Node-рд╣реЛрд╕реНрдЯsystem.runрдХреЙрд▓ рдХреЛ рдлрд┐рд░ рднреА рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдореЛрджрди рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрдорд╛рдВрдб рдХреЛ рдорд╛рдирд╡ рдЕрдиреБрдореЛрджрди рдорд╛рд░реНрдЧ рдкрд░ рдирд╣реАрдВ рднреЗрдЬ рд╕рдХрддреЗред рдпрджрд┐ рд╕рдореАрдХреНрд╖рдХ рдкреВрдЫрддрд╛ рд╣реИ, рддреЛ рдЕрдиреБрд░реЛрдз рдорд╛рдирд╡ рдХреЗ рдкрд╛рд╕ рдЬрд╛рддрд╛ рд╣реИредallow-alwaysрдЕрдм рднреА рд╕реМрдореНрдп interpreter/script invocations рдХреЛ рд╕реНрдерд╛рдпреА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди inline-eval рд░реВрдк рдЯрд┐рдХрд╛рдК allow rules рдирд╣реАрдВ рдмрдирддреЗредtools.exec.commandHighlighting(рдбрд┐рдлрд╝реЙрд▓реНрдЯ: false): true рд╣реЛрдиреЗ рдкрд░, рдЕрдиреБрдореЛрджрди рдкреНрд░реЙрдореНрдкреНрдЯ рдХрдорд╛рдВрдб рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ parser-derived command spans рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред exec рдЕрдиреБрдореЛрджрди рдиреАрддрд┐ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдХрдорд╛рдВрдб рдЯреЗрдХреНрд╕реНрдЯ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╛ рдкреНрд░рддрд┐ рдПрдЬреЗрдВрдЯtrueрд╕реЗрдЯ рдХрд░реЗрдВредtools.exec.pathPrepend: exec рд░рди рдХреЗ рд▓рд┐рдПPATHрдХреЗ рдЖрдЧреЗ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдбрд╛рдпрд░реЗрдХреНрдЯрд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА (рдХреЗрд╡рд▓ Gateway + рд╕реИрдВрдбрдмреЙрдХреНрд╕)редtools.exec.safeBins: stdin-only рд╕реБрд░рдХреНрд╖рд┐рдд binaries рдЬреЛ рд╕реНрдкрд╖реНрдЯ allowlist рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд binsредtools.exec.safeBinTrustedDirs:safeBinsрдкрде рдЬрд╛рдВрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдкрд╖реНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░рд┐рдпрд╛рдВредPATHрдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдХрднреА рдЕрдкрдиреЗ-рдЖрдк рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реЛрддреАрдВред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ/binрдФрд░/usr/binрд╣реИрдВредtools.exec.safeBinProfiles: рдкреНрд░рддрд┐ safe bin рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╕реНрдЯрдо argv рдиреАрддрд┐ (minPositional,maxPositional,allowedValueFlags,deniedFlags)ред
рдЙрджрд╛рд╣рд░рдг:
{ tools: { exec: { pathPrepend: ["~/bin", "/opt/oss/bin"], }, },}PATH рд╣реИрдВрдбрд▓рд┐рдВрдЧ
host=gateway: рдЖрдкрдХреЗ login-shellPATHрдХреЛ exec рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИред рд╣реЛрд╕реНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдПenv.PATHрдУрд╡рд░рд░рд╛рдЗрдб рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред daemon рд╕реНрд╡рдпрдВ рдлрд┐рд░ рднреА рдиреНрдпреВрдирддрдоPATHрдХреЗ рд╕рд╛рде рдЪрд▓рддрд╛ рд╣реИ:- macOS:
/opt/homebrew/bin,/usr/local/bin,/usr/bin,/bin - Linux:
/usr/local/bin,/usr/bin,/bin- рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢реЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдЬреИрд╕реЗ
~/.zshenvрдпрд╛/etc/zshenv) рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрдереЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП,tools.exec.pathPrependрдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рд╢реЗрд▓ рдХрдорд╛рдВрдб рдХреЗ рдЕрдВрджрд░ рдЕрдВрддрд┐рдоPATHрдХреЗ рдЖрдЧреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВред
- рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢реЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдЬреИрд╕реЗ
- macOS:
host=sandbox: рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░sh -lc(login shell) рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП/etc/profilePATHрд░реАрд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред OpenClaw рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ sourcing рдХреЗ рдмрд╛рдж рдПрдХ рдЖрдВрддрд░рд┐рдХ env var рдХреЗ рдЬрд╝рд░рд┐рдПenv.PATHрдЖрдЧреЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рдХреЛрдИ shell interpolation рдирд╣реАрдВ);tools.exec.pathPrependрдпрд╣рд╛рдВ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИредhost=node: рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдХреЗрд╡рд▓ non-blocked env overrides Node рдХреЛ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╣реЛрд╕реНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдПenv.PATHрдУрд╡рд░рд░рд╛рдЗрдб рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ Node рд╣реЛрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦреЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА Node рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд PATH рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ Node рд╣реЛрд╕реНрдЯ рд╕реЗрд╡рд╛ рд╡рд╛рддрд╛рд╡рд░рдг (systemd/launchd) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдпрд╛ рдЯреВрд▓ рдорд╛рдирдХ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
рдкреНрд░рддрд┐-рдПрдЬреЗрдВрдЯ Node binding (рдХреЙрдиреНрдлрд╝рд┐рдЧ рдореЗрдВ agent list index рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ):
openclaw config get agents.listopenclaw config set 'agents.list[0].tools.exec.node' "node-id-or-name"Control UI: Nodes рдЯреИрдм рдореЗрдВ рдЙрдиреНрд╣реАрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ "Exec node binding" рдкреИрдирд▓ рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╕рддреНрд░ рдУрд╡рд░рд░рд╛рдЗрдб (/exec)
host, security, ask, рдФрд░ node рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐-рд╕рддреНрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рд╣реЗрддреБ /exec рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдореМрдЬреВрджрд╛ рдорд╛рди рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ arguments рдХреЗ /exec рднреЗрдЬреЗрдВред
рдЙрджрд╛рд╣рд░рдг:
/exec host=auto security=allowlist ask=on-miss node=mac-1рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдореЙрдбрд▓
/exec рдХреЗрд╡рд▓ рдЕрдзрд┐рдХреГрдд рдкреНрд░реЗрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реЛрддрд╛ рд╣реИ (рдЪреИрдирд▓ рдЕрдиреБрдорддрд┐-рд╕реВрдЪрд┐рдпрд╛рдВ/рдкреЗрдпрд░рд┐рдВрдЧ рдФрд░ commands.useAccessGroups)ред
рдпрд╣ рдХреЗрд╡рд▓ рд╕рддреНрд░ рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЙрдиреНрдлрд┐рдЧ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ред рдЕрдзрд┐рдХреГрдд рдмрд╛рд╣рд░реА рдЪреИрдирд▓ рдкреНрд░реЗрд╖рдХ
рдЗрди рд╕рддреНрд░ рдбрд┐рдлреЙрд▓реНрдЯ рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдВрддрд░рд┐рдХ gateway/webchat рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЗрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдпреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП operator.admin рдЪрд╛рд╣рд┐рдПред
exec рдХреЛ рдкреВрд░реА рддрд░рд╣ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдЯреВрд▓ рдиреАрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ (tools.deny: ["exec"] рдпрд╛ рдкреНрд░рддрд┐-рдПрдЬреЗрдВрдЯ)ред рд╣реЛрд╕реНрдЯ рдЕрдиреБрдореЛрджрди
рддрдм рднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ security=full рдФрд░ ask=off рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗред
Exec рдЕрдиреБрдореЛрджрди (рд╕рд╣рд╛рдпрдХ рдРрдк / node рд╣реЛрд╕реНрдЯ)
Sandboxed рдПрдЬреЗрдВрдЯ exec рдХреЗ Gateway рдпрд╛ node рд╣реЛрд╕реНрдЯ рдкрд░ рдЪрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддрд┐-рдЕрдиреБрд░реЛрдз рдЕрдиреБрдореЛрджрди рдорд╛рдВрдЧ рд╕рдХрддреЗ рд╣реИрдВред
рдиреАрддрд┐, рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА, рдФрд░ UI рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд▓рд┐рдП Exec рдЕрдиреБрдореЛрджрди рджреЗрдЦреЗрдВред
рдЬрдм рдЕрдиреБрдореЛрджрди рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ exec рдЯреВрд▓ рддреБрд░рдВрдд
status: "approval-pending" рдФрд░ рдПрдХ рдЕрдиреБрдореЛрджрди id рдХреЗ рд╕рд╛рде рд▓реМрдЯрддрд╛ рд╣реИред рдЕрдиреБрдореЛрджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж (рдпрд╛ рдЕрд╕реНрд╡реАрдХреГрдд / рд╕рдордп-рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░),
Gateway рдХреЗрд╡рд▓ рдЕрдиреБрдореЛрджрд┐рдд рд░рди рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдкреНрд░рдЧрддрд┐ рдФрд░ рдкреВрд░реНрдгрддрд╛ рд╕рд┐рд╕реНрдЯрдо рдЗрд╡реЗрдВрдЯ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ
(Exec running / Exec finished)ред рдЕрд╕реНрд╡реАрдХреГрдд рдпрд╛ рд╕рдордп-рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рдЕрдиреБрдореЛрджрди рдЕрдВрддрд┐рдо рд╣реЛрддреЗ рд╣реИрдВ рдФрд░
рдПрдЬреЗрдВрдЯ рд╕рддреНрд░ рдХреЛ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рд╕рд┐рд╕реНрдЯрдо рдЗрд╡реЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд░рддреЗред
рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХрд╛рд░реНрдб/рдмрдЯрди рд╡рд╛рд▓реЗ рдЪреИрдирд▓реЛрдВ рдкрд░, рдПрдЬреЗрдВрдЯ рдХреЛ рдкрд╣рд▓реЗ рдЙрд╕
рдиреЗрдЯрд┐рд╡ UI рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ /approve рдХрдорд╛рдВрдб рдХреЗрд╡рд▓ рддрдм рд╢рд╛рдорд┐рд▓ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬрдм рдЯреВрд▓
рдкрд░рд┐рдгрд╛рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣реЗ рдХрд┐ рдЪреИрдЯ рдЕрдиреБрдореЛрджрди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рдЕрдиреБрдореЛрджрди рд╣реА
рдПрдХрдорд╛рддреНрд░ рд░рд╛рд╕реНрддрд╛ рд╣реИред
рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА + рд╕реБрд░рдХреНрд╖рд┐рдд рдмрд┐рдиреНрд╕
рдореИрдиреНрдпреБрдЕрд▓ рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА рдкреНрд░рд╡рд░реНрддрди рд╣рд▓ рдХрд┐рдП рдЧрдП рдмрд╛рдЗрдирд░реА рдкрд╛рде рдЧреНрд▓реЙрдм рдФрд░ bare рдХрдорд╛рдВрдб-рдирд╛рдо
рдЧреНрд▓реЙрдм рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред Bare рдирд╛рдо рдХреЗрд╡рд▓ PATH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдП рдЧрдП рдХрдорд╛рдВрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП rg
/opt/homebrew/bin/rg рд╕реЗ рдореЗрд▓ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХрдорд╛рдВрдб rg рд╣реЛ, рд▓реЗрдХрд┐рди ./rg рдпрд╛ /tmp/rg рд╕реЗ рдирд╣реАрдВред
рдЬрдм security=allowlist рд╣реЛ, shell рдХрдорд╛рдВрдб рдХреЗрд╡рд▓ рддрднреА рдЕрдкрдиреЗ-рдЖрдк рдЕрдиреБрдордд рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рд╣рд░ pipeline
segment рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА рдореЗрдВ рд╣реЛ рдпрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрд┐рди рд╣реЛред Chaining (;, &&, ||) рдФрд░ redirections
allowlist рдореЛрдб рдореЗрдВ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рд╣рд░ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп segment
рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА (рд╕реБрд░рдХреНрд╖рд┐рдд рдмрд┐рдиреНрд╕ рд╕рд╣рд┐рдд) рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рди рдХрд░реЗред Redirections рдЕрдм рднреА рдЕрд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
рд╕реНрдерд╛рдпреА allow-always рднрд░реЛрд╕рд╛ рдЗрд╕ рдирд┐рдпрдо рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛: chained рдХрдорд╛рдВрдб рдХреЛ рдлрд┐рд░ рднреА рд╣рд░
рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп segment рдХреЗ рдореЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
autoAllowSkills exec рдЕрдиреБрдореЛрджрдиреЛрдВ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕реБрд╡рд┐рдзрд╛ рдкрде рд╣реИред рдпрд╣
рдореИрдиреНрдпреБрдЕрд▓ рдкрд╛рде рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдЬреИрд╕рд╛ рдирд╣реАрдВ рд╣реИред рд╕рдЦреНрдд рд╕реНрдкрд╖реНрдЯ рднрд░реЛрд╕реЗ рдХреЗ рд▓рд┐рдП, autoAllowSkills рдХреЛ рдмрдВрдж рд░рдЦреЗрдВред
рджреЛрдиреЛрдВ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
tools.exec.safeBins: рдЫреЛрдЯреЗ, рдХреЗрд╡рд▓-stdin stream filtersредtools.exec.safeBinTrustedDirs: safe-bin executable paths рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдЕрддрд┐рд░рд┐рдХреНрдд рднрд░реЛрд╕реЗрдордВрдж directoriesредtools.exec.safeBinProfiles: custom safe bins рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ argv policyред- allowlist: executable paths рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рднрд░реЛрд╕рд╛ред
safeBins рдХреЛ generic рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА рди рдорд╛рдиреЗрдВ, рдФрд░ interpreter/runtime binaries (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП python3, node, ruby, bash) рди рдЬреЛрдбрд╝реЗрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдЗрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЕрдиреБрдореЛрджрди prompts рд╕рдХреНрд╖рдо рд░рдЦреЗрдВред
openclaw security audit рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдЬрдм interpreter/runtime safeBins рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдореЗрдВ explicit profiles рдирд╣реАрдВ рд╣реЛрддреЗ, рдФрд░ openclaw doctor --fix рдЧрд╛рдпрдм custom safeBinProfiles рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ scaffold рдХрд░ рд╕рдХрддрд╛ рд╣реИред
openclaw security audit рдФрд░ openclaw doctor рддрдм рднреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреЗ рд╣реИрдВ рдЬрдм рдЖрдк jq рдЬреИрд╕реЗ broad-behavior bins рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ safeBins рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк interpreters рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ tools.exec.strictInlineEval рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рддрд╛рдХрд┐ inline code-eval forms рдХреЛ рдлрд┐рд░ рднреА reviewer рдпрд╛ рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдореЛрджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд░рд╣реЗред
рдкреВрд░реА рдиреАрддрд┐ рдХреЗ рд╡рд┐рд╡рд░рдг рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, Exec рдЕрдиреБрдореЛрджрди рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрд┐рдиреНрд╕ рдмрдирд╛рдо рдЕрдиреБрдорддрд┐-рд╕реВрдЪреА рджреЗрдЦреЗрдВред
рдЙрджрд╛рд╣рд░рдг
Foreground:
{ "tool": "exec", "command": "ls -la" }Background + poll:
{"tool":"exec","command":"npm run build","yieldMs":1000}{"tool":"process","action":"poll","sessionId":"<id>"}Polling рдСрди-рдбрд┐рдорд╛рдВрдб рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╣реИ, waiting loops рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдпрджрд┐ automatic completion wake рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдХрдорд╛рдВрдб output рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ session рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдХреБрдВрдЬрд┐рдпрд╛рдВ рднреЗрдЬреЗрдВ (tmux-style):
{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Enter"]}{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["C-c"]}{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Up","Up","Enter"]}Submit (рдХреЗрд╡рд▓ CR рднреЗрдЬреЗрдВ):
{ "tool": "process", "action": "submit", "sessionId": "<id>" }Paste (рдбрд┐рдлреЙрд▓реНрдЯ рд░реВрдк рд╕реЗ bracketed):
{ "tool": "process", "action": "paste", "sessionId": "<id>", "text": "line1\nline2\n" }apply_patch
apply_patch рд╕рдВрд░рдЪрд┐рдд multi-file edits рдХреЗ рд▓рд┐рдП exec рдХрд╛ subtool рд╣реИред
рдпрд╣ OpenAI рдФрд░ OpenAI Codex models рдХреЗ рд▓рд┐рдП рдбрд┐рдлреЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИред Config рдХреЗрд╡рд▓ рддрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЬрдм рдЖрдк рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВ рдпрд╛ specific models рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВ:
{ tools: { exec: { applyPatch: { workspaceOnly: true, allowModels: ["gpt-5.5"] }, }, },}рдиреЛрдЯреНрд╕:
- рдХреЗрд╡рд▓ OpenAI/OpenAI Codex models рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдзред
- Tool policy рдЕрдм рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ;
allow: ["write"]implicit рд░реВрдк рд╕реЗapply_patchрдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред deny: ["write"]apply_patchрдХреЛ deny рдирд╣реАрдВ рдХрд░рддрд╛;apply_patchрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ deny рдХрд░реЗрдВ рдпрд╛ patch writes рдХреЛ рднреА block рдХрд░рдирд╛ рд╣реЛ рддреЛdeny: ["group:fs"]рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред- Config
tools.exec.applyPatchрдХреЗ рдЕрдВрддрд░реНрдЧрдд рд░рд╣рддрд╛ рд╣реИред tools.exec.applyPatch.enabledрдХрд╛ рдбрд┐рдлреЙрд▓реНрдЯtrueрд╣реИ; OpenAI models рдХреЗ рд▓рд┐рдП tool рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╣реЗрддреБ рдЗрд╕реЗfalseрдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВредtools.exec.applyPatch.workspaceOnlyрдХрд╛ рдбрд┐рдлреЙрд▓реНрдЯtrueрд╣реИ (workspace-contained)ред рдЗрд╕реЗfalseрдкрд░ рдХреЗрд╡рд▓ рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрдм рдЖрдк рдЬрд╛рдирдмреВрдЭрдХрд░apply_patchрдХреЛ workspace directory рдХреЗ рдмрд╛рд╣рд░ write/delete рдХрд░рдиреЗ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВред
рд╕рдВрдмрдВрдзрд┐рдд
- Exec рдЕрдиреБрдореЛрджрди тАФ shell commands рдХреЗ рд▓рд┐рдП approval gates
- Sandboxing тАФ sandboxed environments рдореЗрдВ commands рдЪрд▓рд╛рдирд╛
- Background Process тАФ long-running exec рдФрд░ process tool
- Security тАФ tool policy рдФрд░ elevated access