You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -157,9 +157,9 @@ Run `openclaw doctor` to surface risky/misconfigured DM policies.
157
157
## Security model (important)
158
158
159
159
- Default: tools run on the host for the `main` session, so the agent has full access when it is just you.
160
-
- Group/channel safety: set `agents.defaults.sandbox.mode: "non-main"` to run non-`main` sessions inside per-session Docker sandboxes.
160
+
- Group/channel safety: set `agents.defaults.sandbox.mode: "non-main"` to run non-`main` sessions inside sandboxes. Docker is the default sandbox backend; SSH and OpenShell backends are also available.
- Before exposing anything remotely, read [Security](https://docs.openclaw.ai/gateway/security), [Docker sandboxing](https://docs.openclaw.ai/install/docker), and [Configuration](https://docs.openclaw.ai/gateway/configuration).
162
+
- Before exposing anything remotely, read [Security](https://docs.openclaw.ai/gateway/security), [Sandboxing](https://docs.openclaw.ai/gateway/sandboxing), and [Configuration](https://docs.openclaw.ai/gateway/configuration).
163
163
164
164
## Operator quick refs
165
165
@@ -173,7 +173,7 @@ Run `openclaw doctor` to surface risky/misconfigured DM policies.
173
173
- New here: [Getting started](https://docs.openclaw.ai/start/getting-started), [Onboarding](https://docs.openclaw.ai/start/wizard), [Updating](https://docs.openclaw.ai/install/updating)
Copy file name to clipboardExpand all lines: docs/channels/groups.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -82,12 +82,12 @@ If you want...
82
82
83
83
Yes — this works well if your “personal” traffic is **DMs** and your “public” traffic is **groups**.
84
84
85
-
Why: in single-agent mode, DMs typically land in the **main** session key (`agent:main:main`), while groups always use **non-main** session keys (`agent:main:<channel>:group:<id>`). If you enable sandboxing with `mode: "non-main"`, those group sessions run in Docker while your main DM session stays on-host.
85
+
Why: in single-agent mode, DMs typically land in the **main** session key (`agent:main:main`), while groups always use **non-main** session keys (`agent:main:<channel>:group:<id>`). If you enable sandboxing with `mode: "non-main"`, those group sessions run in the configured sandbox backend while your main DM session stays on-host. Docker is the default backend if you do not choose one.
86
86
87
87
This gives you one agent “brain” (shared workspace + memory), but two execution postures:
88
88
89
89
-**DMs**: full tools (host)
90
-
-**Groups**: sandbox + restricted tools (Docker)
90
+
-**Groups**: sandbox + restricted tools
91
91
92
92
> If you need truly separate workspaces/personas (“personal” and “public” must never mix), use a second agent + bindings. See [Multi-Agent Routing](/concepts/multi-agent).
2.**Tool policy** (`tools.*`, `tools.sandbox.tools.*`, `agents.list[].tools.*`) decides **which tools are available/allowed**.
14
14
3.**Elevated** (`tools.elevated.*`, `agents.list[].tools.elevated.*`) is an **exec-only escape hatch** to run outside the sandbox when you’re sandboxed (`gateway` by default, or `node` when the exec target is configured to `node`).
@@ -79,7 +79,10 @@ OpenShell-specific config lives under `plugins.entries.openshell.config`.
79
79
80
80
### Docker backend
81
81
82
-
The Docker backend is the default runtime, executing tools and sandbox browsers locally via the Docker daemon socket (`/var/run/docker.sock`). Sandbox container isolation is determined by Docker namespaces.
82
+
Sandboxing is off by default. If you enable sandboxing and do not choose a
83
+
backend, OpenClaw uses the Docker backend. It executes tools and sandbox browsers
84
+
locally via the Docker daemon socket (`/var/run/docker.sock`). Sandbox container
85
+
isolation is determined by Docker namespaces.
83
86
84
87
**Docker-out-of-Docker (DooD) Constraints**:
85
88
If you deploy the OpenClaw Gateway itself as a Docker container, it orchestrates sibling sandbox containers using the host's Docker socket (DooD). This introduces a specific path mapping constraint:
Copy file name to clipboardExpand all lines: docs/help/faq.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1293,7 +1293,7 @@ for usage/billing and raise limits as needed.
1293
1293
<Accordiontitle="Can I keep DMs personal but make groups public/sandboxed with one agent?">
1294
1294
Yes - if your private traffic is **DMs** and your public traffic is **groups**.
1295
1295
1296
-
Use `agents.defaults.sandbox.mode: "non-main"` so group/channel sessions (non-main keys) run in Docker, while the main DM session stays on-host. Then restrict what tools are available in sandboxed sessions via `tools.sandbox.tools`.
1296
+
Use `agents.defaults.sandbox.mode: "non-main"` so group/channel sessions (non-main keys) run in the configured sandbox backend, while the main DM session stays on-host. Docker is the default backend if you do not choose one. Then restrict what tools are available in sandboxed sessions via `tools.sandbox.tools`.
1297
1297
1298
1298
Setup walkthrough + example config: [Groups: personal DMs + public groups](/channels/groups#pattern-personal-dms-public-groups-single-agent)
6.**Systemd service** -- auto-start with security hardening
54
54
55
55
<Note>
56
-
The gateway runs directly on the host (not in Docker), but agent sandboxes use Docker for isolation. See [Sandboxing](/gateway/sandboxing) for details.
56
+
The gateway runs directly on the host (not in Docker). Agent sandboxing is
57
+
optional; this playbook installs Docker because it is the default sandbox
58
+
backend. See [Sandboxing](/gateway/sandboxing) for details and other backends.
Copy file name to clipboardExpand all lines: docs/install/docker.md
+6-5Lines changed: 6 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ Docker is **optional**. Use it only if you want a containerized gateway or to va
14
14
15
15
-**Yes**: you want an isolated, throwaway gateway environment or to run OpenClaw on a host without local installs.
16
16
-**No**: you are running on your own machine and just want the fastest dev loop. Use the normal install flow instead.
17
-
-**Sandboxing note**: agent sandboxing uses Docker too, but it does **not** require the full gateway to run in Docker. See [Sandboxing](/gateway/sandboxing).
17
+
-**Sandboxing note**: the default sandbox backend uses Docker when sandboxing is enabled, but sandboxing is off by default and does **not** require the full gateway to run in Docker. SSH and OpenShell sandbox backends are also available. See [Sandboxing](/gateway/sandboxing).
18
18
19
19
## Prerequisites
20
20
@@ -311,10 +311,11 @@ including binary baking, persistence, and updates.
311
311
312
312
## Agent Sandbox
313
313
314
-
When `agents.defaults.sandbox` is enabled, the gateway runs agent tool execution
315
-
(shell, file read/write, etc.) inside isolated Docker containers while the
316
-
gateway itself stays on the host. This gives you a hard wall around untrusted or
317
-
multi-tenant agent sessions without containerizing the entire gateway.
314
+
When `agents.defaults.sandbox` is enabled with the Docker backend, the gateway
0 commit comments