Skip to main content
Run everything below in your OpenClaw container’s App terminal (hPanel → your app → App terminal), as root. The gateway runs as the node user (HOME=/data), so Sesame commands are prefixed with runuser -u node --. Installing into /data and wrapping via the compose file keeps the setup alive across restarts, reboots, and container recreates — only /data and the compose file survive a recreate, and both hold everything Sesame needs. Requires the cloud broker at getsesame.dev. See the main OpenClaw guide for the concepts (secrets, injection, approvals).

1. Install + register (container shell)

2. Wrap the gateway (container shell)

3. Point the compose file at it (host shell or panel YAML editor)

In docker-compose.yml, under the openclaw service, add both keys (setting entrypoint clears the image’s default command, so restate it):
Apply:

4. Add your secrets and verify

In getsesame.devSecrets → Add, add a secret for each host your agent calls — the preset fills the injection mode. Set an auto-approve policy on your model host so chat doesn’t pause every turn; keep per-call approval on side-effecting hosts. Confirm a brokered call succeeds, using any host you added a secret for:
Then send a chat in OpenClaw and approve the first call. The reply arrives with your real key injected server-side — OpenClaw never sees it.

Troubleshooting

Running this with an agent? Give it the steps above and have it run them in the container’s App terminal — pausing for the browser approval at sesame login, and confirming step 4’s brokered call returns 200.