#Recommendation: run a single gateway per machine for most setups. what do I do
1 messages Β· Page 1 of 1 (latest)
Recommendation: run a single gateway per machine for most setups. One gateway supports multiple agents (see docs: /gateway#multiple-gateways-same-host).
If you need multiple gateways (e.g., a rescue bot on the same host), isolate ports + config/state (see docs: /gateway#multiple-gateways-same-host).
Usually, do nothing special here π
If this is just one machine running your normal bot, use one gateway and put multiple agents behind it.
Only set up a second gateway if you explicitly want isolation, like a rescue bot. In that case:
- give it a separate profile
- use a different port
- keep config, state, and workspace separate
Example:
# main
openclaw gateway --port 18789
# rescue
openclaw --profile rescue gateway --port 19001
If you want the cleaner full setup flow:
openclaw --profile rescue onboard
openclaw --profile rescue gateway install
Important bits from the docs:
- separate
OPENCLAW_CONFIG_PATH - separate
OPENCLAW_STATE_DIR - separate
agents.defaults.workspace - leave about 20 ports between gateway base ports
Docs:
If you're already hitting a warning/error, paste:
openclaw --version
openclaw gateway status --deep
and Iβll help you read it.
Short version, if you are not intentionally running 2 separate gateways, ignore that warning and stick with one gateway.
What to do:
- Run one
openclaw gateway - Add/use multiple agents under that same gateway if needed
- Only create a second gateway if you specifically want isolation, like a rescue bot
If you do want 2 gateways on one machine, then each one needs:
- its own
--profile - its own port
- its own config/state/workspace
Example:
openclaw gateway --port 18789
openclaw --profile rescue gateway --port 19001
Docs:
If you're unsure what your machine is currently doing, paste:
openclaw --version
openclaw gateway status --deep
and Iβll tell you which setup you actually have.
my openclaw answered who are you who am I after a restart gateway
π¦ OpenClaw 2026.4.22 (00bd2cf)
Somewhere between 'hello world' and 'oh god what have I built.'
β
β
β
β
OpenClaw status
Overview
ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Item β Value β
ββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β OS β macos 15.7.4 (x64) Β· node 25.6.1 β
β Dashboard β http://127.0.0.1:18789/ β
β Tailscale β off β
β Channel β stable (default) β
β Update β pnpm Β· up to date Β· npm latest 2026.4.22 β
β Gateway β local Β· ws://127.0.0.1:18789 (local loopback) Β· β
β β reachable 95ms Β· auth token Β· Marcelos-iMac.local β
β β (192.168.1.144) app 2026.4.22 macos 15.7.4 β
β Gateway self β Marcelos-iMac.local (192.168.1.144) app 2026.4.22 β
β β macos 15.7.4 β
β Gateway service β LaunchAgent installed Β· loaded Β· running (pid 46902) β
β Node service β LaunchAgent installed Β· loaded Β· running (pid 53265) β
β Agents β 6 Β· 1 bootstrap file present Β· sessions 23 Β· default β
β β main active 6m ago β
β Memory β 113 files Β· 642 chunks Β· sources memory Β· plugin β
β β memory-core Β· vector ready Β· fts ready Β· cache on β
β β (887) β
β Plugin compatibility β none β
β Probes β skipped (use --deep) β
β Events β none β
β Tasks β 0 active Β· 0 queued Β· 0 running Β· 50 issues Β· audit β
β β 1 error Β· 29 warn Β· 173 tracked β
β Heartbeat β 1h (main), disabled (bob), disabled (chip), disabled β
β β (jade), disabled (nova), disabled (rex) β
β Sessions β 23 active Β· default claude-sonnet-4.6 (200k ctx) Β· 6 β
β β stores β
ββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Task maintenance: openclaw tasks maintenance --apply
Security audit
Summary: 0 critical Β· 6 warn Β· 1 info
WARN Reverse proxy headers are not trusted
gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client cβ¦
Fix: Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only.
WARN Control UI insecure auth toggle enabled
gateway.controlUi.allowInsecureAuth=true does not bypass secure context or device identity checks; only dangerouslyDisableDeviceAuth disables Control UI deviceβ¦
Fix: Disable it or switch to HTTPS (Tailscale Serve) or localhost.
WARN Insecure or dangerous config flags enabled
Detected 1 enabled flag(s): gateway.controlUi.allowInsecureAuth=true.
Fix: Disable these flags when not actively debugging, or keep deployment scoped to trusted/local-only networks.
WARN Exec security=full is configured
Full exec trust is enabled for: main, rex, nova, bob, jade, chip.
Fix: Prefer tools.exec.security="allowlist" with ask prompts, and reserve "full" for tightly scoped break-glass agents only.
WARN Interpreter allowlist entries are missing strictInlineEval hardening
Interpreter/runtime allowlist entries were found without strictInlineEval enabled: - agents.main.allowlist: python3
Yep, this looks like a bootstrap file still exists, not a multi-gateway problem.
The clue is here:
Agents: 6 Β· 1 bootstrap file present
BOOTSTRAP.md is the first-run ritual file. If itβs still sitting in an agent workspace, OpenClaw can act like itβs waking up fresh and ask the βwho are you / who am Iβ questions again after restart.
What to do:
- Find the leftover bootstrap file:
find ~/.openclaw -name BOOTSTRAP.md - Move/rename that file out of the workspace
- Restart the gateway
Docs confirm it should only run once, and BOOTSTRAP.md should be removed after completion:
The security warnings in your paste are unrelated to this specific symptom.
If you want, paste the output of:
find ~/.openclaw -name BOOTSTRAP.md
and Iβll help you identify which agent/workspace is causing it.
okey just moved it now what
Nice, next step is just:
-
Restart the gateway
openclaw gateway restart -
Start a fresh chat/session with that agent and see if it stops doing the identity/bootstrap questions.
-
Optional sanity check:
openclaw statusYou want that
bootstrap file presentbit to be gone.
If it still happens after the restart, paste the new openclaw status output and Iβll keep digging.
Glad we caught that one π¦
OpenClaw status
Overview
ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Item β Value β
ββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β OS β macos 15.7.4 (x64) Β· node 25.6.1 β
β Dashboard β http://127.0.0.1:18789/ β
β Tailscale β off β
β Channel β stable (default) β
β Update β pnpm Β· up to date Β· npm latest 2026.4.22 β
β Gateway β local Β· ws://127.0.0.1:18789 (local loopback) Β· β
β β reachable 1.24s Β· auth token Β· Marcelos-iMac.local β
β β (192.168.1.144) app 2026.4.22 macos 15.7.4 β
β Gateway self β Marcelos-iMac.local (192.168.1.144) app 2026.4.22 β
β β macos 15.7.4 β
β Gateway service β LaunchAgent installed Β· loaded Β· running (pid 71390) β
β Node service β LaunchAgent installed Β· loaded Β· running (pid 72429) β
β Agents β 6 Β· no bootstrap files Β· sessions 23 Β· default main β
β β active just now β
β Memory β 113 files Β· 642 chunks Β· sources memory Β· plugin β
β β memory-core Β· vector ready Β· fts ready Β· cache on β
β β (887) β
β Plugin compatibility β none β
β Probes β skipped (use --deep) β
β Events β none β
β Tasks β 0 active Β· 0 queued Β· 0 running Β· 50 issues Β· audit β
β β 1 error Β· 29 warn Β· 173 tracked β
β Heartbeat β 1h (main), disabled (bob), disabled (chip), disabled β
β β (jade), disabled (nova), disabled (rex) β
β Sessions β 23 active Β· default claude-sonnet-4.6 (200k ctx) Β· 6 β
β β stores β
ββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Task maintenance: openclaw tasks maintenance --apply
Security audit
Summary: 0 critical Β· 6 warn Β· 1 info
WARN Reverse proxy headers are not trusted
gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client cβ¦
Fix: Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only.
WARN Control UI insecure auth toggle enabled
gateway.controlUi.allowInsecureAuth=true does not bypass secure context or device identity checks; only dangerouslyDisableDeviceAuth disables Control UI deviceβ¦
Fix: Disable it or switch to HTTPS (Tailscale Serve) or localhost.
WARN Insecure or dangerous config flags enabled
Detected 1 enabled flag(s): gateway.controlUi.allowInsecureAuth=true.
Fix: Disable these flags when not actively debugging, or keep deployment scoped to trusted/local-only networks.
WARN Exec security=full is configured
Full exec trust is enabled for: main, rex, nova, bob, jade, chip.
Fix: Prefer tools.exec.security="allowlist" with ask prompts, and reserve "full" for tightly scoped break-glass agents only.
WARN Interpreter allowlist entries are missing strictInlineEval hardening
Interpreter/runtime allowlist entries were found without strictInlineEval enabled: - agents.main.allowlist: python3
Fix: Set tools.exec.strictInlineEval=true (or per-agent tools.exec.strictInlineEval=true) when allowlisting interpreters like python, node, ruby, perl, php, lua, or osascript.
WARN Some gateway.nodes.denyCommands entries are ineffective
gateway.nodes.denyCommands uses exact node command-name matching only (for example system.run), not shell-text filtering inside a command payload. - Unknown β¦
Fix: Use exact command names (for example: canvas.present, canvas.hide, canvas.navigate, canvas.eval, canvas.snapshot, canvas.a2ui.push, canvas.a2ui.pushJSONL, canvas.a2ui.reset). If you need broader restrictions, remove risky command IDs from allowCommands/default workflows and tighten tools.exec policy.
Full report: openclaw security audit
Deep probe: openclaw security audit --deep
That looks fixed β
The important line is:
Agents: 6 Β· no bootstrap files
So the restart/identity ritual issue should be gone now. If an old existing chat/session still behaves weird, open a new session/thread once, because the stale session may still carry old context.
The remaining warnings are separate from this bug. The only one Iβd clean up later is:
gateway.controlUi.allowInsecureAuth=true
If youβre only using localhost, itβs not urgent, but Iβd disable it when youβre done debugging.
Glad that helped π
If this fixed it, please right-click the solution message β Apps β β
Mark Solution.
This helps Answer Overflow index the solution for future users.
I still get the same reply who am I
Those are hardening warnings, not βOpenClaw is brokenβ warnings.
For your setup, Iβd split it like this:
Fine to leave for now
Exec security=full
- This is common on a personal, trusted, local setup.
- It becomes a concern if you want stricter approval/allowlist guardrails.
Good idea to fix
strictInlineEval
- Since you allowlist
python3, Iβd enable this:
openclaw config set tools.exec.strictInlineEval true
That keeps stuff like python -c ... behind explicit approval even if python3 itself is allowed.
Needs cleanup, but I would inspect first
gateway.nodes.denyCommands ineffective
- This means some deny entries donβt match real exact node command names.
denyCommandsdoes not filter shell text, it only matches exact command IDs likecanvas.present.
So my recommendation is:
-
Enable:
openclaw config set tools.exec.strictInlineEval true -
Leave
security=fullalone unless you specifically want a tighter setup.
If you do, switch to:openclaw config set tools.exec.security allowlist
- Run:
and paste the part that shows the badopenclaw security audit --deepgateway.nodes.denyCommandsentries, then I can tell you exactly what to remove/change.
Docs:
- https://docs.openclaw.ai/gateway/security
- https://docs.openclaw.ai/tools/exec
- https://docs.openclaw.ai/tools/exec-approvals
If you want, I can help you harden this step by step without over-locking your setup.
Ah, good catch. If status says no bootstrap files, then the workspace is fixed. Whatβs probably stuck now is the session, not bootstrapping.
You have 23 active sessions, so Iβd try the least-destructive fix first:
In the chat with your OpenClaw, send:
/new
or
/reset
That forces a fresh session. Docs: https://docs.openclaw.ai/concepts/session
If that fixes it, great, it was stale session context.
If it still answers with the same βwho am Iβ stuff even after /new, then I want two things:
openclaw sessions --all-agents --active 120
openclaw logs --follow
Then trigger one bad reply and paste the relevant output here.
So, next step: try /new first. Thatβs the cleanest test.
okey its back online, should I run the other stuff on terminal too
Nope, not yet.
If itβs back online, do this first:
- Test a normal message
- If the old weird context is still there, send:
or/new/reset
If it answers normally after that, youβre done β
Only run terminal stuff if the βwho am Iβ reply comes back again. Then grab: