Tools

Exec рдЯреВрд▓

рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдореЗрдВ рд╢реЗрд▓ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВред exec рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирдХрд╛рд░реА рд╢реЗрд▓ рд╕рддрд╣ рд╣реИ: рдХрдорд╛рдВрдб рдЙрди рд╕рднреА рдЬрдЧрд╣реЛрдВ рдкрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛, рд╕рдВрдкрд╛рджрд┐рдд рдпрд╛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЪрдпрдирд┐рдд рд╣реЛрд╕реНрдЯ рдпрд╛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред write, edit, рдпрд╛ apply_patch рдЬреИрд╕реЗ OpenClaw рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЯреВрд▓ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ exec рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред

process рдХреЗ рдЬрд╝рд░рд┐рдП рдЕрдЧреНрд░рднреВрдорд┐ + рдкреГрд╖реНрдарднреВрдорд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ process рдЕрд╕реНрд╡реАрдХреГрдд рд╣реИ, рддреЛ exec рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ yieldMs/background рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред рдкреГрд╖реНрдарднреВрдорд┐ рд╕рддреНрд░ рдкреНрд░рддрд┐ рдПрдЬреЗрдВрдЯ рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ; process рдХреЗрд╡рд▓ рдЙрд╕реА рдПрдЬреЗрдВрдЯ рдХреЗ рд╕рддреНрд░ рджреЗрдЦрддрд╛ рд╣реИред

рдкреИрд░рд╛рдореАрдЯрд░

commandstringrequired

рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд▓ рдХрдорд╛рдВрдбред

workdirstringdefault: cwd

рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╢реАрд▓ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАред

envobject

рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд┐рдП рдЧрдП рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдКрдкрд░ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдХреА/рд╡реИрд▓реНрдпреВ рд╡рд╛рддрд╛рд╡рд░рдг рдУрд╡рд░рд░рд╛рдЗрдбред

yieldMsnumberdefault: 10000

рдЗрд╕ рд╡рд┐рд▓рдВрдм (ms) рдХреЗ рдмрд╛рдж рдХрдорд╛рдВрдб рдХреЛ рдЕрдкрдиреЗ-рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рднреЗрдЬреЗрдВред

backgroundbooleandefault: false

yieldMs рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрдорд╛рдВрдб рдХреЛ рддреБрд░рдВрдд рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рднреЗрдЬреЗрдВред

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 рдорд╛рди рдХреЗ рд╕рд╛рде рдмрдирд╛рддреЗ рд╣реИрдВ, рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддреЗ рд╣реИрдВред

nodestring

host=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=node Node рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рд╢реЗрд▓-рдирд┐рд╖реНрдкрд╛рджрди рдкрде рд╣реИ; рдкреБрд░рд╛рдирд╛ nodes.run рд░реИрдкрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • timeout рдЕрдЧреНрд░рднреВрдорд┐, рдкреГрд╖реНрдарднреВрдорд┐, yieldMs, Gateway, рд╕реИрдВрдбрдмреЙрдХреНрд╕, рдФрд░ Node system.run рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реЛ, рддреЛ OpenClaw tools.exec.timeoutSec рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рд╕реНрдкрд╖реНрдЯ timeout: 0 рдЙрд╕ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП exec рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
  • рдЧреИрд░-Windows рд╣реЛрд╕реНрдЯ рдкрд░, exec рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ SHELL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рдпрджрд┐ SHELL fish рд╣реИ, рддреЛ 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=auto gateway рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ host=sandbox рдлрд┐рд░ рднреА Gateway рд╣реЛрд╕реНрдЯ рдкрд░ рдЪреБрдкрдЪрд╛рдк рдЪрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрдВрдж рд╣реЛрдХрд░ рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИред рд╕реИрдВрдбрдмреЙрдХреНрд╕рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдпрд╛ рдЕрдиреБрдореЛрджрдиреЛрдВ рдХреЗ рд╕рд╛рде host=gateway рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реАрдлрд╝реНрд▓рд╛рдЗрдЯ рдЬрд╛рдВрдЪреЗрдВ (рд╕рд╛рдорд╛рдиреНрдп Python/Node рд╢реЗрд▓-рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП) рдХреЗрд╡рд▓ рдкреНрд░рднрд╛рд╡реА workdir рд╕реАрдорд╛ рдХреЗ рдЕрдВрджрд░ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреА рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрде workdir рдХреЗ рдмрд╛рд╣рд░ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрдлрд╝реНрд▓рд╛рдЗрдЯ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЙрд╕реЗ рдПрдХ рдмрд╛рд░ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреВрд░реНрдгрддрд╛ рд╡реЗрдХ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВ рдЬрдм рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рджреЗрддрд╛ рд╣реИ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИред рд▓реЙрдЧ, рд╕реНрдерд┐рддрд┐, рдЗрдирдкреБрдЯ, рдпрд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП process рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; sleep рд▓реВрдк, timeout рд▓реВрдк, рдпрд╛ рдмрд╛рд░-рдмрд╛рд░ polling рд╕реЗ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХреА рдирдХрд▓ рди рдХрд░реЗрдВред
  • рдЬреЛ рдХрд╛рдо рдмрд╛рдж рдореЗрдВ рдпрд╛ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрд╕рдХреЗ рд▓рд┐рдП exec sleep/delay рдкреИрдЯрд░реНрди рдХреЗ рдмрдЬрд╛рдп Cron рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдХреЙрдиреНрдлрд╝рд┐рдЧ

  • tools.exec.notifyOnExit (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true): true рд╣реЛрдиреЗ рдкрд░, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рднреЗрдЬреЗ рдЧрдП exec рд╕рддреНрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдЗрд╡реЗрдВрдЯ рдХрддрд╛рд░рдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ рдФрд░ Heartbeat рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред
  • tools.exec.approvalRunningNoticeMs (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 10000): рдЕрдиреБрдореЛрджрди-рдЧреЗрдЯреЗрдб exec рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рджреЗрд░ рдЪрд▓рдиреЗ рдкрд░ рдПрдХрд▓ "рдЪрд▓ рд░рд╣рд╛ рд╣реИ" рд╕реВрдЪрдирд╛ рдЬрд╛рд░реА рдХрд░реЗрдВ (0 рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ)ред
  • tools.exec.timeoutSec (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 1800): рд╕реЗрдХрдВрдб рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рддрд┐-рдХрдорд╛рдВрдб exec рдЯрд╛рдЗрдордЖрдЙрдЯред рдкреНрд░рддрд┐-рдХреЙрд▓ timeout рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ; рдкреНрд░рддрд┐-рдХреЙрд▓ timeout: 0 exec рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
  • 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)ред

рдЙрджрд╛рд╣рд░рдг:

json5
{  tools: {    exec: {      pathPrepend: ["~/bin", "/opt/oss/bin"],    },  },}

PATH рд╣реИрдВрдбрд▓рд┐рдВрдЧ

  • host=gateway: рдЖрдкрдХреЗ login-shell PATH рдХреЛ 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 рдХреЗ рдЖрдЧреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВред
  • host=sandbox: рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ sh -lc (login shell) рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП /etc/profile PATH рд░реАрд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред 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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ):

bash
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 рднреЗрдЬреЗрдВред

рдЙрджрд╛рд╣рд░рдг:

Code
/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:

json
{ "tool": "exec", "command": "ls -la" }

Background + poll:

json
{"tool":"exec","command":"npm run build","yieldMs":1000}{"tool":"process","action":"poll","sessionId":"<id>"}

Polling рдСрди-рдбрд┐рдорд╛рдВрдб рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╣реИ, waiting loops рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдпрджрд┐ automatic completion wake рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдХрдорд╛рдВрдб output рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ session рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдХреБрдВрдЬрд┐рдпрд╛рдВ рднреЗрдЬреЗрдВ (tmux-style):

json
{"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 рднреЗрдЬреЗрдВ):

json
{ "tool": "process", "action": "submit", "sessionId": "<id>" }

Paste (рдбрд┐рдлреЙрд▓реНрдЯ рд░реВрдк рд╕реЗ bracketed):

json
{ "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 рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВ:

json5
{  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 рдХрд░рдиреЗ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВред

рд╕рдВрдмрдВрдзрд┐рдд

Was this useful?
On this page

On this page