#No shell access for my OpenClaw

1 messages Β· Page 1 of 1 (latest)

plush venture
#

On my first mac mini everything works great.

But my second mac mini refuses to do the simpliest tasks like gateway restart or adding some cronjob. He always tells me I should do it in the console:

"What is exactly missing right now:

  1. The shell execution tool itself is not exposed to this session.
    I currently only have:

β€’ message
β€’ sessions_list
β€’ sessions_history
β€’ sessions_send
β€’ session_status

  1. Because there is no shell/exec tool in that list, I cannot run any terminal commands on your Mac from here."

OpenClaw status

Overview
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Item β”‚ Value β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Dashboard β”‚ http://127.0.0.1:18789/ β”‚
β”‚ OS β”‚ macos 26.3.1 (arm64) Β· node 22.22.1 β”‚
β”‚ Tailscale β”‚ off β”‚
β”‚ Channel β”‚ stable (default) β”‚
β”‚ Update β”‚ pnpm Β· npm latest 2026.3.2 β”‚
β”‚ Gateway β”‚ local Β· ws://127.0.0.1:18789 (local loopback) Β· reachable 12ms Β· auth token Β· OpenClaw-Testing.local (192.168.110.194) app 2026.3.2 macos 26.3.1 β”‚
β”‚ Gateway service β”‚ LaunchAgent installed Β· loaded Β· running (pid 10801, state active) β”‚
β”‚ Node service β”‚ LaunchAgent not installed β”‚
β”‚ Agents β”‚ 1 Β· 1 bootstrap file present Β· sessions 2 Β· default main active just now β”‚

β”‚ Probes β”‚ skipped (use --deep) β”‚
β”‚ Events β”‚ none β”‚
β”‚ Heartbeat β”‚ 30m (main) β”‚
β”‚ Sessions β”‚ 2 active Β· default gpt-5.3-codex (200k ctx) Β· ~/.openclaw/agents/main/sessions/sessions.json β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

winged jewelBOT
#

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

zenith mortarBOT
#

That tool list (message, sessions_list, sessions_history, sessions_send, session_status) matches tools.profile: "messaging" exactly. In that profile, OpenClaw intentionally does not expose runtime/automation tools (so no exec, no cron, no gateway restart).

1) Confirm what the second Mac is running with

On the second Mac mini, run:

openclaw config file
openclaw config get tools.profile
openclaw config get tools.allow
openclaw config get tools.deny

If it prints messaging, that’s the whole reason you’re seeing that β€œshell execution tool not exposed” message.

2) Fix: enable the tools you actually want

Option A (recommended): allow automation without giving full shell access
This enables β€œrestart gateway” + cron management via the typed tools (gateway + cron), without enabling arbitrary shell:

#
openclaw config set tools.profile messaging
openclaw config set tools.allow '["group:automation"]' --strict-json
openclaw gateway restart

Option B: also allow shell execution (exec/process)
If you explicitly want the bot to run terminal commands:

openclaw config set tools.profile messaging
openclaw config set tools.allow '["group:automation","group:runtime"]' --strict-json
openclaw gateway restart

Option C: no restrictions

#
openclaw config set tools.profile full
openclaw gateway restart

After the restart, start a fresh chat session (/new) so the tool list is regenerated.

3) Important safety note (Discord)

Before enabling group:runtime (shell) in a Discord server channel, make sure your Discord access control is tight (allowlist your user, require mention, etc.). Otherwise you’re effectively giving β€œrun commands on your Mac” to anyone who can talk to the bot.

Docs:

If you paste the output of openclaw config get tools.profile from both Macs, I can tell you exactly what differs.

plush venture
#

it worked. now it asks for node access every time on mac. how to make it auto accept?

zenith mortarBOT
#

That prompt is the node exec-approvals safety interlock: your Mac node is currently set to β€œask” for commands instead of auto-running them.

You have two sane ways to stop the constant prompts:

Option A (recommended): allowlist + β€œask on miss”

This will only ask the first time it sees a new executable, then stop nagging once it’s allowlisted.

  1. Find your node id/name:
openclaw nodes status
  1. See what the node’s approvals policy is right now:
openclaw approvals get --node <id|name|ip>
#
  1. Add the executables you keep getting prompted for (examples):
openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/uname"
openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/sw_vers"

Also: when the macOS prompt appears, there’s usually an β€œAlways allow” choice β€” pick that, and it’ll add an allowlist entry so it won’t ask again for that binary.

Option B (dangerous): auto-accept everything (no prompts)

This effectively gives your Gateway silent command execution on that Mac node.

Edit the node’s ~/.openclaw/exec-approvals.json (on the Mac) so the agent is set to security:"full" + ask:"off", or push a file via CLI:

openclaw approvals set --node <id|name|ip> --file ./exec-approvals.json