Research

First-hour safety checklist

Checked 2026-11-14. This chapter is the checklist for the first hour of a layman guide. It does not pick which agent to install. The same five switches apply to OpenClaw, Hermes, or Goose. Agent Zero has its own short branch at the end, because its safety model is the container.

Every menu name below is copied from the product docs opened for the notes. Where a doc does not name a control, this chapter says it was not found. A later guide can copy the switches without opening those docs again. Re-check the link in Sources before printing a label if the docs have moved since 14 November 2026.

The main path does not use Docker. A folder plus an approval prompt is a real limit, and it is weaker than a container. Say that in the guide.


Three failure modes

A normal person can lose files, send something they cannot take back, or have the agent obey a stranger's text that was sitting on a web page. Those three matter before anyone connects email, a bank, or a whole Documents folder.

A sentence in chat such as "don't change anything" is a request. It is not a lock.

Deleting or overwriting personal files

If the agent can run commands or save files, it can overwrite or delete whatever that computer account can reach.

Opened incident, 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.

If the guide retells this, keep the limits from the writeup:

The product docs still describe the capability directly. Goose's Autonomous mode can "modify files, use extensions, and delete files without requiring approval." 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."

Source: Fast Company, 22 July 2025.

Spending money or sending messages

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 incident, 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.

If the guide retells this, keep the limits from the writeup:

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 money control for a beginner is a monthly spend cap at the model company. The screen names are in First-hour switches. No monthly dollar cap was found inside OpenClaw, Goose, or Agent Zero.

Source: Moneycontrol, 9 October 2026.

Hidden instructions on a web page

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. The writeups call this indirect prompt injection.

Two opened 2025–2026 sources, with different strength:

Checklist line for the guide: 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 when 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. Goose has SECURITY_PROMPT_ENABLED, default false, described as prompt-injection detection for potentially harmful commands. Neither scanner is a reason to connect a bank.


What each product's docs start with

These are the documented starting points. The first hour changes them for OpenClaw, Hermes, and Goose. This chapter does not call the starting points a careful setup.

Product What the doc says it starts as What that lets the agent do
OpenClaw Sandbox mode agents.defaults.sandbox.mode defaults to off. Host exec on the gateway and node is mode=full. exec.ask defaults to off. Tools run on the computer. full runs host commands without ordinary policy prompts. A sandbox host, if one is set up, defaults to exec.security deny. The first hour on this path does not set up that sandbox.
Goose Autonomous, also GOOSE_MODE=auto. The desktop label is Completely Autonomous. The permissions page says this mode can modify files, use extensions, and delete files without requiring approval.
Hermes approvals.mode defaults to smart in ~/.hermes/config.yaml. An auxiliary model auto-approves low-risk commands, auto-denies dangerous ones, and asks when unsure. A prompt that sits for the default 300 seconds is denied.
Agent Zero The safety model is the container. The quick-start command publishes the UI only on 127.0.0.1:5080 and stores data in the Docker named volume a0_usr, mounted at /a0/usr. No approval-mode name was found. The safety model says to review actions that touch accounts, money, production systems, or private data. It does not name a switch for that review.

Other "not found" results to keep:

OpenClaw's workspace is "the default cwd, not a hard sandbox." Relative paths start there. Absolute paths can still reach the rest of the computer while sandboxing is off. The default workspace folder is ~/.openclaw/workspace, separate from ~/.openclaw/ (config and credentials). Pointing that workspace at the home directory shares the home directory with file tools, and it is still not a sandbox.


First-hour switches

Use this list for OpenClaw, Hermes, or Goose. Do the switches before connecting email, a bank, Slack, or a chat bot. Docker is not part of this list.

Copy these five lines into the guide:

  1. Dedicated folder. One new folder. Nothing personal in it.
  2. Approvals on. Goose Manual Approval (in the terminal: Approve Mode, GOOSE_MODE=approve). Hermes approvals.mode: manual. OpenClaw tools.exec.mode ask, plus tools.fs.workspaceOnly: true and tools.exec.applyPatch.workspaceOnly: true, because ask covers shell commands only and OpenClaw's file tools (write, edit, apply_patch) never ask and are unrestricted by default (permission modes, tool permissions, checked 2026-11-14).
  3. No email or bank. Those sites stay logged out of any browser the agent can open. Calendar and shopping stay logged out too.
  4. No public chat bot. No Telegram, Slack, Discord, or WhatsApp bot in the first hour.
  5. Provider spend cap. Set it at OpenAI or Anthropic before pasting any API key. Use the screen names below.

Then one boring task, still in that folder: ask the agent to read one 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. Open the folder in the file manager and confirm only the expected file appeared.

Run the agent from an ordinary account. Hermes's production checklist says "Run as non-root — never run the gateway as root." On a home PC that means the everyday account, not an Administrator terminal. On the local backend, Hermes's terminal tool runs as that same OS user, so an elevated account makes every approved command elevated.

1. Dedicated folder

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.

Product Where to point it Exact name
OpenClaw Keep the workspace on its own folder. Use the default ~/.openclaw/workspace, or point OPENCLAW_WORKSPACE_DIR at the new folder. The config keys are agents.defaults.workspace and, per agent, agents.entries.*.workspace. Do not point the workspace at the home directory. With sandboxing left off, a command that uses a full path can still reach files outside the folder. ask prompts for commands that miss the allowlist. An approved command can still change files.
Hermes Set terminal.cwd in the profile's config.yaml to the new folder. Set HERMES_WRITE_SAFE_ROOT to that folder. On Windows, separate multiple folders with ;. On macOS and Linux, separate them with :. Include the Hermes home as a second root only if Hermes must still save its own state. The doc's example for allowing both is HERMES_WRITE_SAFE_ROOT=/path/to/project:/home/you/.hermes. A project-only root blocks writes to Hermes's own files outside that folder.
Goose Start in the new folder. The subagents tutorial says to choose a working directory and recommends a newly created directory. The normal session is on the computer. The permissions page does not make a container the default.

HERMES_WRITE_SAFE_ROOT limits write_file and patch only. On the local backend the terminal tool runs as the same OS user and can still cat or overwrite a denied path via a shell command. Set the root anyway. Tell the reader it is not a container.

terminal.cwd is not a sandbox. OpenClaw's workspace is not a hard sandbox either.

2. Approvals on

Set the mode in this table. The documented starting points above are looser. This step is a change.

Product Set this How the doc says to do it Leave these off
Goose Manual Approval. In the terminal that choice is Approve Mode. The variable is GOOSE_MODE=approve. Mid-chat in the terminal only: /mode approve (the desktop app at v1.59.1 has no mode slash command; start a new chat after changing Default Mode). Desktop: open the sidebar from the top-left button, then Settings, Chat, Default Mode. The labels on that screen are Completely Autonomous, Manual Approval, Smart Approval, and Chat Only. Choose Manual Approval. Terminal: goose configure, then goose settings, then goose mode, then Approve Mode. Completely Autonomous, Smart Approval, and GOOSE_MODE=auto. Autonomous is the documented start, and the page says it can delete files without approval.
Hermes approvals.mode: manual In ~/.hermes/config.yaml. Leave terminal.backend at local so the prompt stays on. manual prompts on commands that match Hermes's dangerous-command list (recursive rm, SQL DROP, and the rest of that list). approvals.mode: off, hermes --yolo, /yolo, and HERMES_YOLO_MODE=1. A hardline blocklist still refuses a few catastrophic commands such as rm -rf /, including under YOLO. That list is not a general file lock.
OpenClaw tools.exec.mode ask openclaw config set tools.exec.mode ask, then restart the gateway. Check with openclaw approvals get and openclaw exec-policy show. ask runs allowlisted commands and asks a human for anything else. The one-message /exec ask=always does not persist, so the config change is the one to keep. tools.exec.mode full, /elevated on, and /elevated full. /elevated full runs outside the sandbox and skips approvals when the host policy is already permissive. /elevated on leaves the sandbox and keeps approvals. Also leave agents.defaults.sandbox.mode at off on this no-Docker path.

Read each prompt. Two docs describe the prompt as narrower than "ask before everything":

Optional Goose turn cap for the first sessions: GOOSE_MAX_TURNS=25. The environment-variable page uses 25 as one of its examples (the others shown are 5 and 100). The default is 1000. goose session --max-turns is the same knob. This counts assistant turns without new user input. It is a loop limit. The dollar cap is the provider screen in switch 5.

3. No email or bank

Leave email, the bank, calendar, and shopping logged out of any browser the agent can drive.

Do this even if the product offers a read-only connection. The October 2026 Moneycontrol account is a read-only bank link that still posted balances to the wrong Slack channel. Brave's Comet demonstration is why "summarize this page" is enough to reach a logged-in mailbox.

Wait until the boring file task in the dedicated folder has worked and the person has looked at the folder themselves.

4. No public chat bot

Leave Telegram, Slack, Discord, and WhatsApp unconnected for the first hour. A bot that can touch files is a remote control for those files.

Goose: do not enable the Telegram gateway. The remote-access page does not name a sender allowlist.

After the boring task looked right, a later chapter can connect one bot with these documented limits:

Product First value that keeps strangers out Exact names
Hermes The owner's own id, or pairing. 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 (the default on chat-style DMs). Approve with hermes pairing approve <platform> <code>. Leave GATEWAY_ALLOW_ALL_USERS unset. If no allowlist is set and that flag is unset, the gateway denies everyone. The security page says never use GATEWAY_ALLOW_ALL_USERS=true in production.
OpenClaw Leave DMs on pairing, which is the documented default. Approve one code. dmPolicy: pairing. Command: openclaw pairing approve <channel> <code>. Allowlist field allowFrom (channel examples include channels.discord.allowFrom and channels.slack.allowFrom). Group side: groupPolicy default allowlist. Do not set dmPolicy to open. open allows anyone and requires the allowlist to include "*".
Goose Leave remote chat off. No sender allowlist was found on the Remote Access page.
Agent Zero Do not expose the UI off the machine. No chat-sender allowlist was found. The quick-start Docker command binds 127.0.0.1 only. See the Agent Zero branch.

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.

5. Provider spend cap

Set a monthly cap at the model company before pasting any API key into the agent. A small cap is the point. The first hour should be able to hit it without hurting.

No monthly dollar cap was found in OpenClaw, Goose, or Agent Zero. These product knobs are different and do not replace the provider screen:

OpenAI. Organization limits → Spend → Edit spend limit → enter a Monthly spend limit → turn on Enforce a hard limit → Save. The same labels exist under Project settings → Limits.

A spend alert only notifies. Enforce a hard limit makes later requests fail with HTTP 429. Enforcement can lag, so the bill can slightly pass the number.

Anthropic. Open the Spend limits page platform.claude.com/settings/spend-limits. Next to Monthly spend limit, use Adjust limit or Set limit. The limit cannot exceed the organization's tier cap. 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 Anthropic screen: Rate limits, pick the workspace, Edit next to a model, for requests per minute, input tokens, or output tokens.

Where the key goes, after the cap is saved:

The key does not go in the chat. It does not go in the experiment folder if that folder will be committed. A key typed into chat can land in OpenClaw's workspace. OpenClaw recommends a private git backup of the workspace and separately says not to commit API keys, OAuth tokens, or anything under ~/.openclaw/. Hermes says never commit .env files. Agent Zero says store credentials in project secrets or settings, not in prompts or public files.

After the first hour, if they want a real wall

This is not one of the five switches. Skip it in the first-hour guide.

Those are stronger than the first-hour folder. They are not required to start OpenClaw, Hermes, or Goose.


Agent Zero branch

Use this only when the person is installing Agent Zero. The other three products stay on the five switches above, without Docker.

Agent Zero's safety model is the container. The agent, its Linux desktop, and its browser run there. The safety model does not offer a host-install mode as the setup. Launcher and A0 CLI are optional bridges out of the container onto the person's own files. No approval-mode name was found.

First hour, in the container:

  1. Dedicated folder inside Docker. Prefer the quick-start named volume, -v a0_usr:/a0/usr, over a bind mount. The named volume keeps data inside Docker. The quick start does not mount the home directory. The safety model says "Do not mount your entire home directory unless you understand the risk."
  2. No approval switch to turn on. None is documented. The safety model still says to review actions that touch accounts, money, production systems, or private data. That review is the person's job in the first hour.
  3. No email or bank. Do not turn on Host access or A0 CLI. Give Launcher or A0 CLI permission to edit files and run commands only when the connected instance is trusted. That wait lasts through the first hour.
  4. No public UI. Keep the published port on 127.0.0.1. Do not expose the UI off the machine. No chat-sender allowlist was found.
  5. The same provider spend cap as switch 5 above. No monthly dollar cap was found in Agent Zero's own settings. Store the key in project secrets or settings.

If a bind mount is required later, mount one new folder at /a0/usr. The folder guide's example host path is a dedicated directory such as /home/user/agent-zero-data. A bind mount writes through to the original files. Keep a separate backup. Time Travel snapshots under /a0/usr are "not a replacement for Git or backups."

The same boring test still applies: one harmless file, one new note, then look at the folder. On a bind mount, that look is at the original files on the computer. On the named volume, the files stay inside Docker.


What not to tell a beginner


Sources

Opened 2026-11-14 unless a date is in the title.

Product docs:

Provider spend controls:

Incident and attack writeups:

Checked 14 November 2026 · prices, limits, and versions change