coderClaw

Sandbox vs Tool Policy vs Elevated

CoderClaw has three related (but different) controls:

  1. Sandbox (agents.defaults.sandbox.* / agents.list[].sandbox.*) decides where tools run (Docker vs host).
  2. Tool policy (tools.*, tools.sandbox.tools.*, agents.list[].tools.*) decides which tools are available/allowed.
  3. Elevated (tools.elevated.*, agents.list[].tools.elevated.*) is an exec-only escape hatch to run on the host when you’re sandboxed.

Quick debug

Use the inspector to see what CoderClaw is actually doing:

coderclaw sandbox explain
coderclaw sandbox explain --session agent:main:main
coderclaw sandbox explain --agent work
coderclaw sandbox explain --json

It prints:

Sandbox: where tools run

Sandboxing is controlled by agents.defaults.sandbox.mode:

See Sandboxing for the full matrix (scope, workspace mounts, images).

Bind mounts (security quick check)

Tool policy: which tools exist/are callable

Two layers matter:

Rules of thumb:

Tool groups (shorthands)

Tool policies (global, agent, sandbox) support group:* entries that expand to multiple tools:

{
  tools: {
    sandbox: {
      tools: {
        allow: ["group:runtime", "group:fs", "group:sessions", "group:memory"],
      },
    },
  },
}

Available groups:

Elevated: exec-only “run on host”

Elevated does not grant extra tools; it only affects exec.

Gates:

See Elevated Mode.

Common “sandbox jail” fixes

“Tool X blocked by sandbox tool policy”

Fix-it keys (pick one):

“I thought this was main, why is it sandboxed?”

In "non-main" mode, group/channel keys are not main. Use the main session key (shown by sandbox explain) or switch mode to "off".