← hub

OpenClaw

What makes openclaw/openclaw different. Local-first personal assistant, TypeScript/ESM, Node 22+.

What's Peculiar About OpenClaw

  • Agents are config rows, not processes. Adding an agent = adding a JSON entry. No deployment, no daemon. System prompt assembled at runtime from config.
  • Pi framework, not Claude Code. Uses @mariozechner/pi-coding-agent to call Anthropic Messages API directly. Not a Claude Code wrapper, not a subprocess. Custom AgentTool type with TypeBox schemas.
  • Manifest-first plugins. Each plugin declares capabilities/hooks in plugin.json before code loads. Filesystem discovery only — bundled, node_modules/@openclaw/*, workspace extensions/, or config.plugins.loadPaths.
  • Own plugin AND hook systems — completely separate from Claude Code's. register(api) surface vs tool-level hooks. 5 hook categories, 4 bundled hooks (session-memory, command-logger, boot-md, bootstrap-extra-files).
  • Involuntary subagent injection. Child results force-injected into parent. Parent CANNOT refuse. A compromised subagent has unconditional write access to parent context.
  • No fsync — accepts data loss. Atomic rename prevents zero-byte files, but temp files never fsynced. Deliberate trade: durability for simplicity.
  • Single gateway process, 24+ channels. Telegram, Discord, Slack, WhatsApp, Signal, iMessage, Matrix, MS Teams, Google Chat, LINE, Twitch, Nostr, and more from one WebSocket server. Most channels of any system — and no horizontal scaling.

General agent concepts (how OpenClaw compares to other systems) live on the concept pages: Routing & Gateway · Memory · Subagents · Tools & Security · Project Management