Skip to content

Notes from the workshop

How we think about agents that live in your messaging apps, what we learned building them, and the practical bits you can use today.

All posts

Guides7 min read

What OpenClaw sends home

OpenClaw makes one outbound request a day by default, and the docs say exactly what it carries: version, operating system, Node.js version, architecture and surface, with no install identifier. Here is the whole picture, including the Cloudflare-derived location kept for three months, plus every switch that stops the requests.

Guides7 min read

OpenClaw environment variables

OpenClaw loads environment variables from five ranked sources, and your terminal is only one of them. Here is the precedence order, the rule that stops anything from overriding a value that already exists, and how to get a provider key into a systemd or launchd service.

Guides7 min read

The OpenClaw Control UI

The Gateway serves a browser dashboard on port 18789, and the first thing it shows is a single Gateway secret field. What that field accepts, why a browser on the same machine still has to fill it, what the agents roster and team mode do, and what to run when the LAN URL is blocked.

Guides7 min read

OpenClaw resume

You started a conversation in the OpenClaw Control UI and want to finish it in your terminal. Here is how the handoff works: openclaw resume, openclaw tui and openclaw attach, the short session links behind them, and the pairing step none of them can skip.

Guides7 min read

OpenClaw node troubleshooting

A node that shows connected has passed one check out of four. Device pairing admits the identity, a separate node request ID approves the command surface, gateway command policy decides whether the RPC command ID is allowed at all, and exec approvals decide whether a shell command may run on that host. On Linux a user-level systemd service dies at SSH logout unless lingering is enabled. Here is each gate, the lingering fix, and every node error code with its meaning.

Guides7 min read

Failed to start Chrome CDP on port 18800

The error gives you one line and no hint. On a Linux server the cause is almost always the browser: apt install chromium hands you a snap wrapper whose confinement breaks the way OpenClaw launches and watches Chrome. Here are the fixes, the six settings that matter, and the check that tells a CDP startup failure apart from a navigation block.

Guides7 min read

The OpenClaw browser relay

OpenClaw can drive a browser that is not on the Gateway's machine: a node host relays the actions, or a cdpUrl attaches to a hosted Chromium. Here is how routing, profiles and credentials behave.

Guides7 min read

OpenClaw ACP agents

OpenClaw runs external coding harnesses over the Agent Client Protocol: Claude Code, Gemini CLI, Cursor, Copilot, Droid, OpenCode and eleven more, spawned from a chat message and tracked as background tasks. The two-command acpx install, the first-run gotchas including the plugins.allow trap, the prerequisites checklist that decides whether the path is offered at all, and the seventeen harness target ids.

Guides7 min read

Triggering OpenClaw from Gmail

Gmail inbox events reach OpenClaw through a Google Pub/Sub topic, a watcher process, and the Gateway HTTP hook, and the built-in preset gives each email its own session without restricting anything else. Here is the gcloud topic and watch setup, the two-token model, the restricted sandboxed mail_reader agent the docs recommend, and the boundary test that tells you whether the reader is really contained.

Guides7 min read

One tenant, one cell

OpenClaw does not protect one customer from another inside a shared Gateway, and the supported shape is one complete instance per tenant, which openclaw fleet calls a cell. What a cell contains, what the four commands preserve, how the isolation ladder runs from hardened container to separate machines, and the surfaces Fleet deliberately leaves out.

Guides7 min read

Free models for OpenClaw

Four routes give you an OpenClaw agent without a token bill: NVIDIA's free endpoints, OpenRouter's :free catalogue, local runtimes and hosted free tiers. Here is what each one costs you in reliability, and how to check a model before you promote it to primary.

Guides6 min read

ClawHub telemetry

ClawHub collects minimal CLI telemetry to compute install counts. The interesting part is not what it sends but what it deliberately does not, and the way those counts behave once you understand that an install event records presence rather than a snapshot.

Guides7 min read

ClawHub troubleshooting

Sign-in that hangs, a 401 after a config change, a 429 you did not earn, a proxy that swallows requests, a skill missing from search, and a publish rejected for metadata. Each has a short diagnosis, and one of them is usually somebody else's traffic.

Guides6 min read

ClawHub content rights

A copyright or rights concern is not a moderation report and not a security advisory. It has its own form, its own required evidence, and an outcome set that includes leaving the content exactly where it is.

Guides7 min read

ClawHub acceptable usage

The policy covers what a listing does, what it asks users to run, how it represents itself, and how publishers use the trust surfaces. Its sharpest idea is that the same subject can be allowed or banned depending entirely on how it is packaged.

Guides7 min read

The ClawHub skill format

A skill is a folder with a SKILL.md in it. Everything else the registry knows about that skill comes from the frontmatter you declare, and getting that block right is most of the difference between a listing people trust and one they scroll past.

Guides6 min read

ClawHub namespace claims

Owner handles, org handles, skill slugs and package scopes are public namespaces, and sometimes the wrong person holds one. ClawHub has a specific, public process for that, separate from reports and appeals, and using the wrong door slows everything down.

Guides6 min read

ClawHub moderation

ClawHub is open to publishing, but the discovery and install surfaces still need guardrails. Reports, holds and hidden listings are how that works, and most of the confusion is about which problems belong in the report queue at all.

Guides7 min read

Reading a ClawHub security audit

A ClawHub audit tells you what a release does and what authority it asks for before you install it. The statuses are easy to read and easy to over-read, and the doc is unusually honest about what a pass does not prove.

Guides6 min read

ClawHub quickstart

The quickest way to lose an afternoon on ClawHub is to reach for the wrong binary. OpenClaw installs into OpenClaw; the clawhub CLI signs you in, publishes, and manages your listings. This walks the whole path, from a first search to a first release.

Guides7 min read

The ClawHub CLI

The clawhub CLI is small but opinionated. It keeps your token in one platform-specific file, respects corporate proxies, refuses to overwrite a fingerprint it does not recognise, and treats a pin as final. Here is what each of those behaviours is protecting.

Guides6 min read

The ClawHub API

ClawHub publishes its catalogue as a public REST API and invites third-party directories to use it, under four conditions. This covers the reuse rules, the anonymous-versus-keyed rate limits, and the header pair that says how long to wait.

Guides7 min read

ClawHub HTTP endpoints

The v1 endpoint surface splits cleanly into public reads, token-gated writes and a small admin corner. The interesting behaviour is at the edges: what a public caller is shown of a moderation record, and what a download returns for a GitHub-backed skill.

Guides6 min read

ClawHub explained

ClawHub is the registry layer for OpenClaw skills and plugins. This post walks through what a registry record actually holds, how a listing page is meant to be read before you install anything, how installs record their source so later updates resolve back to the same package, and what the scan and moderation state on a public page does and does not tell you.

Showing 24 of 329 posts

Get started

Stop reading about it, build one

Set up an agent, pick a channel, and have it working inside the app you already keep open.