# Exec Approval Setup — Crash-bot## WhyCrash-bot-public (server channel agent) currently has no exec capabilities. We need to enable exec with approval gating so Crash can build/configure the memory-wiki and professor agent system. The DM agent (crash-bot) will implement this.## What to Implement### 1. Host Approvals File: `~/.openclaw/exec-approvals.json````json{ "version": 1, "defaults": { "security": "deny", "ask": "on-miss", "askFallback": "deny", "autoAllowSkills": false }, "agents": { "crash-bot-public": { "security": "allowlist", "ask": "on-miss", "askFallback": "deny", "autoAllowSkills": true, "allowlist": [] }, "crash-bot": { "security": "allowlist", "ask": "on-miss", "askFallback": "allowlist", "autoAllowSkills": true, "allowlist": [ "ls", "cat", "head", "tail", "grep", "jq", "openclaw status", "openclaw wiki" ] } }}```**Key points:**- `crash-bot-public` starts with empty allowlist — every command requires approval- `crash-bot` (DM agent) has read-only commands pre-approved, everything else needs approval- Both agents use `ask: "on-miss"` — anything not on the allowlist prompts -topher for approval- `askFallback: "deny"` for public means if approval UI is unreachable, deny the command- Add commands to the allowlist over time as comfort grows### 2. Agent Config in openclaw.jsonFor crash-bot-public, enable exec with allowlist mode:```json{ "tools": { "exec": { "host": "gateway", "security": "allowlist", "ask": "on-miss" } }}```For crash-bot (DM), same but with broader allowlist:```json{ "tools": { "exec": { "host": "gateway", "security": "allowlist", "ask": "on-miss" } }}```### 3. Important Safety Notes- **Backup openclaw.json before editing** — use naming convention: `openclaw.json.pre-exec-approval-<YYYYMMDD-HHMMSS>`- **Use `jq` with `|=` update operator** — never filter pipes that collapse the full structure- **Write to temp file first, validate with `jq empty`, then swap**- **Restart gateway after changes**: `openclaw gateway restart`- **Test with a safe command first**: Ask crash-bot-public to run `ls ~/.openclaw/` and verify the approval prompt appears### 4. Approval FlowWhen crash-bot-public needs to run a command:1. Crash posts the command in the conversation with an approval request2. -topher types `/approve` to allow it3. Command executesWhen crash-bot (DM) needs elevated access:1. Same flow, but the approval shows in the DM channel2. Only -topher sees it (Matt and Kyle don't see DM approvals)### 5. What This EnablesOnce exec is set up, crash-bot can:- Enable and configure the memory-wiki plugin- Initialize the wiki vault- Run `openclaw wiki doctor` and `openclaw wiki status`- Set up the professor agent- Manage vault files and run bridge importsAll of these would still require -topher's approval until specific commands are added to the allowlist.### ContextThis is part of the Personal Knowledge Companion project. See `projects/life-view-dashboard.md` for full details.