Created
April 8, 2026 04:08
-
-
Save romanlv/0292a024125b7afd39f92b762d640012 to your computer and use it in GitHub Desktop.
Example openclaw.json showing sandbox defaults, per-agent overrides, and channel bindings. Companion to blog post.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| FROM debian:bookworm-slim | |
| # Install essential tools | |
| RUN apt-get update && apt-get install -y \ | |
| # Basics | |
| curl \ | |
| unzip \ | |
| ca-certificates \ | |
| git \ | |
| # JSON/text processing | |
| jq \ | |
| ripgrep \ | |
| # File utilities | |
| tree \ | |
| file \ | |
| # Database | |
| sqlite3 \ | |
| # Remote access | |
| openssh-client \ | |
| # Media processing | |
| ffmpeg \ | |
| imagemagick \ | |
| # Python + yt-dlp for transcripts | |
| python3 \ | |
| python3-pip \ | |
| && pip3 install --break-system-packages yt-dlp \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install Bun.js to a shared location accessible by any uid | |
| RUN curl -fsSL https://bun.sh/install | BUN_INSTALL=/usr/local bash | |
| RUN bun --version | |
| # Install Node.js (required by Lobster CLI shebang) | |
| RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ | |
| && apt-get install -y nodejs \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install OpenClaw CLI and Lobster CLI | |
| RUN npm install -g openclaw @clawdbot/lobster | |
| WORKDIR /workspace | |
| CMD ["/bin/bash"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Excerpt from ~/.openclaw/openclaw.json | |
| // Shows multi-agent sandboxing: shared defaults, per-agent overrides, and channel routing. | |
| { | |
| "agents": { | |
| "defaults": { | |
| "sandbox": { | |
| "mode": "all", | |
| "workspaceAccess": "rw", | |
| "scope": "session", | |
| "docker": { | |
| "image": "openclaw-sandbox:my-image", | |
| "readOnlyRoot": true, | |
| "tmpfs": ["/tmp", "/var/tmp", "/run"], | |
| "network": "bridge", | |
| "dns": ["8.8.8.8", "1.1.1.1"], | |
| "extraHosts": ["host.docker.internal:host-gateway"], | |
| "binds": [ | |
| "/Users/roman/.openclaw/scripts/Dockerfile.sandbox:/home/.openclaw/scripts/Dockerfile.sandbox:ro", | |
| "/Users/roman/dev/ai/openclaw:/home/openclaw-src:ro" | |
| ], | |
| "dangerouslyAllowExternalBindSources": true | |
| }, | |
| "browser": { "allowHostControl": true } | |
| } | |
| }, | |
| "list": [ | |
| { | |
| "id": "main", | |
| "default": true, | |
| "workspace": "/Users/roman/.openclaw/workspace", | |
| "sandbox": { | |
| "docker": { | |
| "binds": [ | |
| "/Users/roman/.openclaw/agents/main:/home/.openclaw/agents/main:ro" | |
| ] | |
| } | |
| } | |
| }, | |
| { | |
| "id": "family-agent", | |
| "name": "Family Agent", | |
| "workspace": "/Users/roman/.openclaw/workspace-family", | |
| "tools": { | |
| "sandbox": { | |
| "tools": { | |
| "alsoAllow": ["message"], | |
| "deny": ["canvas", "nodes", "gateway", "whatsapp", "discord", "irc", "googlechat", "signal", "imessage"] | |
| } | |
| } | |
| }, | |
| "sandbox": { | |
| "docker": { | |
| "binds": [ | |
| "/Users/roman/.openclaw/agents/family-agent:/home/.openclaw/agents/family-agent:ro" | |
| ] | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| "bindings": [ | |
| { "agentId": "family-agent", "match": { "channel": "telegram", "accountId": "family" } } | |
| ], | |
| "cron": { "enabled": true } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment