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,-rjq:--argfile,--from-file,--library-path,--rawfile,--slurpfile,-L,-fsort:--compress-program,--files0-from,--output,--random-source,--temporary-directory,-T,-owc:--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:
safeBinsconfig (tools.exec.safeBinsрдпрд╛ per-agentagents.list[].tools.exec.safeBins) рд╕реЗ рдЖрддрд╛ рд╣реИредsafeBinTrustedDirsconfig (tools.exec.safeBinTrustedDirsрдпрд╛ per-agentagents.list[].tools.exec.safeBinTrustedDirs) рд╕реЗ рдЖрддрд╛ рд╣реИредsafeBinProfilesconfig (tools.exec.safeBinProfilesрдпрд╛ per-agentagents.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 audittools.exec.safe_bins_interpreter_unprofiledрдХреЗ рд╕рд╛рде рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдЬрдм interpreter/runtime bins explicit profiles рдХреЗ рдмрд┐рдирд╛safeBinsрдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВредopenclaw doctor --fixmissing customsafeBinProfiles.<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 рд╣реЛрддреА рд╣реИред - рдпрджрд┐
bestEffortDeliverenabled рд╣реИ рдФрд░ рдХреЛрдИ 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.pluginPlugin рдЕрдиреБрдореЛрджрдиреЛрдВ рдХреЛ 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>.execApprovalsblocks рдирд╣реАрдВ рд╣реЛрддреЗ
рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ DM-first рдбрд┐рд▓реАрд╡рд░реА рдХреЛ рдЕрдкрдиреЗ-рдЖрдк рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдпреЗ рд╕рднреА рд╕рддреНрдп рд╣реЛрдВ:
- рдЪреИрдирд▓ рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдбрд┐рд▓реАрд╡рд░реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
- рдЕрдиреБрдореЛрджрдХ рд╕реНрдкрд╖реНрдЯ
execApprovals.approversрдпрд╛ owner identity рдЬреИрд╕реЗcommands.ownerAllowFromрд╕реЗ рд╣рд▓ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ channels.<channel>.execApprovals.enabledunset рд╣реИ рдпрд╛"auto"рд╣реИ
рдХрд┐рд╕реА рдиреЗрдЯрд┐рд╡ рдЕрдиреБрдореЛрджрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП enabled: false рд╕реЗрдЯ рдХрд░реЗрдВред рдЕрдиреБрдореЛрджрдХ рд╣рд▓ рд╣реЛрдиреЗ рдкрд░
рдЗрд╕реЗ force-enable рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП enabled: true рд╕реЗрдЯ рдХрд░реЗрдВред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдореВрд▓-рдЪреИрдЯ рдбрд┐рд▓реАрд╡рд░реА
channels.<channel>.execApprovals.target рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░рд╣рддреА рд╣реИред
- Discord:
channels.discord.execApprovals.* - Slack:
channels.slack.execApprovals.* - Telegram:
channels.telegram.execApprovals.* - Google Chat: рд╕реНрдерд┐рд░ рдЕрдиреБрдореЛрджрдХреЛрдВ рдХреЛ
channels.googlechat.dm.allowFromрдпрд╛channels.googlechat.defaultToрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ; рдХреЛрдИexecApprovalsblock рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ - 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
/approvefallback рдХреЛ 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
/approvefallback рдХреЛ 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.approvalcustom event content рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ OpenClaw-aware Matrix clients structured approval state рдкрдврд╝ рд╕рдХреЗрдВ рдЬрдмрдХрд┐ stock clients plain-text/approvefallback рд░рдЦрддреЗ рд╣реИрдВ - 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 рдХрд░рддреЗ рд╣реИрдВ - рдЬрдм рдиреЗрдЯрд┐рд╡
targetorigin-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 рд╣реА рдЙрд╕реЗ рдЕрдиреБрдореЛрджрд┐рдд рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрдмрдВрдзрд┐рдд
- Exec рдЕрдиреБрдореЛрджрди тАФ рдореБрдЦреНрдп рдиреАрддрд┐ рдФрд░ рдЕрдиреБрдореЛрджрди рдкреНрд░рд╡рд╛рд╣
- Exec рдЯреВрд▓
- Elevated рдореЛрдб
- Skills тАФ skill-рд╕рдорд░реНрдерд┐рдд рдСрдЯреЛ-рдЕрдиреБрдорддрд┐ рд╡реНрдпрд╡рд╣рд╛рд░