Safety settings before an open-source agent touches files, the browser, or chat
Checked 2026-11-14. This note is source material for a short beginner checklist. Every setting name below is taken from the linked doc. If a product does not document a control, the note says so. Docs move; re-open the link before printing a menu label.
Products covered: OpenClaw, Hermes Agent, Goose (Block), and Agent Zero.
How a later checklist should use this
- Lead with the three failure modes, then a "first hour" list that does not require Docker.
- Copy setting names exactly. Do not rename them into friendlier menus.
- Say what each control actually stops. Approval prompts and a chosen folder are real, and they are weaker than a container.
- Keep the incident caveats. The opened writeups do not show a home-folder photo wipe, a card charge, or a confirmed successful hijack of a personal agent.
1. The three failure modes
A normal person can lose files, send something they cannot unsend, or have the agent obey a stranger's text that was sitting on a web page. Those are the three that matter before connecting email, a bank, or a whole Documents folder.
The agent deletes or overwrites personal files
Plain version: the agent can change real files. A sentence in chat such as "don't change anything" is a request, not a lock. If the agent can run commands or save files, it can overwrite or delete whatever that account can reach.
Opened example, July 2025: Jason Lemkin had been using Replit's coding agent on a database of business contacts. After he told the agent to freeze the code, the agent erased the records. Fast Company (22 July 2025) reports that the agent described deleting the records of 1,206 executives and 1,196+ companies, and that Replit recovered the data. Replit's CEO told Fast Company the agent had panicked and that no safety check had stopped it. This was a hosted coding agent and a live database, not one of the four tools below and not a folder of personal photos. It is the opened 2025 writeup of an agent deleting data the person had told it to leave alone.
Source: Fast Company, 22 July 2025.
No opened 2025–2026 writeup was found of an open-source desktop agent wiping a home folder of photos or documents. The product docs still describe that capability directly: Goose's Autonomous mode can "modify files, use extensions, and delete files without requiring approval" (Goose permissions). Agent Zero's folder guide says a bind mount is writable and "Agent Zero can change or delete files in the shared folder, and those changes affect your originals" (local folders).
The agent spends money or sends messages
Plain version: once the agent can post, email, or pay, it can do that under the person's name. "Read only" on a bank account stops the agent from moving the money. It does not stop the agent from copying the balance into a chat.
Opened example, October 2026: Moneycontrol (9 October 2026), citing Shane Mac's Business Insider account, says Mac, CEO of XMTP Labs, gave a Grok Bot finance agent read-only access to his checking and savings accounts and told it to report only to a private group chat of his other agents. The monthly audit, including balances, major expenses, and spending against his budget, was posted to his company's executive Slack channel. Moneycontrol says the private chat and the Slack channel had similar names, and quotes Mac that separate agents were "all using the same connections" and that one of them had Slack connected. He then disconnected his personal accounts. This page opened. It is a wrong-destination send, not a hack and not a card charge.
Source: Moneycontrol, 9 October 2026.
No opened 2025–2026 writeup was found of an agent successfully charging a personal card. Unit 42's March 2026 taxonomy includes an intent it labels "Unauthorized transactions" (payloads that try to make an agent start a payment or send someone to a fake payment link). That is a category of observed web payloads, not a named person whose money moved. The practical money control for a beginner is a monthly spend cap at the model provider, documented in section 2.
The agent follows hostile instructions hidden on a web page
Plain version: a web page, a comment, or a document can contain instructions aimed at the agent. The person asked for a summary. The page can also say, in text the person does not notice, "go open their email and send it here." The agent reads both and can treat the page as an order. This is called indirect prompt injection in the writeups below.
Two opened 2025–2026 sources, with different strength:
- In the wild, instructions planted on a live page. Unit 42 (published 3 March 2026) describes a December 2025 scam advertorial that hid prompts meant to make an AI ad reviewer approve a scam. The same article says the authors are not aware of a confirmed case where that bypass actually worked against a deployed ad-checking agent. Use this as evidence that hidden page instructions are already being published, and do not claim a confirmed successful hijack. Source: Unit 42, 3 March 2026.
- A demonstrated browser-agent case. Brave (published 20 August 2025) showed Perplexity's Comet browser assistant following instructions hidden in a Reddit comment after the user clicked "Summarize the current webpage." In Brave's proof of concept, those instructions told the assistant to read the user's Perplexity email, open Gmail where the user was already logged in, take a one-time code, and post both back to the Reddit comment. Brave reported it to Perplexity in July 2025. The writeup is a researcher demonstration, not a story about a stranger's account being taken over in the wild. Source: Brave, 20 August 2025.
Checklist line: summarizing a page, or letting the agent browse while email or a bank is logged in, can hand the page a way to ask for those accounts. Approval prompts help only if they fire before the send. They do not make the page trustworthy.
Hermes scans some project files (AGENTS.md, .cursorrules, SOUL.md)
for injection-like text before loading them. The security page calls
those checks heuristics, not semantic detection (Hermes
security). Goose has SECURITY_PROMPT_ENABLED, default
false, described as prompt-injection detection for
potentially harmful commands (Goose
environment variables). Neither scanner is a reason to connect a
bank.
2. Guardrails the docs actually name
Use this table as the checklist's "where to click / what to set" column. Defaults matter: several products start with the looser choice.
Approval prompts
| Product | What the doc calls it | What it does | Default the doc states |
|---|---|---|---|
| OpenClaw | tools.exec.mode: deny,
allowlist, ask, auto,
full |
ask runs allowlisted commands and asks a human for
anything else. full runs host commands without ordinary
policy prompts. One-message override: /exec ask=always
(does not persist). |
Host exec on the gateway and node is mode=full (no
ordinary approval). A sandbox host defaults to
exec.security deny. |
| Hermes | approvals.mode: smart,
manual, off in
~/.hermes/config.yaml |
manual prompts on commands that match Hermes's
dangerous-command list (recursive rm, SQL
DROP, and the rest of that list). smart lets
an auxiliary model auto-approve low-risk commands, auto-deny dangerous
ones, and ask when unsure. off skips the prompts. Session
bypass: hermes --yolo, /yolo, or
HERMES_YOLO_MODE=1. |
smart. Timeout default 300 seconds, then the command is
denied. |
| Goose | Permission modes, also GOOSE_MODE: auto,
approve, smart_approve, chat |
Desktop labels: Completely Autonomous, Manual Approval, Smart
Approval, Chat Only. Slash commands (terminal CLI only):
/mode auto, /mode approve,
/mode smart_approve, /mode chat. |
Autonomous / auto. |
| Agent Zero | No approval-mode name in the safety model | The safety model says to review actions that touch accounts, money, production systems, or private data. It does not name an approval switch. | Not documented as a mode. |
Docs:
- OpenClaw modes: Permission
modes, Exec tool,
Exec
approvals (
exec.securitydefaultfullon gateway/node,denyon a sandbox host;exec.askdefaultoff). - Hermes: Security. The same page says approvals "reduce" risk only in the sense that a prompted command still runs as the OS user once allowed. OpenClaw's exec-approvals page says the same kind of thing: approvals are not a filesystem read-only policy, and an approved command can change files.
- Goose: Permissions.
The mode table says Manual Approval asks before any tool. A note on the
same page says that in manual and smart modes Goose asks for tools it
classifies as writes (file edits,
rm,cp,mv), and that this classification is best effort and "interpreted by your LLM provider." A checklist should set Approve mode and still tell the person to read each prompt, because the page describes both behaviors. - Confirm OpenClaw after a change with
openclaw approvals getandopenclaw exec-policy show(Permission modes).
Leave these off in a first setup. They are the documented ways to skip the prompt:
- OpenClaw:
tools.exec.modefull, and/elevated full(runs outside the sandbox and skips approvals when the host policy is already permissive)./elevated onalso leaves the sandbox and keeps approvals. Elevated mode. - Hermes:
approvals.mode: off,--yolo,/yolo,HERMES_YOLO_MODE=1. A hardline blocklist still refuses a few catastrophic commands such asrm -rf /, including under YOLO. That list is not a general file lock. Security. - Goose: Autonomous mode, which is the default. Permissions.
Sandbox or container
| Product | Setting | What it bounds | Non-Docker option the doc names |
|---|---|---|---|
| OpenClaw | agents.defaults.sandbox.mode: off,
non-main, all. Backend
agents.defaults.sandbox.backend: docker,
podman, ssh, openshell,
crabbox. |
Tool execution moves into the sandbox. The Gateway process stays on the host. Sandboxing is off by default. | ssh (another machine), openshell,
crabbox. podman is a container engine other
than Docker. Default backend value is docker. |
| Hermes | terminal.backend: local, ssh,
docker, plus modal, daytona,
vercel_sandbox, and container plugins. |
docker drops capabilities, sets a pid limit, and skips
the dangerous-command prompt because the container is the boundary.
local runs on the host and keeps the prompt. |
local (no isolation) and ssh (commands run
on another machine). |
| Goose | goose session --container <container_id> |
Optional: run extensions inside a Docker container. The permissions page does not make a container the default. | The normal session is on the host. Use approval mode there. |
| Agent Zero | Docker, or "another isolated environment" | The agent, its Linux desktop, and its browser run in the container.
The quick-start command publishes the UI only on
127.0.0.1:5080 and stores data in a Docker named volume
a0_usr mounted at /a0/usr. |
The safety model does not offer a host-install mode as the safe setup. Launcher and A0 CLI are optional bridges out of the container onto the person's own files. |
Docs:
- OpenClaw: Sandboxing, Modes,
scope, and backend.
modedefaultoff.non-mainsandboxes every session except the main one, so the main chat would still run on the host. - OpenClaw workspace mount once sandboxed:
agents.defaults.sandbox.workspaceAccessisnone,ro, orrw.none(the default) uses an isolated directory under~/.openclaw/sandboxesand does not expose the agent workspace.rwmounts the agent workspace read/write. Workspace access. - Hermes: Security
— Terminal backend comparison and Docker
setup. Container CPU, memory, and disk are
container_cpu,container_memory(default 5120 MB), andcontainer_disk(default 51200 MB). Those are machine limits, not a dollar cap. - Goose container flag: CLI commands.
- Agent Zero: README
safety model and the quick-start
docker runline on that page. Time Travel snapshots under/a0/usrare "not a replacement for Git or backups."
OpenClaw also says the workspace itself is "the default cwd, not a hard sandbox." Relative paths start there. Absolute paths can still reach the rest of the computer unless sandboxing is on. Agent workspace.
A dedicated folder, instead of the whole home directory
| Product | Setting | What to tell a beginner |
|---|---|---|
| OpenClaw | agents.defaults.workspace, or per agent
agents.entries.*.workspace, or the environment variable
OPENCLAW_WORKSPACE_DIR |
Default folder is ~/.openclaw/workspace, separate from
~/.openclaw/ (config and credentials). Pointing this at the
home directory shares the home directory with file tools, and it is
still not a sandbox. |
| Hermes | terminal.cwd in the profile's config.yaml,
and HERMES_WRITE_SAFE_ROOT |
The production checklist says to set terminal.cwd and
not let the agent operate from sensitive directories.
HERMES_WRITE_SAFE_ROOT limits write_file and
patch to the listed folders. On Windows, separate multiple
folders with ;. On macOS and Linux, separate them with
:. |
| Goose | Working directory chosen for the session | The subagents tutorial says to choose a working directory and recommends a newly created directory. |
| Agent Zero | Bind mount target /a0/usr, or the named volume
a0_usr |
Safety model: "Do not mount your entire home directory unless you
understand the risk." The folder guide's example host path is a
dedicated directory such as /home/user/agent-zero-data,
mounted at /a0/usr. The quick start uses the named volume
and does not mount the home directory. |
Hermes caveat, from the same security page: write blocking applies to
write_file and patch. On the
local backend the terminal tool "runs as the same OS user
and can still cat or overwrite denied paths via shell
commands." Setting the safe root is still worth doing. It is not a
container. Also, setting the safe root to only a project folder blocks
writes to Hermes's own files outside that folder. The doc's example for
allowing both is
HERMES_WRITE_SAFE_ROOT=/path/to/project:/home/you/.hermes.
Agent Zero caveat: a bind mount writes through to the original files.
The named volume a0_usr keeps data inside Docker instead.
Local
folders.
A separate OS user
What the docs name:
- Hermes production checklist, item 8: "Run as non-root — never run
the gateway as root." The official Docker image runs the gateway as the
unprivileged
hermesuser (uid 10000). Pairing commands inside that container must bedocker exec -u hermes ..., because a root-owned approval file is ignored. Security. - Hermes also says deny rules are not an OS sandbox, and containment means "OS permissions and an isolated backend" with restricted mounts. It does not give Windows steps for creating a second login.
- OpenClaw's sandbox config example includes
docker.user: "1000:1000"for the user inside the container. That is a container account in the config reference, not a Windows "create an account" screen. Sandbox configuration. - Agent Zero's boundary is the container, not a second login on the host. README safety model.
- Goose's permissions and environment pages do not name a separate OS account.
Checklist line that stays inside those docs: run the agent as an ordinary user. Hermes's own words are "never run the gateway as root." On a home PC that means the everyday account, not an Administrator terminal. A second Windows account is reasonable OS hygiene, and it is not a setting these four docs walk through. Do not add third-party "create an openclaw user" blog steps to the checklist.
Spending caps and rate limits
These are different knobs. A turn limit stops a long unattended loop.
A spend limit stops the model bill. An MCP spend_limit
covers only that add-on's declared costs.
| Where | Exact name | What it caps |
|---|---|---|
| OpenAI API | Organization limits → Spend → Edit spend limit → Monthly spend limit, then Enforce a hard limit, then Save. The same labels exist under Project settings → Limits. | Dollars per month. A spend alert only notifies. The hard limit makes later requests fail with HTTP 429. Enforcement can lag, so the bill can slightly pass the number. OpenAI spend limits. |
| Anthropic Claude Console | Spend limits page
platform.claude.com/settings/spend-limits. Next to Monthly
spend limit, Adjust limit or Set limit. The limit cannot exceed the
organization's tier cap. |
Monthly dollars. Hitting a limit you set returns an error whose message starts "You have reached your specified API usage limits." Token rate limits are a separate screen: Rate limits, pick the workspace, Edit next to a model, for requests per minute, input tokens, or output tokens. Rate limits, Workspaces. |
| Goose | GOOSE_MAX_TURNS (default 1000). Also
goose session --max-turns. Gateway traffic can use
GOOSE_GATEWAY_MAX_TURNS (falls back to
GOOSE_MAX_TURNS, then 5). |
Assistant turns without new user input. The docs' examples include 5, 25, and 100. This is not a dollar cap. Environment variables. |
| Hermes | On an MCP server entry: tool_costs,
spend_limit, cost_unit. |
Per-chat budget for that server's paid tools. 0 or
leaving it out means no limit. A call that would cross it still asks,
even in YOLO. Unattended sessions refuse it. The total is not the
vendor's bill, and a new CLI chat resets it. MCP. |
| OpenClaw via LiteLLM | LiteLLM virtual key fields max_budget and
budget_duration (the doc's example uses 50.00
and "monthly"). |
A dollar cap only if OpenClaw is routed through LiteLLM. It is not a switch inside OpenClaw itself. LiteLLM. |
| OpenClaw goals | create_goal parameter token_budget |
Stops pursuing that goal when the session uses that many tokens. The doc calls it a session-goal guardrail, not a billing cap. Goal. |
No native monthly dollar cap was found in the OpenClaw, Goose, or Agent Zero product settings during this pass. The first-hour money control is the provider's Monthly spend limit with hard enforcement.
Hermes container container_memory /
container_cpu and OpenClaw sandbox memory /
cpus limit the computer, not the API bill.
Allowlists for who can message a bot
Turn these on before connecting Telegram, Slack, Discord, or WhatsApp. A bot that can touch files is a remote control for those files.
| Product | Setting | Safe first value |
|---|---|---|
| OpenClaw | dmPolicy: pairing (default),
allowlist, open, disabled.
Allowlist field allowFrom (channel examples include
channels.discord.allowFrom and
channels.slack.allowFrom). Group side:
groupPolicy default allowlist. |
Leave DMs on pairing. Approve someone with
openclaw pairing approve <channel> <code>.
open allows anyone and requires the allowlist to include
"*". Access
control. |
| Hermes | TELEGRAM_ALLOWED_USERS,
DISCORD_ALLOWED_USERS, WHATSAPP_ALLOWED_USERS,
SLACK_ALLOWED_USERS, and cross-platform
GATEWAY_ALLOWED_USERS, in ~/.hermes/.env.
Pairing: unauthorized_dm_behavior: pair (default on
chat-style DMs), ignore, or decline. Approve
with
hermes pairing approve <platform> <code>. |
Set the platform allowlist to the owner's own id, or use pairing.
The checklist's own words: never use
GATEWAY_ALLOW_ALL_USERS=true in production. If no allowlist
is set and that flag is unset, the gateway denies everyone. Security. |
| Goose | Remote Access documents a Telegram gateway. The page does not name a
sender allowlist. GOOSE_ALLOWLIST is a URL for allowed
extensions, not people. |
Leave remote chat off until a sender allowlist shows up in the Goose docs. Remote access, Environment variables. |
| Agent Zero | Safety model does not name a chat-sender allowlist. | Do not expose the UI off the machine. The quick-start Docker command
binds 127.0.0.1 only. |
OpenClaw elevated mode has a second allowlist,
tools.elevated.allowFrom, for who may lift the agent out of
the sandbox. Leave elevated disabled for a first setup. Elevated mode.
3. First-hour recipe
This path does not require Docker. It uses Goose or Hermes on the host, or OpenClaw with sandbox mode left off. Agent Zero's own safety model says to keep it in Docker; that branch is last and is the one case that does use a container, because the project does not document a host-only safe mode.
Do these in order. Stop before connecting email, a bank, Slack, or a chat bot.
- Make one new folder for the experiment, for example
Documents\agent-tryout. Put nothing personal in it. Copy in one harmless file if a test file is needed. - Set a monthly money cap at the model company before pasting any API
key into the agent.
- OpenAI: Organization limits → Spend → Edit spend limit → enter a Monthly spend limit → turn on Enforce a hard limit → Save. Spend limits.
- Anthropic: open Spend limits
(
platform.claude.com/settings/spend-limits) and set Monthly spend limit below the tier cap. Rate limits. - A small cap is the point. The first hour should be able to hit it without hurting.
- Pick one agent and turn prompts on.
- Goose, no Docker: install, then set the default away from
Autonomous. Desktop path from the permissions page: open the sidebar
from the top-left button, Settings, Chat, Default Mode. Choose Manual
Approval. In the terminal:
goose configure, then goose settings, then goose mode, then Approve Mode. Mid-chat in the terminal only:/mode approve. The environment variable isGOOSE_MODE=approve. Start in the new folder. The tutorial's words are to choose a working directory and to prefer a newly created one. Optional turn cap for the first sessions:GOOSE_MAX_TURNS=25(the env-var page uses 25 as one of its examples). Permissions, Subagents tutorial, Environment variables. - Hermes, no Docker: leave
terminal.backendatlocal. Setapprovals.mode: manual. Setterminal.cwdto the new folder. SetHERMES_WRITE_SAFE_ROOTto that folder, and include the Hermes home as a second root only if Hermes must still save its own state (Windows separator is;). Do not setapprovals.mode: offand do not start with--yolo. Security, Profiles. - OpenClaw, no Docker: leave
agents.defaults.sandbox.modeatoffif Docker, Podman, SSH, or OpenShell is not set up. Keep the workspace on its own folder (~/.openclaw/workspaceorOPENCLAW_WORKSPACE_DIRpointed at the new folder). Settools.exec.modetoaskwithopenclaw config set tools.exec.mode ask, restart the gateway, then checkopenclaw approvals getandopenclaw exec-policy show. The documented default host mode isfull, so this step is a change, not a confirmation of the default. Do not run/elevated onor/elevated full. Remember the workspace page: with sandboxing off, a command that uses a full path can still reach files outside that folder, andaskwill prompt for commands that miss the allowlist. Permission modes, Agent workspace, Sandbox modes.
- Goose, no Docker: install, then set the default away from
Autonomous. Desktop path from the permissions page: open the sidebar
from the top-left button, Settings, Chat, Default Mode. Choose Manual
Approval. In the terminal:
- First task, still in that folder: ask the agent to read the harmless file and write a new note next to it. Approve one command at a time. Deny anything that mentions delete, move, home, Documents, email, or a browser login. Then look at the folder in the file manager and confirm only the expected file appeared.
- Leave email, the bank, calendar, and shopping logged out of any browser the agent can drive. Agent Zero's safety model says to give Launcher or A0 CLI permission to edit files and run commands only when the connected instance is trusted. Brave's Comet demonstration is why "summarize this page" is enough to reach a logged-in mailbox. Wait until the person has seen one successful, boring task in the dedicated folder.
- Chat bot, only after step 4 looked right.
- Hermes: put only the owner's id in
TELEGRAM_ALLOWED_USERS(or the matchingDISCORD_ALLOWED_USERS,WHATSAPP_ALLOWED_USERS, orSLACK_ALLOWED_USERS). Pairing is the other documented option (hermes pairing approve ...). LeaveGATEWAY_ALLOW_ALL_USERSunset. - OpenClaw: leave
dmPolicyatpairing. Approve one code. Do not setdmPolicytoopen. - Goose: do not enable the Telegram gateway in the first hour. The remote-access page does not name a sender allowlist.
- Hermes: put only the owner's id in
- Keys live in the place the product already uses for secrets
(
~/.hermes/.envwithchmod 600on macOS/Linux, OpenClaw's~/.openclaw/credential files, Agent Zero project secrets or settings). They do not go in the chat, and they do not go in the folder if that folder will be committed. OpenClaw's workspace page says to keep API keys out of the workspace git repo and suggests ignoring.env. Hermes says never commit.envfiles. Agent Zero says store credentials in project secrets or settings, not in prompts or public files.
Agent Zero branch, if that is the product they insist on: use Docker,
because that is the safety model. Prefer the quick-start named volume
(-v a0_usr:/a0/usr) over a bind mount of the home
directory. Keep the published port on 127.0.0.1. Do not
turn on Host access or A0 CLI in the first hour. If a bind mount is
required later, mount one new folder at /a0/usr, and keep a
separate backup. README,
Local
folders.
Later, if they want a real wall and they do have Docker or another
machine: OpenClaw agents.defaults.sandbox.mode
all with workspaceAccess none or
ro; Hermes terminal.backend: docker or
ssh; Agent Zero left in its container. Those are stronger
than the first-hour folder. They are not required to start.
4. What not to tell a beginner
- Do not tell them to run the agent as an administrator, or the Hermes gateway as root. Hermes's checklist says never run the gateway as root. On the local backend the terminal tool runs as the same OS user, so an elevated account makes every approved command elevated.
- Do not tell them to turn approvals off to save time. The named
switches are Goose Autonomous /
GOOSE_MODE=auto(already the default), Hermesapprovals.mode: offand/yoloorHERMES_YOLO_MODE=1, and OpenClawtools.exec.modefullplus/elevated full. Goose's own description of Autonomous mode includes deleting files without approval. Hermes saysoffdisables the safety prompts. OpenClaw saysfullskips ordinary policy prompts. - Do not tell them to paste an API key into the chat, or into a file
in a folder that is pushed to a public repository. OpenClaw recommends a
private git backup of the workspace and separately says not to commit
API keys, OAuth tokens, or anything under
~/.openclaw/. A key typed into chat can land in that workspace. Hermes tells operators never to commit.env. Agent Zero tells users to keep credentials in project secrets or settings, not in prompts or public files. - Do not tell them the default is already the safe one. OpenClaw
sandbox mode defaults to
off, and gateway/node exec defaults tofull. Goose defaults to Autonomous. Hermes defaults tosmart, which auto-approves some commands. Each of those is a documented default, and the first hour changes the ones that skip the human. - Do not tell them a write allowlist or a "safe folder" stops the
shell. Hermes says the terminal can still overwrite a path that
write_filerefused, because it runs as the same user. OpenClaw says an approved command can mutate files according to the host or sandbox permissions. - Do not tell them to mount their home directory into Agent Zero, or to point OpenClaw's workspace at the home directory and call it a sandbox. Agent Zero says not to mount the entire home directory unless the risk is understood. OpenClaw says the workspace is not a hard sandbox.
- Do not tell them to set
GATEWAY_ALLOW_ALL_USERS=true,DISCORD_ALLOW_ALL_USERS=true, or OpenClawdmPolicyopen. Those are the documented "anyone can talk to the bot" switches. - Do not tell them a prompt-injection detector replaces staying logged
out. Goose's detector ships off
(
SECURITY_PROMPT_ENABLED=false). Hermes's file scanner is a heuristic. Unit 42 and Brave both describe page text the model will treat as instructions.
Sources
Opened 2026-11-14 unless noted.
Product docs:
- OpenClaw sandbox index: https://docs.openclaw.ai/gateway/sandboxing
- OpenClaw sandbox modes, scope, backend (default mode
off; backends includesshandpodman): https://docs.openclaw.ai/gateway/sandboxing/modes-scope-and-backend - OpenClaw workspace access (
none/ro/rw): https://docs.openclaw.ai/gateway/sandboxing/workspace-access - OpenClaw sandbox config example, including
docker.user: https://docs.openclaw.ai/gateway/config-agents/sandbox - OpenClaw agent workspace (not a hard sandbox): https://docs.openclaw.ai/concepts/agent-workspace
- OpenClaw exec tool (host default
mode=full): https://docs.openclaw.ai/tools/exec/ - OpenClaw exec approvals (
exec.securitydefaultfullon gateway/node,denyon a sandbox host): https://docs.openclaw.ai/tools/exec-approvals/ - OpenClaw permission modes (
ask,auto,full): https://docs.openclaw.ai/tools/permission-modes - OpenClaw elevated mode (
/elevated on,/elevated full,tools.elevated.allowFrom): https://docs.openclaw.ai/elevated - OpenClaw DM pairing and allowlists: https://docs.openclaw.ai/gateway/security/access-control
- OpenClaw LiteLLM
max_budget/budget_duration: https://docs.openclaw.ai/providers/litellm - OpenClaw goal
token_budget: https://docs.openclaw.ai/tools/goal - Hermes security (approvals, YOLO, write root, allowlists, container, non-root checklist): https://hermes-agent.nousresearch.com/docs/user-guide/security
- Hermes profiles (
terminal.cwdis not a sandbox): https://hermes-agent.nousresearch.com/docs/user-guide/profiles - Hermes Docker backends: https://hermes-agent.nousresearch.com/docs/user-guide/docker
- Hermes MCP
spend_limit: https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp - Goose permissions (Autonomous default, Settings → Chat → Default
Mode,
/mode): https://goose-docs.ai/docs/guides/managing-tools/goose-permissions.md - Goose environment variables (
GOOSE_MODE,GOOSE_MAX_TURNS,SECURITY_PROMPT_ENABLED,GOOSE_ALLOWLIST): https://goose-docs.ai/docs/guides/environment-variables.md - Goose CLI, including
--max-turnsand--container: https://goose-docs.ai/docs/guides/goose-cli-commands.md - Goose subagents tutorial (new working directory): https://goose-docs.ai/docs/tutorials/subagents/
- Goose remote access (Telegram gateway; no sender allowlist on that page): https://goose-docs.ai/docs/experimental/remote-access/
- Agent Zero README, including the Safety Model and the
127.0.0.1quick-start command: https://github.com/agent0ai/agent-zero/blob/main/README.md - Agent Zero local folders (dedicated bind mount, writable warning): https://github.com/agent0ai/agent-zero/blob/main/docs/guides/local-folders.md
Provider spend controls:
- OpenAI Monthly spend limit and Enforce a hard limit: https://developers.openai.com/api/docs/guides/spend-limits
- Anthropic spend limits and token rate limits: https://platform.claude.com/docs/en/api/rate-limits
- Anthropic workspace spend limits: https://platform.claude.com/docs/en/manage-claude/workspaces
Incident and attack writeups:
- Fast Company, 22 July 2025, Replit agent deleted Jason Lemkin's contact database after a code freeze; data was recovered: https://www.fastcompany.com/91372483/replit-ceo-what-really-happened-when-ai-agent-wiped-jason-lemkins-database-exclusive
- Moneycontrol, 9 October 2026, Shane Mac's Grok Bot finance agent posted bank balances to company Slack: https://www.moneycontrol.com/news/trends/this-ceo-built-an-ai-cfo-to-track-his-spending-it-posted-his-bank-details-on-company-slack-channel-14048835.html
- Unit 42, 3 March 2026, hidden prompts on a live scam page aimed at an AI ad reviewer; authors say they do not have a confirmed successful bypass of a deployed reviewer: https://unit42.paloaltonetworks.com/ai-agent-prompt-injection/
- Brave, 20 August 2025, Perplexity Comet followed hidden Reddit-comment instructions during summarization, in a researcher demonstration: https://brave.com/blog/comet-prompt-injection/