sesame launch and every brokered call — its model provider, Stripe, anything you’ve configured — is injected by the broker after your approval. OpenClaw itself stores only placeholders.
This guide uses the cloud broker at getsesame.dev, so you never run your own broker or hold your own keys. Running your own broker? See Self-Host — the only difference is
sesame login --broker-url <your-url>.Where is your OpenClaw running?
Hostinger (managed template)
OpenClaw deployed from Hostinger’s VPS template runs inside a Docker container with its own quirks — follow the Hostinger guide instead. More providers coming.
Any other host (self-managed)
Your own VPS, bare metal, or laptop where you run
openclaw gateway run yourself — continue below from Step 0.Step 0: get shell access to the OpenClaw host
Every command here (sesame login, sesame launch, …) runs in a terminal on the machine where the OpenClaw gateway runs — not in the OpenClaw UI. The Control UI talks to the gateway; it doesn’t give you a shell. So before anything else you need shell/SSH access to that host, and that host must be able to reach the broker at getsesame.dev.
Prerequisites
- Shell/SSH access to the host running the OpenClaw gateway (see Step 0 — the commands below do not run in the OpenClaw UI).
- An OpenClaw instance you can run (
openclaw gateway run). - Node 22.19+ (OpenClaw’s requirement).
- A Sesame account at getsesame.dev.
1. Install the Sesame CLI + edge proxy
2. Register your agent
sesame login prints a claim URL and then blocks, waiting for approval.
You, in the browser: open the claim URL, sign in to getsesame.dev, and approve the device. The command waits until you approve (it times out after ~15 minutes) and then prints
Agent approved. Don’t move on until you see that.3. Store your API keys in Sesame
In the dashboard (Secrets → Add), add one secret per provider your agent uses — for example:
The dashboard presets fill in the correct injection mode. Your real key is stored in Sesame’s vault — OpenClaw never receives it.
You, in the browser — this is a manual dashboard step, there’s no CLI command. Add a secret for each provider your agent will call before you launch it.
4. Replace OpenClaw’s real keys with dummies
So OpenClaw holds nothing real, overwrite its stored provider key with a placeholder using OpenClaw’s own onboarding — run it undersesame launch so the key-validation call is brokered (your real key is injected) while OpenClaw stores only the dummy.
For example, to set a placeholder for the provider your agent uses:
Running under
sesame launch means OpenClaw’s key-validation call is brokered — so it raises an approval in the dashboard and waits. Approve it (Approvals tab) for onboarding to finish. OpenClaw ends up storing only the placeholder.5. Run OpenClaw through Sesame
6. Use it
Message your agent. When it calls a brokered host, the request pauses and an approval appears in your dashboard.You, in the browser: open the dashboard’s Approvals tab, review the pending request, and approve it. The agent’s call is held until you do — if you don’t approve within ~5 minutes, it fails. Once approved, the broker injects your real key and the call completes. Non-brokered hosts pass straight through with no approval.
Every brokered call prompts by default. Set an auto-approve policy on your model host so chat isn’t gated on every turn, and keep per-call approval on side-effecting hosts like Stripe.
Verify it’s keyless
OpenClaw stores provider credentials in its agent SQLite store, not a plaintext file:~/.openclaw/agents/main/agent/codex-home/auth.json) so OpenClaw is fully keyless.