Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
OpenClaw is a self-hosted gateway that connects Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo, and more to AI agents. This guide covers the "personal assistant" setup: a dedicated WhatsApp number that behaves like your always-on AI assistant.
You’re putting an agent in a position to:
Start conservative:
channels.whatsapp.allowFromagents.defaults.heartbeat.every: "0m"You want this:
mermaidflowchart TB A["<b>Your Phone (personal)<br></b><br>Your WhatsApp<br>+1-555-YOU"] -- message --> B["<b>Second Phone (assistant)<br></b><br>Assistant WA<br>+1-555-ASSIST"] B -- linked via QR --> C["<b>Your Mac (openclaw)<br></b><br>AI agent"]
If you link your personal WhatsApp to OpenClaw, every message to you becomes “agent input”. That’s rarely what you want.
bashopenclaw channels login
bashopenclaw gateway --port 18789
~/.openclaw/openclaw.jsonjson5{ gateway: { mode: "local" }, channels: { whatsapp: { allowFrom: ["+15555550123"] } }, }
Now message the assistant number from your allowlisted phone.
When onboarding finishes, OpenClaw auto-opens the dashboard and prints a clean (non-tokenized) link. If the dashboard prompts for auth, paste the configured shared secret into Control UI settings. Onboarding uses a token by default (
gateway.auth.tokengateway.auth.modepasswordopenclaw dashboardOpenClaw reads operating instructions and “memory” from its workspace directory.
By default, OpenClaw uses
~/.openclaw/workspaceAGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.mdMEMORY.mdAGENTS.mdTOOLS.mdbashopenclaw setup
Full workspace layout + backup guide: Agent workspace Memory workflow: Memory
Optional: choose a different workspace with
agents.defaults.workspace~json5{ agents: { defaults: { workspace: "~/.openclaw/workspace", }, }, }
If you already ship your own workspace files from a repo, you can disable bootstrap file creation entirely:
json5{ agents: { defaults: { skipBootstrap: true, }, }, }
OpenClaw defaults to a good assistant setup, but you’ll usually want to tune:
SOUL.mdExample:
json5{ logging: { level: "info" }, agent: { model: "anthropic/claude-opus-4-6", workspace: "~/.openclaw/workspace", thinkingDefault: "high", timeoutSeconds: 1800, // Start with 0; enable later. heartbeat: { every: "0m" }, }, channels: { whatsapp: { allowFrom: ["+15555550123"], groups: { "*": { requireMention: true }, }, }, }, routing: { groupChat: { mentionPatterns: ["@openclaw", "openclaw"], }, }, session: { scope: "per-sender", resetTriggers: ["/new", "/reset"], reset: { mode: "daily", atHour: 4, idleMinutes: 10080, }, }, }
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl~/.openclaw/agents/<agentId>/sessions/sessions.json~/.openclaw/sessions/sessions.json/new/resetresetTriggers/compact [instructions]By default, OpenClaw runs a heartbeat every 30 minutes with the prompt:
Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.agents.defaults.heartbeat.every: "0m"HEARTBEAT.md# HeadingHEARTBEAT_OKagents.defaults.heartbeat.ackMaxCharsuser:<id>agents.defaults.heartbeat.directPolicy: "block"json5{ agent: { heartbeat: { every: "30m" }, }, }
Inbound attachments (images/audio/docs) can be surfaced to your command via templates:
{{MediaPath}}{{MediaUrl}}{{Transcript}}Outbound attachments from the agent: include
MEDIA:<path-or-url>textHere’s the screenshot. MEDIA:https://example.com/screenshot.png
OpenClaw extracts these and sends them as media alongside the text.
Local-path behavior follows the same file-read trust model as the agent:
tools.fs.workspaceOnlytrueMEDIA:tools.fs.workspaceOnlyfalseMEDIA:That means generated images/files outside the workspace can now send when your fs policy already allows those reads, without reopening arbitrary host-text attachment exfiltration.
bashopenclaw status # local status (creds, sessions, queued events) openclaw status --all # full diagnosis (read-only, pasteable) openclaw status --deep # asks the gateway for a live health probe with channel probes when supported openclaw health --json # gateway health snapshot (WS; default can return a fresh cached snapshot)
Logs live under
/tmp/openclaw/openclaw-YYYY-MM-DD.log© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine