Tools

Exec рдЕрдиреБрдореЛрджрди тАФ рдЙрдиреНрдирдд

рдЙрдиреНрдирдд exec-рдЕрдиреБрдореЛрджрди рд╡рд┐рд╖рдп: safeBins рдлрд╛рд╕реНрдЯ-рдкрд╛рде, interpreter/runtime рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, рдФрд░ chat channels рдореЗрдВ approval-forwarding (native delivery рд╕рд╣рд┐рдд)ред рдореБрдЦреНрдп policy рдФрд░ approval flow рдХреЗ рд▓рд┐рдП, Exec рдЕрдиреБрдореЛрджрди рджреЗрдЦреЗрдВред

рд╕реБрд░рдХреНрд╖рд┐рдд рдмрд┐рдиреНрд╕ (рдХреЗрд╡рд▓ stdin)

tools.exec.safeBins рдХреЗрд╡рд▓-stdin binaries рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП cut) рдЬреЛ allowlist mode рдореЗрдВ рд╕реНрдкрд╖реНрдЯ allowlist entries рдХреЗ рдмрд┐рдирд╛ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╕реБрд░рдХреНрд╖рд┐рдд рдмрд┐рдиреНрд╕ positional file args рдФрд░ path-like tokens рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдХреЗрд╡рд▓ incoming stream рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ stream filters рдХреЗ рд▓рд┐рдП рд╕рдВрдХреАрд░реНрдг fast-path рдорд╛рдиреЗрдВ, рд╕рд╛рдорд╛рдиреНрдп trust list рдирд╣реАрдВред

Default рд╕реБрд░рдХреНрд╖рд┐рдд рдмрд┐рдиреНрд╕:

cut, uniq, head, tail, tr, wc

grep рдФрд░ sort default list рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдЖрдк opt in рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ non-stdin workflows рдХреЗ рд▓рд┐рдП explicit allowlist entries рд░рдЦреЗрдВред safe-bin mode рдореЗрдВ grep рдХреЗ рд▓рд┐рдП, pattern рдХреЛ -e/--regexp рдХреЗ рд╕рд╛рде рджреЗрдВ; positional pattern form рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ file operands рдХреЛ ambiguous positionals рдХреЗ рд░реВрдк рдореЗрдВ рдЫрд┐рдкрд╛рдХрд░ рди рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХреЗред

Argv validation рдФрд░ denied flags

Validation рдХреЗрд╡рд▓ argv shape рд╕реЗ deterministic рд╣реИ (рдХреЛрдИ host filesystem existence checks рдирд╣реАрдВ), рдЬреЛ allow/deny рдЕрдВрддрд░реЛрдВ рд╕реЗ file-existence oracle behavior рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред Default safe bins рдХреЗ рд▓рд┐рдП file-oriented options denied рд╣реИрдВ; long options fail-closed validate рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (unknown flags рдФрд░ ambiguous abbreviations рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред

Safe-bin profile рдХреЗ рдЕрдиреБрд╕рд╛рд░ denied flags:

  • grep: --dereference-recursive, --directories, --exclude-from, --file, --recursive, -R, -d, -f, -r
  • jq: --argfile, --from-file, --library-path, --rawfile, --slurpfile, -L, -f
  • sort: --compress-program, --files0-from, --output, --random-source, --temporary-directory, -T, -o
  • wc: --files0-from

Safe bins stdin-only segments рдХреЗ рд▓рд┐рдП execution time рдкрд░ argv tokens рдХреЛ literal text рдХреЗ рд░реВрдк рдореЗрдВ treat рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдмрд╛рдзреНрдп рдХрд░рддреЗ рд╣реИрдВ (рдХреЛрдИ globbing рдирд╣реАрдВ рдФрд░ рдХреЛрдИ $VARS expansion рдирд╣реАрдВ), рдЗрд╕рд▓рд┐рдП * рдпрд╛ $HOME/... рдЬреИрд╕реЗ patterns рдХрд╛ рдЙрдкрдпреЛрдЧ file reads рдЫрд┐рдкрд╛рдХрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред

Trusted binary directories

Safe bins рдХреЛ trusted binary directories (system defaults рдФрд░ optional tools.exec.safeBinTrustedDirs) рд╕реЗ resolve рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред PATH entries рдХрднреА auto-trusted рдирд╣реАрдВ рд╣реЛрддреАрдВред Default trusted directories рдЬрд╛рдирдмреВрдЭрдХрд░ рдиреНрдпреВрдирддрдо рд╣реИрдВ: /bin, /usr/binред рдпрджрд┐ рдЖрдкрдХрд╛ safe-bin executable package-manager/user paths рдореЗрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП /opt/homebrew/bin, /usr/local/bin, /opt/local/bin, /snap/bin), рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ tools.exec.safeBinTrustedDirs рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

Shell chaining, wrappers, рдФрд░ multiplexers

Shell chaining (&&, ||, ;) рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ рдЬрдм рд╣рд░ top-level segment allowlist рдХреЛ satisfy рдХрд░рддрд╛ рд╣реИ (safe bins рдпрд╛ skill auto-allow рд╕рд╣рд┐рдд)ред Redirections allowlist mode рдореЗрдВ unsupported рд░рд╣рддреА рд╣реИрдВред Command substitution ($() / backticks) allowlist parsing рдХреЗ рджреМрд░рд╛рди рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ, double quotes рдХреЗ рдЕрдВрджрд░ рднреА; рдпрджрд┐ рдЖрдкрдХреЛ literal $() text рдЪрд╛рд╣рд┐рдП рддреЛ single quotes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

macOS companion-app approvals рдкрд░, shell control рдпрд╛ expansion syntax (&&, ||, ;, |, `, $, <, >, (, )) рд╡рд╛рд▓рд╛ raw shell text allowlist miss рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ shell binary рд╕реНрд╡рдпрдВ allowlisted рди рд╣реЛред

Shell wrappers (bash|sh|zsh ... -c/-lc) рдХреЗ рд▓рд┐рдП, request-scoped env overrides рдПрдХ рдЫреЛрдЯреА explicit allowlist (TERM, LANG, LC_*, COLORTERM, NO_COLOR, FORCE_COLOR) рддрдХ рдШрдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

Allowlist mode рдореЗрдВ allow-always decisions рдХреЗ рд▓рд┐рдП, рдЬреНрдЮрд╛рдд dispatch wrappers (env, flock, nice, nohup, stdbuf, timeout) wrapper path рдХреЗ рдмрдЬрд╛рдп inner executable path рдХреЛ persist рдХрд░рддреЗ рд╣реИрдВред Shell multiplexers (busybox, toybox) shell applets (sh, ash, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрд░рд╣ unwrapped рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдХрд┐рд╕реА wrapper рдпрд╛ multiplexer рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ unwrap рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛, рддреЛ рдХреЛрдИ allowlist entry automatically persisted рдирд╣реАрдВ рд╣реЛрддреАред

рдпрджрд┐ рдЖрдк python3 рдпрд╛ node рдЬреИрд╕реЗ interpreters рдХреЛ allowlist рдХрд░рддреЗ рд╣реИрдВ, рддреЛ tools.exec.strictInlineEval=true рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ рддрд╛рдХрд┐ inline eval рдХреЛ рдЕрднреА рднреА explicit approval рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред Strict mode рдореЗрдВ, allow-always рдЕрднреА рднреА benign interpreter/script invocations рдХреЛ persist рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди inline-eval carriers automatically persisted рдирд╣реАрдВ рд╣реЛрддреЗред

Safe bins рдмрдирд╛рдо allowlist

рд╡рд┐рд╖рдп tools.exec.safeBins Allowlist (exec-approvals.json)
рд▓рдХреНрд╖реНрдп рд╕рдВрдХреАрд░реНрдг stdin filters рдХреЛ auto-allow рдХрд░рдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ executables рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ trust рдХрд░рдирд╛
Match type Executable name + safe-bin argv policy Resolved executable path glob, рдпрд╛ PATH-invoked commands рдХреЗ рд▓рд┐рдП bare command-name glob
Argument scope Safe-bin profile рдФрд░ literal-token rules рджреНрд╡рд╛рд░рд╛ restricted Default рд░реВрдк рд╕реЗ path match; optional argPattern parsed argv рдХреЛ restrict рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг head, tail, tr, wc jq, python3, node, ffmpeg, custom CLIs
рд╕рд░реНрд╡реЛрддреНрддрдо рдЙрдкрдпреЛрдЧ Pipelines рдореЗрдВ low-risk text transforms рд╡реНрдпрд╛рдкрдХ behavior рдпрд╛ side effects рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА tool

Configuration location:

  • safeBins config (tools.exec.safeBins рдпрд╛ per-agent agents.list[].tools.exec.safeBins) рд╕реЗ рдЖрддрд╛ рд╣реИред
  • safeBinTrustedDirs config (tools.exec.safeBinTrustedDirs рдпрд╛ per-agent agents.list[].tools.exec.safeBinTrustedDirs) рд╕реЗ рдЖрддрд╛ рд╣реИред
  • safeBinProfiles config (tools.exec.safeBinProfiles рдпрд╛ per-agent agents.list[].tools.exec.safeBinProfiles) рд╕реЗ рдЖрддрд╛ рд╣реИред Per-agent profile keys global keys рдХреЛ override рдХрд░рддреА рд╣реИрдВред
  • allowlist entries host-local approvals file рдореЗрдВ agents.<id>.allowlist рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд░рд╣рддреА рд╣реИрдВ (рдпрд╛ Control UI / openclaw approvals allowlist ... рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред
  • openclaw security audit tools.exec.safe_bins_interpreter_unprofiled рдХреЗ рд╕рд╛рде рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдЬрдм interpreter/runtime bins explicit profiles рдХреЗ рдмрд┐рдирд╛ safeBins рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред
  • openclaw doctor --fix missing custom safeBinProfiles.<bin> entries рдХреЛ {} рдХреЗ рд░реВрдк рдореЗрдВ scaffold рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдмрд╛рдж рдореЗрдВ review рдФрд░ tighten рдХрд░реЗрдВ)ред Interpreter/runtime bins auto-scaffolded рдирд╣реАрдВ рд╣реЛрддреЗред

Custom profile рдЙрджрд╛рд╣рд░рдг: OC_I18N_900000 рдпрджрд┐ рдЖрдк jq рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ safeBins рдореЗрдВ opt рдХрд░рддреЗ рд╣реИрдВ, рддреЛ OpenClaw рдЕрднреА рднреА safe-bin mode рдореЗрдВ env builtin рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ jq -n env explicit allowlist path рдпрд╛ approval prompt рдХреЗ рдмрд┐рдирд╛ host process environment dump рди рдХрд░ рд╕рдХреЗред

Interpreter/runtime commands

Approval-backed interpreter/runtime runs рдЬрд╛рдирдмреВрдЭрдХрд░ conservative рд╣реИрдВ:

  • Exact argv/cwd/env context рд╣рдореЗрд╢рд╛ bound рд╣реЛрддрд╛ рд╣реИред
  • Direct shell script рдФрд░ direct runtime file forms best-effort рд░реВрдк рд╕реЗ рдПрдХ concrete local file snapshot рд╕реЗ bound рд╣реЛрддреЗ рд╣реИрдВред
  • Common package-manager wrapper forms рдЬреЛ рдЕрднреА рднреА рдПрдХ direct local file рдкрд░ resolve рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП pnpm exec, pnpm node, npm exec, npx) binding рд╕реЗ рдкрд╣рд▓реЗ unwrapped рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • рдпрджрд┐ OpenClaw interpreter/runtime command рдХреЗ рд▓рд┐рдП рдареАрдХ рдПрдХ concrete local file identify рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП package scripts, eval forms, runtime-specific loader chains, рдпрд╛ ambiguous multi-file forms), рддреЛ approval-backed execution рдЙрд╕ semantic coverage рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп denied рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИред
  • рдЙрди workflows рдХреЗ рд▓рд┐рдП, sandboxing, рдЕрд▓рдЧ host boundary, рдпрд╛ explicit trusted allowlist/full workflow рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ рдЬрд╣рд╛рдБ operator рд╡реНрдпрд╛рдкрдХ runtime semantics рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЬрдм approvals рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ рд╣реИрдВ, exec tool рддреБрд░рдВрдд approval id рдХреЗ рд╕рд╛рде return рдХрд░рддрд╛ рд╣реИред рдмрд╛рдж рдХреЗ approved-run system events (Exec finished, рдФрд░ configured рд╣реЛрдиреЗ рдкрд░ Exec running) correlate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ id рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ timeout рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдИ decision рдирд╣реАрдВ рдЖрддрд╛, рддреЛ request рдХреЛ approval timeout рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ terminal host-command denial рдХреЗ рд░реВрдк рдореЗрдВ surfaced рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Originating session рд╡рд╛рд▓реЗ main-agent async approvals рдХреЗ рд▓рд┐рдП, OpenClaw рдЙрд╕ session рдХреЛ internal followup рдХреЗ рд╕рд╛рде resume рднреА рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ agent рджреЗрдЦ рд╕рдХреЗ рдХрд┐ command рдмрд╛рдж рдореЗрдВ missing result repair рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЪрд▓реА рд╣реА рдирд╣реАрдВред

Followup delivery behavior

Approved async exec finish рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, OpenClaw рдЙрд╕реА session рдореЗрдВ followup agent turn рднреЗрдЬрддрд╛ рд╣реИред Denied async approvals denial status рдХреЗ рд▓рд┐рдП рд╡рд╣реА main-session followup path рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ elevated runtime handoffs register рдирд╣реАрдВ рдХрд░рддреЗ рдФрд░ command рдирд╣реАрдВ рдЪрд▓рд╛рддреЗред Resumable main session рдХреЗ рдмрд┐рдирд╛ denials рдпрд╛ рддреЛ suppressed рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдХреЛрдИ safe direct route рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдЙрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ reported рд╣реЛрддреЗ рд╣реИрдВред

  • рдпрджрд┐ valid external delivery target рдореМрдЬреВрдж рд╣реИ (deliverable channel plus target to), followup delivery рдЙрд╕реА channel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред
  • Webchat-only рдпрд╛ external target рдХреЗ рдмрд┐рдирд╛ internal-session flows рдореЗрдВ, followup delivery session-only рд░рд╣рддреА рд╣реИ (deliver: false)ред
  • рдпрджрд┐ caller рдХреЛрдИ resolvable external channel рди рд╣реЛрдиреЗ рдкрд░ strict external delivery explicitly request рдХрд░рддрд╛ рд╣реИ, рддреЛ request INVALID_REQUEST рдХреЗ рд╕рд╛рде fail рд╣реЛрддреА рд╣реИред
  • рдпрджрд┐ bestEffortDeliver enabled рд╣реИ рдФрд░ рдХреЛрдИ external channel resolve рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛, рддреЛ fail рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп delivery session-only рдореЗрдВ downgraded рд╣реЛ рдЬрд╛рддреА рд╣реИред

Chat channels рдореЗрдВ approval forwarding

рдЖрдк exec approval prompts рдХреЛ рдХрд┐рд╕реА рднреА chat channel (plugin channels рд╕рд╣рд┐рдд) рдореЗрдВ forward рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ /approve рдХреЗ рд╕рд╛рде approve рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ normal outbound delivery pipeline рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

Config: OC_I18N_900001 Chat рдореЗрдВ reply рдХрд░реЗрдВ: OC_I18N_900002 /approve command exec approvals рдФрд░ plugin approvals рджреЛрдиреЛрдВ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдпрджрд┐ ID рдХрд┐рд╕реА pending exec approval рд╕реЗ match рдирд╣реАрдВ рдХрд░рддреА, рддреЛ рдпрд╣ automatically plugin approvals рдХреЛ check рдХрд░рддрд╛ рд╣реИред

Plugin approval forwarding

Plugin approval forwarding exec approvals рдХреА рддрд░рд╣ рд╣реА delivery pipeline рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдЕрдкрдиреА independent config approvals.plugin рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╣реЛрддреА рд╣реИред рдПрдХ рдХреЛ enable рдпрд╛ disable рдХрд░рдиреЗ рд╕реЗ рджреВрд╕рд░реЗ рдкрд░ рдЕрд╕рд░ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред Plugin-authoring behavior, request fields, рдФрд░ decision semantics рдХреЗ рд▓рд┐рдП, Plugin permission requests рджреЗрдЦреЗрдВред OC_I18N_900003 Config shape approvals.exec рдХреЗ рд╕рдорд╛рди рд╣реИ: enabled, mode, agentFilter, sessionFilter, рдФрд░ targets рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

Shared interactive replies support рдХрд░рдиреЗ рд╡рд╛рд▓реЗ channels exec рдФрд░ plugin approvals рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╣реА approval buttons render рдХрд░рддреЗ рд╣реИрдВред Shared interactive UI рдХреЗ рдмрд┐рдирд╛ channels /approve instructions рдХреЗ рд╕рд╛рде plain text рдкрд░ fall back рдХрд░рддреЗ рд╣реИрдВред Plugin approval requests available decisions рдХреЛ restrict рдХрд░ рд╕рдХрддреА рд╣реИрдВред Approval surfaces request рдХреЗ declared decision set рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ Gateway рдРрд╕реЗ decision рдХреЛ submit рдХрд░рдиреЗ рдХреЗ attempts reject рдХрд░рддрд╛ рд╣реИ рдЬреЛ offered рдирд╣реАрдВ рдерд╛ред

рдХрд┐рд╕реА рднреА channel рдкрд░ same-chat approvals

рдЬрдм exec рдпрд╛ plugin approval request deliverable chat surface рд╕реЗ originate рд╣реЛрддреА рд╣реИ, рддреЛ рд╡рд╣реА chat default рд░реВрдк рд╕реЗ рдЗрд╕реЗ /approve рдХреЗ рд╕рд╛рде approve рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдореМрдЬреВрджрд╛ Web UI рдФрд░ terminal UI flows рдХреЗ рдЕрд▓рд╛рд╡рд╛ Slack, Matrix, рдФрд░ Microsoft Teams рдЬреИрд╕реЗ channels рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рд╕рд╛рдЭрд╛ рдЯреЗрдХреНрд╕реНрдЯ-рдХрдорд╛рдВрдб рдкрде рдЙрд╕ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЪреИрдирд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдореВрд▓ рдЪреИрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдорд╛рдВрдб рднреЗрдЬ рд╕рдХрддреА рд╣реИ рдФрд░ рдЬрд╡рд╛рдм рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреА рд╣реИ, рддреЛ рдЕрдиреБрдореЛрджрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдм рдХреЗрд╡рд▓ рд▓рдВрдмрд┐рдд рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдиреЗрдЯрд┐рд╡ рдбрд┐рд▓реАрд╡рд░реА рдЕрдбреИрдкреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред

Discord рдФрд░ Telegram рднреА рдЙрд╕реА рдЪреИрдЯ рдореЗрдВ /approve рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЪреИрдирд▓ рддрдм рднреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╣рд▓ рдХреА рдЧрдИ рдЕрдиреБрдореЛрджрдХ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдбрд┐рд▓реАрд╡рд░реА рдЕрдХреНрд╖рдо рд╣реЛред

Telegram рдФрд░ рдЕрдиреНрдп рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реАрдзреЗ Gateway рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ fallback рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреЗрд╡рд▓ "approval not found" рд╡рд┐рдлрд▓рддрд╛рдУрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ exec рдЕрдиреБрдореЛрджрди рдЕрд╕реНрд╡реАрдХреГрддрд┐/рддреНрд░реБрдЯрд┐ рдЪреБрдкрдЪрд╛рдк Plugin рдЕрдиреБрдореЛрджрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреАред

рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдбрд┐рд▓реАрд╡рд░реА

рдХреБрдЫ рдЪреИрдирд▓ рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдиреЗрдЯрд┐рд╡ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЭрд╛ рдЙрд╕реА-рдЪреИрдЯ /approve рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдКрдкрд░ рдЕрдиреБрдореЛрджрдХ DM, рдореВрд▓-рдЪреИрдЯ fanout, рдФрд░ рдЪреИрдирд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди UX рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдЬрдм рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХрд╛рд░реНрдб/рдмрдЯрди рдЙрдкрд▓рдмреНрдз рд╣реЛрдВ, рддреЛ рд╡рд╣реА рдиреЗрдЯрд┐рд╡ UI рдкреНрд░рд╛рдердорд┐рдХ рдПрдЬреЗрдВрдЯ-рд╕рд╛рдордирд╛ рдкрде рд╣реЛрддрд╛ рд╣реИред рдПрдЬреЗрдВрдЯ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕рд╛рджрд╛ рдЪреИрдЯ /approve рдХрдорд╛рдВрдб echo рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдЯреВрд▓ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рди рдХрд╣реЗ рдХрд┐ рдЪреИрдЯ рдЕрдиреБрдореЛрджрди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рдЕрдиреБрдореЛрджрди рд╣реА рдмрдЪрд╛ рд╣реБрдЖ рдПрдХрдорд╛рддреНрд░ рдкрде рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реИ рд▓реЗрдХрд┐рди рдореВрд▓ рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдиреЗрдЯрд┐рд╡ runtime рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИ, рддреЛ OpenClaw рд╕реНрдерд╛рдиреАрдп deterministic /approve prompt рдХреЛ рджреГрд╢реНрдпрдорд╛рди рд░рдЦрддрд╛ рд╣реИред рдпрджрд┐ рдиреЗрдЯрд┐рд╡ runtime рд╕рдХреНрд░рд┐рдп рд╣реИ рдФрд░ рдбрд┐рд▓реАрд╡рд░реА рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрд┐рд╕реА target рдХреЛ рдХрд╛рд░реНрдб рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛, рддреЛ OpenClaw рдЙрд╕реА рдЪреИрдЯ рдореЗрдВ fallback notice рднреЗрдЬрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдареАрдХ /approve <id> <decision> рдХрдорд╛рдВрдб рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдЕрдиреБрд░реЛрдз рдлрд┐рд░ рднреА рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рд╕рд╛рдорд╛рдиреНрдп рдореЙрдбрд▓:

  • host exec policy рдЕрдм рднреА рддрдп рдХрд░рддреА рд╣реИ рдХрд┐ exec рдЕрдиреБрдореЛрджрди рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ
  • approvals.exec рдЕрдиреБрдореЛрджрди prompts рдХреЛ рдЕрдиреНрдп рдЪреИрдЯ destinations рдкрд░ forward рдХрд░рдиреЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
  • channels.<channel>.execApprovals рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ Discord, Slack, Telegram, рдФрд░ рд╕рдорд╛рди рдЪреИрдирд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЗрдЯрд┐рд╡ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдХреНрд╖рдо рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ
  • Slack Plugin рдЕрдиреБрдореЛрджрди Slack рдХреЗ рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЕрдиреБрд░реЛрдз Slack рд╕реЗ рдЖрддрд╛ рд╣реИ рдФрд░ Slack Plugin рдЕрдиреБрдореЛрджрдХ рд╣рд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ; approvals.plugin Plugin рдЕрдиреБрдореЛрджрдиреЛрдВ рдХреЛ Slack sessions рдпрд╛ targets рдкрд░ route рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА Slack exec рдЕрдиреБрдореЛрджрди рдЕрдХреНрд╖рдо рд╣реЛрдВ
  • Google Chat рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХрд╛рд░реНрдб Google Chat spaces рдпрд╛ threads рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ exec рдФрд░ Plugin рдЕрдиреБрдореЛрджрдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ, рдЬрдм рд╕реНрдерд┐рд░ users/<id> рдЕрдиреБрдореЛрджрдХ dm.allowFrom рдпрд╛ defaultTo рд╕реЗ рд╣рд▓ рд╣реЛрддреЗ рд╣реИрдВ; рд╡реЗ рдирд┐рд░реНрдгрдпреЛрдВ рдХреЗ рд▓рд┐рдП reaction events рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ
  • WhatsApp рдФрд░ Signal reaction рдЕрдиреБрдореЛрджрди рдбрд┐рд▓реАрд╡рд░реА approvals.exec рдФрд░ approvals.plugin рд╕реЗ gated рд╣реЛрддреА рд╣реИ; рдЙрдирдХреЗ рдкрд╛рд╕ channels.<channel>.execApprovals blocks рдирд╣реАрдВ рд╣реЛрддреЗ

рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ DM-first рдбрд┐рд▓реАрд╡рд░реА рдХреЛ рдЕрдкрдиреЗ-рдЖрдк рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдпреЗ рд╕рднреА рд╕рддреНрдп рд╣реЛрдВ:

  • рдЪреИрдирд▓ рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдбрд┐рд▓реАрд╡рд░реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
  • рдЕрдиреБрдореЛрджрдХ рд╕реНрдкрд╖реНрдЯ execApprovals.approvers рдпрд╛ owner identity рдЬреИрд╕реЗ commands.ownerAllowFrom рд╕реЗ рд╣рд▓ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
  • channels.<channel>.execApprovals.enabled unset рд╣реИ рдпрд╛ "auto" рд╣реИ

рдХрд┐рд╕реА рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП enabled: false рд╕реЗрдЯ рдХрд░реЗрдВред рдЕрдиреБрдореЛрджрдХ рд╣рд▓ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ force-enable рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП enabled: true рд╕реЗрдЯ рдХрд░реЗрдВред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдореВрд▓-рдЪреИрдЯ рдбрд┐рд▓реАрд╡рд░реА channels.<channel>.execApprovals.target рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░рд╣рддреА рд╣реИред

FAQ: рдЪреИрдЯ рдЕрдиреБрдореЛрджрдиреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ exec рдЕрдиреБрдореЛрджрди config рдХреНрдпреЛрдВ рд╣реИрдВ?

  • Discord: channels.discord.execApprovals.*
  • Slack: channels.slack.execApprovals.*
  • Telegram: channels.telegram.execApprovals.*
  • Google Chat: рд╕реНрдерд┐рд░ рдЕрдиреБрдореЛрджрдХреЛрдВ рдХреЛ channels.googlechat.dm.allowFrom рдпрд╛ channels.googlechat.defaultTo рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ; рдХреЛрдИ execApprovals block рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ
  • WhatsApp: рдЕрдиреБрдореЛрджрди prompts рдХреЛ WhatsApp рдкрд░ route рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП approvals.exec рдФрд░ approvals.plugin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • Signal: рдЕрдиреБрдореЛрджрди prompts рдХреЛ Signal рдкрд░ route рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП approvals.exec рдФрд░ approvals.plugin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдпреЗ рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЭрд╛ рдЙрд╕реА-рдЪреИрдЯ /approve flow рдФрд░ рд╕рд╛рдЭрд╛ рдЕрдиреБрдореЛрджрди buttons рдХреЗ рдКрдкрд░ DM routing рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ channel fanout рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рд╕рд╛рдЭрд╛ рд╡реНрдпрд╡рд╣рд╛рд░:

  • Slack, Matrix, Microsoft Teams, рдФрд░ рд╕рдорд╛рди deliverable chats рдЙрд╕реА-рдЪреИрдЯ /approve рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп channel auth model рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
  • рдЬрдм рдХреЛрдИ рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ auto-enable рд╣реЛрддрд╛ рд╣реИ, рддреЛ default рдиреЗрдЯрд┐рд╡ delivery target рдЕрдиреБрдореЛрджрдХ DMs рд╣реЛрддреЗ рд╣реИрдВ
  • Discord рдФрд░ Telegram рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рд╣рд▓ рдХрд┐рдП рдЧрдП рдЕрдиреБрдореЛрджрдХ approve рдпрд╛ deny рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  • Discord рдЕрдиреБрдореЛрджрдХ рд╕реНрдкрд╖реНрдЯ (execApprovals.approvers) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ commands.ownerAllowFrom рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
  • Telegram рдЕрдиреБрдореЛрджрдХ рд╕реНрдкрд╖реНрдЯ (execApprovals.approvers) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ commands.ownerAllowFrom рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
  • Slack рдЕрдиреБрдореЛрджрдХ рд╕реНрдкрд╖реНрдЯ (execApprovals.approvers) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ commands.ownerAllowFrom рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
  • Slack Plugin рдЕрдиреБрдореЛрджрди DMs allowFrom рдФрд░ account default routing рд╕реЗ Slack Plugin рдЕрдиреБрдореЛрджрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, Slack exec рдЕрдиреБрдореЛрджрдХреЛрдВ рдХрд╛ рдирд╣реАрдВ
  • Slack рдиреЗрдЯрд┐рд╡ buttons рдЕрдиреБрдореЛрджрди id kind рдХреЛ preserve рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП plugin: ids рджреВрд╕рд░реА Slack-local fallback layer рдХреЗ рдмрд┐рдирд╛ Plugin рдЕрдиреБрдореЛрджрдиреЛрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  • Google Chat рдиреЗрдЯрд┐рд╡ cards message text рдореЗрдВ manual /approve fallback рдХреЛ preserve рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди card button callbacks рдХреЗрд╡рд▓ opaque action tokens рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ; approval id рдФрд░ decision server-side pending state рд╕реЗ recover рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
  • WhatsApp emoji рдЕрдиреБрдореЛрджрди exec рдФрд░ Plugin prompts рджреЛрдиреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рддрдм рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ рдЬрдм matching top-level forwarding family рд╕рдХреНрд╖рдо рд╣реЛ рдФрд░ WhatsApp рдкрд░ route рдХрд░реЗ; target-only WhatsApp forwarding рд╕рд╛рдЭрд╛ forwarding path рдкрд░ рд░рд╣рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдЙрд╕реА рдиреЗрдЯрд┐рд╡ origin target рд╕реЗ match рди рдХрд░реЗ
  • Signal reaction рдЕрдиреБрдореЛрджрди exec рдФрд░ Plugin prompts рджреЛрдиреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рддрдм рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ рдЬрдм matching top-level forwarding family рд╕рдХреНрд╖рдо рд╣реЛ рдФрд░ Signal рдкрд░ route рдХрд░реЗред Direct same-chat Signal exec approvals explicit approvers рдХреЗ рдмрд┐рдирд╛ local /approve fallback рдХреЛ suppress рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; Signal reaction resolution рдЕрдм рднреА channels.signal.allowFrom рдпрд╛ defaultTo рд╕реЗ explicit Signal approvers рдорд╛рдВрдЧрддрд╛ рд╣реИред
  • Matrix рдиреЗрдЯрд┐рд╡ DM/channel routing рдФрд░ reaction shortcuts exec рдФрд░ Plugin рдЕрдиреБрдореЛрджрди рджреЛрдиреЛрдВ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ; Plugin authorization рдЕрдм рднреА channels.matrix.dm.allowFrom рд╕реЗ рдЖрддрд╛ рд╣реИ
  • Matrix рдиреЗрдЯрд┐рд╡ prompts рдкрд╣рд▓реЗ prompt event рдкрд░ com.openclaw.approval custom event content рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ OpenClaw-aware Matrix clients structured approval state рдкрдврд╝ рд╕рдХреЗрдВ рдЬрдмрдХрд┐ stock clients plain-text /approve fallback рд░рдЦрддреЗ рд╣реИрдВ
  • requester рдХреЛ рдЕрдиреБрдореЛрджрдХ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ
  • рдореВрд▓ рдЪреИрдЯ /approve рд╕реЗ рд╕реАрдзреЗ approve рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрдм рд╡рд╣ рдЪреИрдЯ рдкрд╣рд▓реЗ рд╕реЗ commands рдФрд░ replies рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ
  • рдиреЗрдЯрд┐рд╡ Discord approval buttons approval id kind рдХреЗ рдЕрдиреБрд╕рд╛рд░ route рдХрд░рддреЗ рд╣реИрдВ: plugin: ids рд╕реАрдзреЗ Plugin approvals рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдмрд╛рдХреА рд╕рдм exec approvals рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ
  • рдиреЗрдЯрд┐рд╡ Telegram approval buttons /approve рдЬреИрд╕рд╛ рд╣реА bounded exec-to-plugin fallback follow рдХрд░рддреЗ рд╣реИрдВ
  • рдЬрдм рдиреЗрдЯрд┐рд╡ target origin-chat delivery рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ approval prompts command text рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ
  • рд▓рдВрдмрд┐рдд exec approvals default рд░реВрдк рд╕реЗ 30 minutes рдХреЗ рдмрд╛рдж expire рд╣реЛрддреЗ рд╣реИрдВ
  • рдпрджрд┐ рдХреЛрдИ operator UI рдпрд╛ configured approval client рдЕрдиреБрд░реЛрдз accept рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рддреЛ prompt askFallback рдкрд░ fallback рдХрд░рддрд╛ рд╣реИ

рд╕рдВрд╡реЗрджрдирд╢реАрд▓ owner-only group commands рдЬреИрд╕реЗ /diagnostics рдФрд░ /export-trajectory рдЕрдиреБрдореЛрджрди prompts рдФрд░ final results рдХреЗ рд▓рд┐рдП private owner routing рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред OpenClaw рдкрд╣рд▓реЗ рдЙрд╕реА surface рдкрд░ private route рдЖрдЬрд╝рдорд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ owner рдиреЗ command рдЪрд▓рд╛рдИ рдереАред рдпрджрд┐ рдЙрд╕ surface рдкрд░ рдХреЛрдИ private owner route рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ commands.ownerAllowFrom рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз owner route рдкрд░ fallback рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ Discord group command рдлрд┐рд░ рднреА approval рдФрд░ result рдХреЛ owner рдХреЗ Telegram DM рдкрд░ рднреЗрдЬ рд╕рдХреЗ рдЬрдм Telegram configured primary private interface рд╣реЛред group chat рдХреЛ рдХреЗрд╡рд▓ рдЫреЛрдЯрд╛ acknowledgement рдорд┐рд▓рддрд╛ рд╣реИред

Telegram рдЕрдиреБрдореЛрджрдХ DMs (target: "dm") рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреБрдореЛрджрди рдкреНрд░реЙрдореНрдкреНрдЯ рдореВрд▓ Telegram рдЪреИрдЯ/рдЯреЙрдкрд┐рдХ рдореЗрдВ рднреА рджрд┐рдЦрд╛рдИ рджреЗрдВ, рддреЛ рдЖрдк channel рдпрд╛ both рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Telegram рдлрд╝реЛрд░рдо рдЯреЙрдкрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП, OpenClaw рдЕрдиреБрдореЛрджрди рдкреНрд░реЙрдореНрдкреНрдЯ рдФрд░ рдЕрдиреБрдореЛрджрди рдХреЗ рдмрд╛рдж рдХреЗ рдлрд╝реЙрд▓реЛ-рдЕрдк рдХреЗ рд▓рд┐рдП рдЯреЙрдкрд┐рдХ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИред

рджреЗрдЦреЗрдВ:

macOS IPC рдкреНрд░рд╡рд╛рд╣

OC_I18N_900004 рд╕реБрд░рдХреНрд╖рд╛ рдиреЛрдЯреНрд╕:

  • Unix рд╕реЙрдХреЗрдЯ рдореЛрдб 0600, рдЯреЛрдХрди exec-approvals.json рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрддред
  • рд╕рдорд╛рди-UID рдкреАрдпрд░ рдЬрд╛рдБрдЪред
  • рдЪреИрд▓реЗрдВрдЬ/рд░рд┐рд╕реНрдкреЙрдиреНрд╕ (nonce + HMAC token + request hash) + рдЫреЛрдЯрд╛ TTLред

рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди

рдЕрдиреБрдореЛрджрди рд▓рдХреНрд╖реНрдп рдкрд░ accountId рдФрд░ threadId рдХрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ?

рдЬрдм рдЪреИрдирд▓ рдореЗрдВ рдХрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдкрд╣рдЪрд╛рдиреЗрдВ рд╣реЛрдВ рдФрд░ рдЕрдиреБрдореЛрджрди рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЦрд╛рддреЗ рд╕реЗ рд╣реА рднреЗрдЬрдирд╛ рд╣реЛ, рддрдм accountId рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЬрдм рдЧрдВрддрд╡реНрдп рдЯреЙрдкрд┐рдХреНрд╕ рдпрд╛ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реЛ рдФрд░ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЪреИрдЯ рдХреЗ рдмрдЬрд╛рдп рдЙрд╕реА рдереНрд░реЗрдб рдХреЗ рдЕрдВрджрд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрдм threadId рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдПрдХ рдареЛрд╕ Telegram рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд░рдо рдЯреЙрдкрд┐рдХреНрд╕ рдФрд░ рджреЛ Telegram bot рдЦрд╛рддреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдСрдкрд░реЗрд╢рдВрд╕ рд╕реБрдкрд░рдЧреНрд░реБрдк рд╣реИред to рдорд╛рди рд╕реБрдкрд░рдЧреНрд░реБрдк рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИ, accountId bot рдЦрд╛рддрд╛ рдЪреБрдирддрд╛ рд╣реИ, рдФрд░ threadId рдлрд╝реЛрд░рдо рдЯреЙрдкрд┐рдХ рдЪреБрдирддрд╛ рд╣реИ: OC_I18N_900005 рдЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде, рдлрд╝реЙрд░рд╡рд░реНрдб рдХрд┐рдП рдЧрдП exec рдЕрдиреБрдореЛрджрди ops-bot Telegram рдЦрд╛рддреЗ рджреНрд╡рд╛рд░рд╛ рдЪреИрдЯ -1001234567890 рдХреЗ рдЯреЙрдкрд┐рдХ 77 рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред accountId рдХреЗ рдмрд┐рдирд╛ рд▓рдХреНрд╖реНрдп рдЪреИрдирд▓ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ threadId рдХреЗ рдмрд┐рдирд╛ рд▓рдХреНрд╖реНрдп рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЧрдВрддрд╡реНрдп рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред

рдЬрдм рдЕрдиреБрдореЛрджрди рдХрд┐рд╕реА рд╕рддреНрд░ рдореЗрдВ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЙрд╕ рд╕рддреНрд░ рдореЗрдВ рдХреЛрдИ рднреА рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдореЛрджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдирд╣реАрдВред рд╕рддреНрд░ рдбрд┐рд▓реАрд╡рд░реА рдХреЗрд╡рд▓ рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдкреНрд░реЙрдореНрдкреНрдЯ рдХрд╣рд╛рдБ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдЙрд╕ рдЪреИрдЯ рдХреЗ рд╣рд░ рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЛ рдЕрдиреБрдореЛрджрди рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рджреЗрддреАред

рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рди-рдЪреИрдЯ /approve рдХреЗ рд▓рд┐рдП, рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдЙрд╕ рдЪреИрдирд▓ рд╕рддреНрд░ рдореЗрдВ рдХрдорд╛рдВрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдЕрдзрд┐рдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЪреИрдирд▓ рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдореЛрджрди рдЕрдиреБрдореЛрджрдХреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЕрдиреБрдореЛрджрдХ /approve рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рдЙрд╕ рд╕рддреНрд░ рдореЗрдВ рдЕрдиреНрдпрдерд╛ рдХрдорд╛рдВрдб-рдЕрдзрд┐рдХреГрдд рди рд╣реЛрдВред

рдХреБрдЫ рдЪреИрдирд▓ рдЕрдзрд┐рдХ рд╕рдЦреНрдд рд╣реЛрддреЗ рд╣реИрдВред Discord, Telegram, Matrix, Slack рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди DMs, рдФрд░ рд╕рдорд╛рди рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрдореЛрджрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд░рд┐рдЬрд╝реЙрд▓реНрд╡ рдХреА рдЧрдИ рдЕрдиреБрдореЛрджрдХ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Telegram рдлрд╝реЛрд░рдо-рдЯреЙрдкрд┐рдХ рдЕрдиреБрдореЛрджрди рдкреНрд░реЙрдореНрдкреНрдЯ рдЯреЙрдкрд┐рдХ рдореЗрдВ рд╕рднреА рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ channels.telegram.execApprovals.approvers рдпрд╛ commands.ownerAllowFrom рд╕реЗ рд░рд┐рдЬрд╝реЙрд▓реНрд╡ рдХрд┐рдП рдЧрдП рд╕рдВрдЦреНрдпрд╛рддреНрдордХ Telegram рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ IDs рд╣реА рдЙрд╕реЗ рдЕрдиреБрдореЛрджрд┐рдд рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

Was this useful?
On this page

On this page