#Exec denied for Agent

1 messages Β· Page 1 of 1 (latest)

gritty jetty
#

v2026.1.20-2
macOS 26.1
Run clawd in iTerminal with FDA with command ``clawdbot gateway --verbose"
Model: OpenAI Codex 5.2 (OAuth Account)

Got this log:
17:00:12 [tools] exec failed: exec denied: approval required (approval UI not available)

cinder tulipBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> βœ… Mark Solution

quartz jungleBOT
# gritty jetty v2026.1.20-2 macOS 26.1 Run clawd in iTerminal with FDA with command ``clawdbot ...

Based on the error exec denied: approval required (approval UI not available), this is related to Clawdbot's exec approvals system on macOS.

The issue: When running in iTerminal with FDA (Fast Device Access), the macOS Clawdbot app isn't running in the background to provide the approval UI. Exec approvals require the app to be running (or the daemon component that handles approvals).

Solutions:

  1. Run the Clawdbot macOS app alongside your terminal:

    • Launch the Clawdbot app normally, then run clawdbot gateway --verbose in iTerminal
    • The app provides the approval UI for system.run commands
  2. Pre-approve commands via CLI (no UI needed):

    # Check current approvals
    clawdbot approvals get
    
    # Allow a specific command (e.g., for Codex)
    
#
   clawdbot approvals allowlist add "/usr/bin/bash"
   # Or pattern-based:
   clawdbot approvals allowlist add "**/bin/*"
  1. Configure default behavior in ~/.clawdbot/exec-approvals.json:
    {
      "version": 1,
      "defaults": {
        "security": "allowlist",
        "ask": "on-miss"
      }
    }
    
#

Quick fix for Codex: If Codex is trying to run shell commands, add the commands it uses to your allowlist, or temporarily set security: "ask" to allow everything (less secure).

The macOS app needs to be running for the full approval UI, but CLI management works without it.

gritty jetty
#

FDA = Full Disc Access in Settings > Privacy is already approved!

quartz jungleBOT
# gritty jetty FDA = Full Disc Access in Settings > Privacy is already approved!

Ah, important clarification! The "approval UI" in that error message is Clawdbot's own exec approval UI, not a macOS system prompt.

FDA being approved is good for other things (like iMessage access), but the exec approval UI comes from the Clawdbot macOS app itself.

Two options:

  1. Run the Clawdbot app + terminal:

    • Launch the Clawdbot macOS application normally (from Applications)
    • Keep it running in the background
    • Then run clawdbot gateway --verbose in iTerminal
    • When an exec approval is needed, the app's UI will show the prompt
  2. Skip the UI entirely - manage via CLI:

    # Set to ask on miss (will log to terminal instead of UI)
    clawdbot approvals get
    
#

Then edit the file directly:

nano ~/.clawdbot/exec-approvals.json

Example for Codex:

{
  "version": 1,
  "defaults": {
    "security": "allowlist",
    "ask": "on-miss"
  },
  "agents": {
    "main": {
#
         "allowlist": [
           { "pattern": "/bin/*" },
           { "pattern": "/usr/bin/*" }
         ]
       }
     }
   }

The simplest fix: Just have the Clawdbot app running when you use Codex. It's the expected workflow - the app handles approvals, the terminal handles the gateway.

gritty jetty
#

I didn't mean the macApp. Clawdbot itself!

quartz jungleBOT
# gritty jetty I didn't mean the macApp. Clawdbot itself!

Got it! Running from CLI means no approval UI at all.

The problem: Clawdbot's exec approval system tries to show a prompt, but there's no UI in terminal-only mode.

Fix: Pre-configure approvals in ~/.clawdbot/exec-approvals.json

cat ~/.clawdbot/exec-approvals.json

If it doesn't exist or is empty, create it:

nano ~/.clawdbot/exec-approvals.json

Add this for Codex (allows bash commands):

#
{
  "version": 1,
  "defaults": {
    "security": "allowlist",
    "ask": "on-miss"
  },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "on-miss",
      "allowlist": [
        { "pattern": "/bin/*" },
        { "pattern": "/usr/bin/*" },
        { "pattern": "/opt/homebrew/bin/*" }
      ]
#
    }
  }
}

Or more permissive for testing:

{
  "version": 1,
  "defaults": {
    "security": "ask",
    "ask": "always"
  }
}
#

Then restart the gateway. With "ask" mode, it will log approval requests to the terminal instead of trying to show a UI popup.

The pattern format is argv arrays - you can use * wildcards for commands Codex might run.

gritty jetty
#

Can you give me the link to the docs, Krill?

#

By the Way: On 2026.1.16-2 no problems with that.

#

Here are all log-entry related to the topic:

16:53:19 [exec] elevated command (quiet-cr) cd /Users/meik/clawd-jonny && gog auth list 16:55:19 [ws] ⇄ res βœ“ exec.approval.request 120002ms conn=ecab8491…8505 id=af6cd54f…a4ed 16:55:19 [tools] exec failed: exec denied: approval required (approval UI not available)

quartz jungleBOT
#
  • A config change between versions

Let me know what you find! 🦐

quartz jungleBOT
#
   clawdbot approvals allowlist add "cd /Users/meik/clawd-jonny && gog auth list"
  1. Restart the gateway after editing approvals, and Codex should work.

  2. Alternative: Run the Clawdbot macOS app alongside your terminal session - even if you primarily use CLI, the app handles approvals in the background.

The 120-second timeout suggests this was blocking and waiting for a UI that never came. Pre-configured allowlists bypass this entirely.

gritty jetty
#

Ok, i downgrade to v2026.1.16-2. No issues anymore

quartz jungleBOT
# gritty jetty Ok, i downgrade to v2026.1.16-2. No issues anymore

Good workaround! That confirms it's a regression in v2026.1.20-2.

Would you mind filing a bug report?

https://github.com/clawdbot/clawdbot/issues

With details:

  • Working: v2026.1.16-2
  • Broken: v2026.1.20-2
  • CLI-only mode (no macOS app)
  • Error: exec denied: approval required (approval UI not available) with 120s timeout

The team should know exec approvals changed behavior in a way that breaks CLI-only setups. Your downgrade is valid until it's fixed! 🦐

gritty jetty
#

Kann you give me a template for posting the issue on github?

quartz jungleBOT
# gritty jetty Kann you give me a template for posting the issue on github?

Here's a ready-to-use template:


Title: Exec approvals regression in v2026.1.20-2 (CLI-only mode)

Description:

On macOS running Clawdbot from terminal without the macOS app, exec.approval.request times out with error:

exec denied: approval required (approval UI not available)

Steps to reproduce:

  1. Run clawdbot gateway --verbose from terminal (CLI-only, no macOS app)
  2. Use Codex 5.2 agent
  3. Agent triggers an exec command
#
  1. Approval request times out after 120 seconds

Expected behavior:

  • Exec approvals should work in CLI-only mode (allowlist management via clawdbot approvals CLI)
  • Or timeout should be configurable

Actual behavior:

  • Gateway waits 120s for approval UI that doesn't exist in terminal mode
  • Command fails with "approval UI not available"

Environment:

  • macOS 26.1
  • v2026.1.20-2 (broken)
  • v2026.1.16-2 (works)

Workaround:
Downgraded to v2026.1.16-2

#

Logs:

16:53:19 [exec] elevated command (quiet-cr) cd /Users/meik/clawd-jonny && gog auth list
16:55:19 [ws] ⇄ res βœ“ exec.approval.request 120002ms conn=ecab8491…8505 id=af6cd54f…a4ed
16:55:19 [tools] exec failed: exec denied: approval required (approval UI not available)

Link: https://github.com/clawdbot/clawdbot/issues/new/choose

Just fill in your details and paste! 🦐

gritty jetty
quartz jungleBOT
gritty jetty
quartz jungleBOT
# gritty jetty Ok, there is a new approval feature implemented. See the docs: https://docs.claw...

Thanks for sharing! This is a new safety feature. Here's the quick summary:

Exec Approvals - a safety interlock for agent commands on the host. When enabled:

  • Commands need explicit approval unless they match allowlist or security: full
  • If approval UI isn't available β†’ falls back to askFallback (default: deny)
  • Your error "approval UI not available" happened because the macOS companion app/Control UI wasn't running to show the prompt

Key settings in ~/.clawdbot/exec-approvals.json:

  • security: "deny" | "allowlist" | "full"
  • ask: "off" | "on-miss" | "always"
  • askFallback: "deny" | "allowlist" | "full"

For terminal-only users: Either disable approvals via CLI (clawdbot approvals) or add commands to your allowlist to avoid prompts.

The docs also mention a macOS IPC flow is planned where the gateway forwards to the macOS app for approvals β€” that should help when running purely in terminal.

Good catch linking the docs! 🦐

gritty jetty
#

Issue closed