OmniRunDocs

OpenClaw

The openclaw template deploys an AI agent gateway in an isolated microVM. Connect messaging channels like WhatsApp, Telegram, Discord, and Slack.

openclaw templateWhatsApp, Telegram, Discord, Slack

Create the sandbox

All LLM requests route through the OmniRun proxy with per-user spend tracking and a €5 free tier. Use vaultInject: true to inject your own API keys for BYOK mode: set the config provider to "openai" or "anthropic" instead of "omnirun".

Create OpenClaw sandbox
import { Sandbox } from "@omnirun/sdk";

const sandbox = await Sandbox.create("openclaw", {
  vaultInject: true,
});

// Write OpenClaw config
await sandbox.files.write(
  "/app/config.json",
  JSON.stringify({
    provider: "omnirun",
    model: "openai/gpt-4o-mini",
    channels: ["whatsapp"],
  })
);

// Start the gateway
await sandbox.commands.run("node /app/gateway.js");

Config and models

OpenClaw config format
{
  "provider": "omnirun",      // Custom OmniRun provider
  "model": "openai/gpt-4o-mini",
  "channels": ["whatsapp"],  // or telegram, discord, slack
  "systemPrompt": "You are a helpful assistant."
}
Available models via proxy
"openai/gpt-4o-mini"          // Default, free tier
"anthropic/claude-sonnet-4.6"  // Free tier
"google/gemini-3.1-pro-preview"  // Free tier
"kilo-auto/balanced"         // Free tier

// BYOK: store your own key in the vault
// and set provider to "openai" or "anthropic"

WhatsApp pairing

After starting the gateway, expose port 3000 and visit the /connect endpoint to scan the WhatsApp QR code. Once paired, messages are handled automatically.

WhatsApp pairing
// Expose the pairing endpoint
const exposure = await sandbox.expose(3000);

// Visit the URL to scan the QR code
console.log(exposure.url + "/connect");
// → https://abc123.run.omnirun.io/connect

// Once paired, messages flow automatically
// through the LLM proxy and back to WhatsApp