OpenClaw Harness
OpenClaw is an open-source (MIT), local-first personal-assistant harness in TypeScript by Peter Steinberger (Peter Steinberger) and the OpenClaw Foundation. Unlike the coding-agent harnesses, its center of gravity is a long-lived Gateway daemon that connects one agent runtime to the ~20 messaging channels you already use — and it can orchestrate Claude Code / Codex as sub-CLIs. Kevin treats it as the swappable alternate to Hermes on Agent Machines.
It is a standalone codebase (github.com/openclaw/openclaw) with its own embedded, provider-agnostic runtime — not a fork of Claude Code (and not the unrelated "Captain Claw" game engine). Install npm i -g openclaw@latest then openclaw onboard --install-daemon. Source: openclaw/openclaw repo
Kevin starred openclaw/openclaw on 2026-06-28; the GitHub API snapshot listed 380,858 stars and a 2026-06-28 push timestamp. Treat that as a strong watch signal for harness comparison and personal-assistant runtime architecture, not as a default replacement for Codex/Claude Code in repo work. Source: raw/github/kevin-starred-repos-2026-06-28.json
Gateway architecture
A single Gateway daemon is the control plane (default 127.0.0.1:18789); it does not itself reason — it owns connections and runs one embedded agent runtime per gateway. Clients (macOS app, CLI, web admin, automations) and Nodes (macOS/iOS/Android/headless devices declaring capabilities) connect over a typed WebSocket protocol (TypeBox → JSON Schema → generated Swift models; events agent/chat/presence/health/cron). One WhatsApp/Telegram/Slack/Discord/Signal/iMessage session is owned per host. Source: OpenClaw architecture docs
The run loop
The agentic loop: intake → context assembly → model inference → tool execution → streaming replies → persistence. An agent RPC validates and returns {runId} immediately; the runtime serializes runs per session lane (plus an optional global lane) to prevent tool/session races, streams assistant/tool/lifecycle deltas, and enforces timeouts (default agent run up to 48h; cron runs own their own). Mid-run inbound messages are steered into the active run by default (alternatives: followup / collect / interrupt), guarded by a file-based session write lock; long conversations auto-compact. Source: OpenClaw agent-loop docs
Skills, rules, hooks
- Skills follow the cross-tool AgentSkills
SKILL.mdspec with load precedence workspace → project.agents/skills→ personal~/.agents/skills→ managed~/.openclaw/skills→ bundled; eligible skills compile into an XML block injected into the system prompt, snapshotted at session start. Registry is ClawHub; installs run a dangerous-code scanner withbuiltin/official/trusted/communitytrust tiers. Source: OpenClaw skills docs - The public OpenClaw Agent Skills repo is the shared-workflow bundle for
autoreview,handoff,crabbox,agent-transcript, andsession-viewer. Kevin has adoptedautoreviewandhandoff, documentscrabbox, and treats the transcript/session tools as candidates pending privacy review. Source:openclaw/agent-skillsREADME, 2026-06-30 - "Rules" = injected bootstrap files concatenated into the first-turn Project Context:
AGENTS.md(instructions + editable "memory"),SOUL.md(persona),TOOLS.md,IDENTITY.md,USER.md, one-timeBOOTSTRAP.md. - Two hook systems: gateway/event hooks (
agent:bootstrap,/new,/reset) and plugin lifecycle hooks (before_model_resolve,before_prompt_build,before_tool_call/after_tool_call,before_install,before/after_compaction,session_start/end) where{block:true}is terminal.
Tools, MCP, sandbox, memory
- Built-in tools
read/exec/edit/write(+ optionalapply_patch), plusbrowser,canvas,nodes,cron, andsessions_*(list/history/send/spawn). Exec approvals gate shell commands. - MCP both directions: client (stdio + Streamable HTTP) and server (exposes its own tools over MCP), plus ACP and a Codex-supervisor extension — see MCP Server Architecture.
- Sandboxing: tools run on the host for the
mainsession ("when it's just you");agents.defaults.sandbox.mode: non-mainsandboxes other sessions, Docker as the default backend (SSH/OpenShell also). Inbound DMs are treated as untrusted input (pairing codes, allowlists). - Memory/persistence: durable workspace dir (bootstrap files re-injected),
AGENTS.mdas editable memory, append-only JSONL session transcripts, and a Skill Workshop that queues agent-proposed skills for human approval. Scheduling via cron + webhooks + Gmail Pub/Sub; multi-agent routing maps channels to isolated per-agent workspaces. Source: OpenClaw agent docs
VisionClaw gives this gateway architecture a wearable-client example. The mobile app streams Meta Ray-Ban or phone-camera context to Gemini Live and exposes a single execute tool; when OpenClaw is configured, that call crosses the phone-to-Mac network boundary and runs through the local gateway's connected skills/apps. That makes OpenClaw the action plane behind an ambient voice-and-vision surface, while also raising the ordinary gateway concerns: LAN exposure, token auth, consent, side-effect preview, and recoverable failures. Source: Intent-Lab/VisionClaw README, 2026-07-04
Security caveat
The skills supply chain is a real attack surface: the early-2026 "ClawHavoc" campaign poisoned ClawHub with ~1,000+ malicious skills that smuggled the Atomic macOS Stealer via fake "Prerequisites" in SKILL.md instructing the agent to run curl | bash — a Markdown file acting as an installer. ClawHub added publisher verification, mandatory scans, and community reporting; the Security and Review Skills skill (from useai-pro/openclaw-skills-security) and the three-gate install chain exist for exactly this. Treat third-party skills as untrusted code (Agent Guardrails Architecture). Source: Antiy Labs ClawHavoc analysis
Contrast
OpenClaw sits a layer above the coding agents: where Claude Code, Codex, and Cursor are repo/IDE-centric copilots, OpenClaw is a multi-channel assistant gateway that also codes and can drive those CLIs as sub-agents (it even materializes its skill snapshot as a temporary Claude Code plugin). Versus Hermes: both are "install an agent on a persistent machine, point it at an OpenAI-compatible endpoint," which is why Agent Machines treats them as swappable runtimes — but they share a deployment contract, not internals (Hermes is Nous's Python runtime; OpenClaw is a TS channel/node/canvas gateway, and Hermes ships claw migrate as its successor).
Ahmad's "switch to Hermes" bookmark is preserved here as an external operator preference, not as a deletion of the OpenClaw capsule. The practical rule stays: prefer Hermes when persistent self-owned memory/cron/goals/approvals are the load-bearing primitives; prefer OpenClaw when the gateway/channel/node topology or OpenClaw skill ecosystem is the subject under review. Source: X/@TheAhmadOsman, 2026-06-22
Gemini Spark is the managed-Google counterpart some observers compare to OpenClaw: a Gemini 3.5 Flash + Antigravity personal agent inside the Gemini app, with Google app connections, tasks, skills, schedules, and background execution. Keep the boundary explicit. Spark is a hosted consumer/productivity agent in Google's control plane; OpenClaw is a local-first gateway/runtime with user-owned channels, skills, memory, and MCP/ACP surfaces. Source: Gemini Spark overview, 2026-07-04; Source: X/@sarbjeetjohal, 2026-05-19
Timeline
- 2026-07-04 | Added VisionClaw as a concrete OpenClaw client: a Meta Ray-Ban / phone-camera app forwarding Gemini Live tool calls into the local OpenClaw gateway, with LAN/auth/privacy caveats. Source: Intent-Lab/VisionClaw
- 2026-07-04 | Added Gemini Spark as the managed-Google comparison point for OpenClaw: hosted Gemini app agent versus local-first gateway/runtime. Source: Gemini Spark overview, 2026-07-04
- 2026-06-02 | Page created from github.com/openclaw/openclaw and docs.openclaw.ai. Captured the MIT/Steinberger/OpenClaw-Foundation identity (standalone, not a Claude Code fork), the Gateway-daemon/WebSocket topology, serialized run lanes + steering + 48h timeout, AgentSkills
SKILL.md+ ClawHub trust tiers, bootstrap-file "rules", the two hook systems, MCP client+server + ACP, Docker sandbox, JSONL memory + cron + multi-agent routing, the ClawHavoc security incident, and the Hermes/Agent-Machines relationship. Source: github.com/openclaw/openclaw - 2026-06-28 | Kevin's GitHub stars snapshot added
openclaw/openclaw; keep as harness-watch / architecture reference rather than a default coding-agent route. Source: GitHub Starred Repos Harvest - 2026-06-28 - 2026-06-30 | Added OpenClaw Agent Skills as the shared workflow bundle attached to this harness capsule. Local decision: keep
autoreview/handoff, documentcrabbox, deferagent-transcript/session-vieweruntil privacy audit. Source: X/@hungv47, 2026-06-05 - 2026-07-03 | Added Ahmad's OpenClaw/Hermes bookmark as an operator-preference signal while preserving OpenClaw as the gateway/channel/node capsule rather than treating Hermes as a universal replacement. Source: X/@TheAhmadOsman, 2026-06-22