🦞
Architecture • Code • Analytics • Lessons
agent37.club
"A self-hosted AI agent that lives in every messaging app you already use."
Unlike ChatGPT, OpenClaw comes to you in your existing apps. It runs on your hardware. Your data stays with you.
186K GitHub stars in ~10 weeks. Fastest-growing open-source project in history.
"Clawdbot" — a pun on Claude + crab claw. Quietly open-sourced.
Anthropic's lawyers issue a trademark complaint. Free publicity ensues.
Renamed to "Moltbot" (lobsters molt!). Name chosen from Discord brainstorm.
Final rename to "OpenClaw". Two name changes in three days.
34,168 stars in 48 hours — 710 new fans per hour. CNBC, TechCrunch, Fortune cover it.
Catalyst: The AI built Moltbook — a social network FOR AI agents. 1.5M AI "users" joined. Humans could only watch.
17+ channels • 52 bundled skills • 5,233 tracked files • 35 extension plugins
Peak: 436 commits on Jan 9 • 3.1M lines added • CalVer: 2026.2.9
Time to reach 100,000 GitHub stars:
OpenClaw reached 100K stars 18x faster than Kubernetes. 60K stars came in the first 72 hours alone. Mac Mini stock shortages reported as developers rushed to set up dedicated agent machines.
Hub-and-spoke gateway design with three layers of abstraction
| Layer | Technology |
|---|---|
| Runtime | Node.js ≥ 22 |
| Language | TypeScript (615K LoC) |
| Package Manager | pnpm (monorepo) |
| Configuration | JSON5 + Zod validation |
| Agent Core | Pi Agent (RPC mode) |
| Storage | SQLite + JSONL sessions |
| Memory | LanceDB embeddings |
| CLI | Commander.js |
| UI | Lit (Web Components) |
| Native Apps | Swift (macOS/iOS) + Kotlin (Android) |
Native apps: 78K LoC Swift for macOS/iOS, Kotlin for Android. Includes Swabble — a voice-activated wake-word listener.
Design: Hub-and-spoke. The Gateway is the always-on hub. Channels, agents, and devices are spokes that connect to it via WebSocket/RPC.
// openclaw.mjs import { startGatewayServer } from './src/gateway'; const server = await startGatewayServer({ bind: 'loopback', port: 18789, });
Default: ws://127.0.0.1:18789
Bind modes: loopback, tailnet, lan, auto
From a WhatsApp message to an AI response — 10 steps:
Session Key format:
agent:{agentId}:{channel}:{scope}:{identifier}
e.g. agent:main:whatsapp:dm:+15555550123
Queue modes: sequential (default), concurrent (overlapping runs), collect (debounce & batch)
End-to-end data flow from user message to AI response and back:
Gateway • Channels • Routing • Agents • Tools • Providers
A single always-on Node.js process that orchestrates everything:
// gateway/server.impl.ts 1. loadConfig() // Zod validate 2. loadPlugins() // Extensions 3. createChannelMgr() // Init channels 4. attachWsHandlers() // WebSocket 5. startCron() // Scheduled jobs 6. startDiscovery() // mDNS broadcast 7. startBrowser() // CDP bridge
Lane concurrency: Prevents message processing bottlenecks. Each session gets its own processing lane.
| Channel | Library | Type |
|---|---|---|
| @whiskeysockets/baileys | Core | |
| Telegram | grammy | Core |
| Discord | discord.js | Core |
| Slack | @slack/bolt | Core |
| Signal | signal-cli | Extension |
| iMessage | imsg / BlueBubbles | Extension |
| MS Teams | Custom | Extension |
| Matrix | matrix-js-sdk | Extension |
| IRC / Nostr / Twitch | Various | Extension |
Each channel provides a ChannelDock — a lightweight adapter defining:
Extensible: New channels are plugins. Drop in an extension, no core changes needed.
When a message arrives, routing resolves which agent handles it:
| Mode | Behavior |
|---|---|
| main | Single session per agent |
| per-peer | One session per sender |
| per-channel-peer | Isolated per channel+sender |
| per-account-channel-peer | Full isolation |
| Policy | Who Can Talk |
|---|---|
| pairing | Requires approval (default) |
| allowlist | Pre-approved list only |
| open | Anyone can message |
| disabled | Channel turned off |
runEmbeddedPiAgent() — the core execution engine for every agent session:
// Simplified agent run logic while (!done) { try { result = await runAttempt(payload); } catch (e) { if (isAuthError(e)) rotateAuthProfile(); else if (isContextOverflow(e)) compactSession(); else if (isRateLimit(e)) await backoff(); else if (isThinkingUnsupported(e)) fallbackThinkingLevel(); else throw e; } }
Graceful degradation: Never crashes. Rotates profiles, compacts context, adjusts thinking — keeps running.
The system prompt is built dynamically from multiple sources:
| Mode | Use |
|---|---|
| full | Main agent — all sections |
| minimal | Subagents — reduced context |
| none | Identity-only (bare metal) |
Adapts to model: Vision capabilities, reasoning, thinking level are all detected. Channel-specific reaction guidance (Telegram min/extensive) is injected per-platform.
| Category | Tools |
|---|---|
| File System | read, write, edit, apply_patch |
| Runtime | exec, bash, process |
| Web | web_search, web_fetch |
| Browser | CDP-based automation |
| Messaging | message, sessions (list/send/spawn) |
| Automation | cron, gateway control |
| Devices | nodes (camera, location, exec) |
| Memory | memory_search, memory_get |
| Group | Includes |
|---|---|
| group:fs | File system operations |
| group:runtime | exec, bash, process |
| group:web | web_search, web_fetch |
| group:ui | Browser, canvas |
| group:sessions | Session management |
| group:memory | Semantic search |
| group:messaging | Send messages |
| group:nodes | Device node access |
| group:automation | Cron, gateway |
| Level | Behavior |
|---|---|
| deny | No shell commands allowed |
| allowlist | Only pre-approved commands |
| full | Unrestricted execution |
// Where commands run: host: "sandbox" // Docker container host: "gateway" // Host machine host: "node" // Paired device
Approval modes: off, on-miss (ask if not in allowlist), always
| Provider | Models |
|---|---|
| Anthropic | Claude 4.5/4.6 Opus/Sonnet/Haiku |
| OpenAI | GPT-4o, o3, o1-pro |
| Gemini 2.5 Pro/Flash | |
| xAI | Grok |
| Qwen | Qwen 3 |
| Minimax | MiniMax models |
| GitHub Copilot | Via proxy |
| Together AI | Open-source models |
| Local | llama.cpp, Ollama |
Multiple API keys per provider with automatic rotation:
Cooldown tracking: When a profile hits rate limits, it's automatically cooled down and rotated to the next available profile. No manual intervention needed.
OpenAI-compatible endpoint: /v1/chat/completions exposed for standard LLM clients.
Sessions • Memory • Security • Browser • Plugins • Skills • Devices
| Mode | Behavior |
|---|---|
| idle | After N minutes of inactivity |
| daily | At specific hour (local time) |
| off | Manual only via /reset |
| Workspace | Access |
|---|---|
| none | No workspace access in container |
| ro | Read-only workspace mount |
| rw | Read-write workspace mount |
One-click RCE via Control UI — trusted gatewayUrl from query string. Patched in v2026.1.29. 135,000+ instances found exposed to the internet.
341 malicious ClawHub skills detected stealing data. 335 installed the AMOS macOS malware. VirusTotal integration now scans uploads.
OpenClaw includes a full Chrome DevTools Protocol (CDP) browser controller:
Agents can browse the web, fill forms, scrape data, and take screenshots — all via natural language commands.
// ARIA format - accessibility tree { format: "aria", nodes: [ { ref: "1", role: "link", name: "Sign In" } ] } // AI format - structured for LLMs { format: "ai", snapshot: "[button ref=3] Submit", refs: { "3": { role: "button" } }, stats: { lines: 42, refs: 15 } }
browserCreateProfile({ name: "work" }) browserStart({ profile: "work" }) browserStop({ profile: "work" })
Stable public API for building extensions:
teal = channel plugins • purple = infrastructure
A folder with a SKILL.md file + supporting text. That's it.
| Type | Source |
|---|---|
| Bundled | Shipped with OpenClaw (52 skills) |
| Managed | ClawHub registry (5,705+ skills) |
| Workspace | Custom, per-project |
Security warning: ~900 malicious skills detected on ClawHub. Always verify skills before installing. Use openclaw skills audit.
Companion apps extend OpenClaw to physical devices via Bonjour/mDNS:
openclaw nodes list openclaw nodes describe <nodeId> openclaw nodes pair approve <code>
| Capability | iOS | Android | macOS |
|---|---|---|---|
| system.run | ✗ | ✗ | ✓ |
| system.notify | ✓ | ✓ | ✓ |
| camera.snap | ✓ | ✓ | ✓ |
| camera.clip | ✓ | ✓ | ✗ |
| screen.record | ✓ | ✓ | ✗ |
| location.get | ✓ | ✓ | ✓ |
| canvas.* | ✓ | ✓ | ✓ |
Agents can take photos, get GPS, record video, send notifications, and run shell commands on paired devices — all via natural language.
// ~/.openclaw/config.json5 { agents: { list: [{ id: "main", model: "claude-sonnet-4-5", workspace: "~/agent-workspace", }], }, channels: { telegram: { enabled: true, botToken: "env:TELEGRAM_TOKEN", }, whatsapp: { enabled: true }, }, tools: { profile: "coding", exec: { security: "allowlist" }, }, gateway: { port: 18789, bind: "loopback", }, }
Module map • Key files • Code patterns • Design decisions
The src/ directory organized by function:
Files that change most frequently reveal the system's center of gravity:
Insight: The auto-reply engine, gateway server, and agent runner are the most actively developed core files. CHANGELOG has 2,520 changes — they document everything.
9,358 commits • 510 contributors • 81 days • How they ship
First commit: Nov 24, 2025. Latest: Feb 12, 2026. 412 merge commits (PRs merged to main).
Net code: 1.08M lines net. That's the equivalent of writing the entire Linux 1.0 kernel four times in 81 days.
71.2% of all commits are by one person. The remaining 28.8% come from 509 contributors.
36kr called Peter "The First Super Individual in the AI Era." He uses Claude Code to generate code, reviews/merges with architectural judgment, and ships at a velocity that rivals entire teams.
Peak day: Peter made 363 commits on Jan 9, 2026 — that's one commit every 4 minutes for 24 hours straight.
Bot contributors: Maude Bot (14), google-labs-jules[bot] (14), CLAWDINATOR Bot (9) — AI-authored PRs.
| Date | Commits |
|---|---|
| Jan 9, 2026 | 436 |
| Jan 8, 2026 | 373 |
| Jan 12, 2026 | 329 |
| Jan 18, 2026 | 309 |
| Jan 10, 2026 | 308 |
January 2026 alone saw 6,107 commits — 65% of the entire project history. This coincides with the viral moment and the massive community influx.
Feb pace: 812 commits in 12 days = 68/day. Velocity is normalizing but still extraordinary.
| Scope | Count |
|---|---|
| fix(macos) | 136 |
| fix(mac) | 113 |
| fix(telegram) | 64 |
| fix(ui) | 55 |
| feat(macos) | 48 |
| fix(gateway) | 43 |
| fix(agents) | 35 |
Fix-heavy culture: 3.3x more fixes than features. Ship fast, fix fast. macOS native app is the most-fixed component (249 fix commits).
Peter's famous quote from The Pragmatic Engineer. He uses Claude Code as his primary coding tool, reviews AI-generated code at the architectural level, and trusts the AI for implementation details.
640 commits reference AI tools in messages or co-author tags. That's 6.8% of all commits with explicit AI attribution. The real number is likely much higher.
Multiple AI agents submit PRs directly: Jules (Google), Maude Bot, CLAWDINATOR. The bots are contributors, not just tools.
Commit distribution by hour of day (UTC). Development never stops.
Peak hours: 22:00–01:00 UTC (late evening in Vienna). Peter is a night coder. The 16:00 peak reflects community contributors in US time zones.
Never below 294 commits/hour. With 510 global contributors, there's always someone coding on OpenClaw, 24 hours a day.
| Channel | Source |
|---|---|
| stable | Tags only (CalVer) |
| beta | Pre-release tags |
| dev | main HEAD |
Format: v{YYYY}.{M}.{D}[-{patch}]
v2026.2.9
v2026.2.6-3
v2026.2.6-2
v2026.2.1
v2026.1.30
v2026.1.29 // CVE patch
48 releases in 81 days = one release every 1.7 days. Multiple patch releases on the same day are common (2026.2.6 had 3 patches).
CI gates: Tiered lint/format checks, code-size gates, LOC threshold monitoring. Heavy jobs blocked until lint passes.
The projects it spawned, the problems it created, the lessons it teaches
| Project | What It Does |
|---|---|
| IronClaw (Near AI) | Rust reimplementation for security |
| ClawSec (Prompt Security) | Security skill suite |
| ClawBands | Security middleware |
| MoltWorker (Cloudflare) | Run on Cloudflare Workers |
| NanoClaw | 500-line auditable variant |
| Moltbook | AI-only social network |
| Swabble | Voice wake-word listener (in-repo) |
| SwitchBot AI Hub | First local home AI for OpenClaw |
2M website visitors in one week. Mac Mini stock shortages. Y Combinator interview. This is the defining open-source moment of 2026.
"If you can't understand how to run a command line, this is far too dangerous of a project for you to use safely." — OpenClaw maintainer
OpenClaw's power is also its danger. An AI that can execute shell commands, browse the web, and control devices is incredible — and terrifying when misconfigured.
How to ship like OpenClaw • AI-augmented development • Community at scale
Key insight: OpenClaw proves that one skilled person with AI tools can outpace entire teams. The bottleneck isn't coding speed — it's architectural judgment.
640 explicitly AI-attributed commits. The real number is likely 3-5x higher. This is what AI-native development looks like.
Velocity comes at a cost: CVE-2026-25253, malicious skills, 135K exposed instances. AI-augmented speed requires AI-augmented security review too.
Insight: The skill system is a genius community flywheel. Easy to create (just markdown), easy to share (ClawHub), immediately useful. It turned users into contributors.
Plugins loaded on demand. Memory search lazy-loaded. Skills discovered at runtime. Nothing initializes until needed.
SKILL.md, AGENTS.md, SOUL.md — filesystem conventions replace complex config. Drop a file, it gets discovered.
A Swift-based voice wake-word listener built into the monorepo:
# Always listening for "clawd" swabble serve # Wake word detected, runs: $HOOK_COMMAND "Voice: Hey, what's the weather?"
// ~/.config/swabble/config.json { wake: { word: "clawd", aliases: ["claude"], }, hook: { command: "openclaw", args: ["message", "--agent", "main"], minCharacters: 24, cooldownSeconds: 1, }, }
Pipeline: AVAudioEngine → BufferConverter → SpeechAnalyzer → Wake gate → Hook command. Voice-activated AI assistant, completely local.
OpenClaw isn't just a project. It's proof that:
Peter's prediction (YC interview): "80% of apps will disappear in the future." OpenClaw is the first glimpse of what replaces them.
Self-hosted AI agent gateway. Lives in your messaging apps. Executes tools. Controls devices. Open source.
Peter Steinberger + 509 contributors + AI agents. Built in 81 days.
Hub-and-spoke Node.js gateway. 45+ modules. 17+ channels. 6-layer tool policies. Zod-validated config. CalVer releases.
🦞
OpenClaw: The Complete Technical Deep Dive
Sources: OpenClaw GitHub • DeepWiki • Wikipedia • The Pragmatic Engineer • TechCrunch • VentureBeat
agent37.club
agent37.club