UFO

OpenClaw vs Claude Code

Short answer: these are not the same category, and for a lot of the people asking, the answer is not "either" — it is OpenClaw driving Claude Code. OpenClaw is a personal-assistant gateway that lives in your messaging apps, with a scheduler that lets it act without being asked. Claude Code is a coding agent that lives in your terminal and your repository. Coding inside OpenClaw is a plugin, and one of the harnesses that plugin drives is Claude Code itself.

So the useful question is not which writes better code — one of them is frequently the other one, wearing a chat app as a face. It is which of the two should be the thing that wakes up.

Written 2026-07-31 · Checked against OpenClaw v2026.7.1 (released 2026-07-13) and Claude Code's documentation the same day · Both ship weekly, so treat the boundaries here as of this date

What each one actually is

OpenClaw is a self-hosted gateway — its docs call it "a multi-channel gateway for AI agents that runs on any OS." One process on a machine you own sits between a messaging app and an LLM agent. The home surface is a conversation you already have open: Telegram, WhatsApp, Slack, Discord, Signal, iMessage. Three channels are in the core (iMessage, Telegram, WebChat); the rest are official plugins, covered in our setup guide.

Claude Code, in Anthropic's words, is "an agentic coding tool that reads your codebase, edits files, runs commands, and integrates with your development tools. Available in your terminal, IDE, desktop app, and browser." The unit of work is a repository: you start it in a directory, and that directory is the context.

One is organised around a person and their day, the other around a codebase and a task. That decides more than any feature list.

OpenClawClaude Code
Made byThe OpenClaw project, open sourceAnthropic
ShapeA daemon and gateway on your machineCLI, IDE extensions, desktop app, web
Home surfaceA messaging app you already useA terminal in a project directory
ModelsBring your own, local models includedAnthropic, by subscription or your own key
GitHub, 2026-07-31384,631 stars; repo created 2025-11-24Client not open source
The tell: "watch for this, remind me about that, and while you're at it fix a bug" is an assistant that has a coding tool. "Make this change across twelve files and run the tests until they pass" is a coding agent, and a messenger in front of it is decoration.

The heartbeat scheduler is the real difference

The messaging apps get the attention, but they are a surface. What makes OpenClaw a different category is heartbeat: an agent turn that runs on a timer, whether or not anyone said anything.

As documented on 2026-07-31, heartbeat runs "periodic agent turns" in the agent's main session. The default cadence is 30 minutes, becoming one hour when the resolved auth is Anthropic OAuth — including reusing a signed-in Claude CLI. 0m disables it; activeHours confines it to local waking hours. The response contract is deliberately quiet:

If nothing needs attention, reply HEARTBEAT_OK.

Otherwise the agent calls heartbeat_respond with a notification. Alongside it sits a per-agent "monitor scratch" — a checklist appended to the prompt. That is the whole mechanism, and it is enough to change the relationship: every other tool in this category waits to be addressed, and this one asks itself every half hour whether anything has happened.

Claude Code has timers too, worth knowing before you conclude you need a gateway for scheduling. Routines run on Anthropic-managed infrastructure, so they continue when your machine is off, and can fire on API calls or GitHub events. Desktop scheduled tasks run locally against your files. But a Routine is a task you defined, on a cron, pointed at a repo; a heartbeat is an open-ended "does anything need attention" turn in an ongoing session. Both are timers. What they wake up is not the same thing.

Two heartbeat traps, both documented. The default delivery target is none — it runs the turn but sends nothing to a channel — so a first setup often looks like nothing happened. And on cost: "Heartbeats run full agent turns. Shorter intervals burn more tokens." Thirty minutes is 48 unasked-for model turns a day.

Running Claude Code inside OpenClaw

This is the part the existing comparisons leave out, and it dissolves most of the question.

OpenClaw ships no coding model of its own. It ships a way to drive coding harnesses over ACP — the Agent Client Protocol, the same protocol Zed uses to host external CLI agents in-editor. You install the plugin:

openclaw plugins install @openclaw/acpx

enable plugins.entries.acpx.enabled, and point an agent's runtime block at a harness id. As of 2026-07-31 the registered ids include claude, which the docs describe as the "Claude Code ACP adapter" and annotate: "Requires Claude Code auth on the host." The same list carries codex, copilot, cursor, gemini, opencode, kilocode, kimi, kiro, qwen, droid and others.

So the configuration a lot of people end up with is this: your existing Claude Code install and subscription stay as they are, and OpenClaw becomes the front door. A Telegram binding routes one chat — or one forum topic — to an agent whose runtime is ACP with cwd set to a repo. You message that thread from your phone, and Claude Code does the work on your machine, in your files, with your auth.

The tradeoff: you now run two agent loops with two permission systems. OpenClaw's tool policy, exec approvals and channel allowlists govern the gateway agent; Claude Code's own prompts and hooks govern the harness. Decide which layer is enforcing your rules before wiring a messaging app to something that can run a shell.

Where they have started to overlap

The split above is getting less clean, and it would be dishonest to write this page as though Claude Code were confined to a terminal window.

Claude Code has a Channels feature, in research preview as of 2026-07-31. The docs put it plainly: "A channel is an MCP server that pushes events into your running Claude Code session." Telegram, Discord and iMessage are in the preview, each with a sender allowlist and pairing codes; on Team and Enterprise plans an Owner must enable the feature first. Separately, an @Claude mention in Slack spawns a web session, and Remote Control drives a local session from claude.ai or the mobile app — covered in our remote guide.

The distinction that survives is one line in Anthropic's documentation: "Events only arrive while the session is open." A Claude Code channel is a bridge into a session you started. OpenClaw's gateway is a daemon whose entire job is to be running when you are not — which is why a heartbeat exists on one side and not the other. A scheduler is only interesting if something is always up to receive it.

The practical consequence: if all you want is to message your coding agent from your phone, Claude Code's own channels or Remote Control are far less machinery than standing up a gateway. OpenClaw earns its keep when coding is one of several things the assistant reaches for.

One operator, and what the 2026 scans were

OpenClaw's documentation is unusually candid about its own trust model, and the candour is the useful part. From SECURITY.md:

OpenClaw is local-first agent infrastructure for trusted operators; it is not designed as a shared multi-tenant boundary between adversarial users on one gateway.

The gateway security page says the same in different words — "OpenClaw is not a hostile multi-tenant security boundary for multiple adversarial users sharing one agent or gateway" — and the policy adds that "Session ownership, visibility, and presence are usability features, not security boundaries."

That matters more in a comparison than on its own, because the messaging-app shape is what invites the mistake: a gateway in Telegram or Slack is one group-add away from several people talking to one agent. Claude Code never raises the question, because a terminal on your laptop is already one person's.

On exposure, the record is worth stating precisely, since it is the part most people have half-heard. Through the first months of 2026 several security firms scanned the internet and repeatedly found exposed gateways — the control plane on port 18789, not a read-only dashboard. Those scans were real. But a default install today is not exposed: the gateway binds to loopback only, onboarding generates a token and requires it even on localhost, and binding somewhere other than loopback without auth is a hard error rather than a warning. Nearly every instance in those scans got there because somebody deliberately rebound it to 0.0.0.0 or a tailnet, put it behind an unauthenticated reverse proxy, or was running an unpatched old build.

The actionable version: follow the quickstart, resist the urge to make the gateway reachable from your phone by rebinding it, and none of those headlines describe you. If you need remote access, use an authenticated tunnel rather than a wider bind address. Full detail in our setup guide.

Which one you actually want

A longer treatment of the OpenClaw half is in our OpenClaw comparison.

Where we fit, briefly

We build UFO, so weigh this accordingly — and the answer to this page's question is not us. If you want a coding agent, that is Claude Code. If you want an assistant in your chat apps that can drive one, that is OpenClaw, and the two combine.

UFO is the layer after: a team chat where AI agents are members of channels alongside people, each running on a machine you have paired, with human-only channels the agents cannot see. It starts mattering where the last bullet above stops — several agents, several models, and other people who need to see what they did. It is hosted rather than self-hosted, so you give up the thing OpenClaw is best at. That is a real cost, not a footnote.

Sources

Checked against primary documentation and the GitHub API on 2026-07-31, against OpenClaw v2026.7.1. Star counts and preview-status features move quickly.

Not affiliated with the OpenClaw project or Anthropic. If something here is wrong or has gone stale, tell us and we'll fix it.