# rtfm.rest

> Someone's OpenClaw bot auto-replied to a Hinge date with a pairing error.
> She blocked him. The community said: **RTFM.**

Hey! Whether you're an agent, a dev at 3am, or Claude checking what a
"channel" is for the fifth time today — welcome.

**rtfm.rest** is the OpenClaw docs as Markdown over REST. Born from a
spontaneous RTFM moment, powered by a Cloudflare Worker. One `curl`,
always fresh, no HTML to parse.

The goal: one place for all OpenClaw docs — core, tools, skills,
integrations. Always up to date. Always one request away.

## Usage

```bash
curl https://rtfm.rest/start/getting-started
```

Every path maps 1:1 to `docs.openclaw.ai`:

    https://rtfm.rest/{path}  -->  docs.openclaw.ai/{path}  -->  Markdown

Responses are cached for 1 hour. Add `?fresh=true` to force a live render.

## Documentation Index

### Getting Started

| Path | What's in there |
|------|-----------------|
| [`/start/getting-started`](https://rtfm.rest/start/getting-started) | Zero to first working chat — the one page you actually need |
| [`/start/onboarding-overview`](https://rtfm.rest/start/onboarding-overview) | What the onboarding wizard does and why |
| [`/start/wizard`](https://rtfm.rest/start/wizard) | CLI onboarding step by step |
| [`/start/onboarding`](https://rtfm.rest/start/onboarding) | macOS app first-run flow |
| [`/start/openclaw`](https://rtfm.rest/start/openclaw) | Personal assistant setup guide |
| [`/start/showcase`](https://rtfm.rest/start/showcase) | Community projects (from vacuum control to Tesco autopilot) |
| [`/install`](https://rtfm.rest/install) | Installation methods |

### Core Concepts

| Path | What's in there |
|------|-----------------|
| [`/concepts/features`](https://rtfm.rest/concepts/features) | Full feature list — channels, routing, media, plugins |
| [`/concepts/architecture`](https://rtfm.rest/concepts/architecture) | How agents, gateway, and routing fit together |

### Channels

WhatsApp, Telegram, Discord, iMessage, Slack, Signal, IRC, Teams,
Google Chat, Mattermost, Matrix, Feishu, LINE, Zalo — OpenClaw talks
to all of them. Here's how to set each one up without breaking anything:

| Path | Platform |
|------|----------|
| [`/channels`](https://rtfm.rest/channels) | Overview |
| [`/channels/whatsapp`](https://rtfm.rest/channels/whatsapp) | WhatsApp |
| [`/channels/telegram`](https://rtfm.rest/channels/telegram) | Telegram |
| [`/channels/discord`](https://rtfm.rest/channels/discord) | Discord |
| [`/channels/imessage`](https://rtfm.rest/channels/imessage) | iMessage (macOS) |
| [`/channels/slack`](https://rtfm.rest/channels/slack) | Slack |
| [`/channels/signal`](https://rtfm.rest/channels/signal) | Signal |
| [`/channels/irc`](https://rtfm.rest/channels/irc) | IRC |
| [`/channels/msteams`](https://rtfm.rest/channels/msteams) | Microsoft Teams |
| [`/channels/googlechat`](https://rtfm.rest/channels/googlechat) | Google Chat |
| [`/channels/mattermost`](https://rtfm.rest/channels/mattermost) | Mattermost |
| [`/channels/matrix`](https://rtfm.rest/channels/matrix) | Matrix |
| [`/channels/feishu`](https://rtfm.rest/channels/feishu) | Feishu / Lark |
| [`/channels/line`](https://rtfm.rest/channels/line) | LINE |
| [`/channels/zalo`](https://rtfm.rest/channels/zalo) | Zalo OA |
| [`/channels/zalouser`](https://rtfm.rest/channels/zalouser) | Zalo Personal |

### Channel Configuration

This is the part where things go sideways if you skip it.
Pairing, groups, routing — read these before your bot says hi
to the wrong person.

| Path | What's in there |
|------|-----------------|
| [`/channels/pairing`](https://rtfm.rest/channels/pairing) | Pairing & owner approval — the safety net |
| [`/channels/group-messages`](https://rtfm.rest/channels/group-messages) | Group message handling |
| [`/channels/groups`](https://rtfm.rest/channels/groups) | Group configuration |
| [`/channels/broadcast-groups`](https://rtfm.rest/channels/broadcast-groups) | Broadcast groups |
| [`/channels/channel-routing`](https://rtfm.rest/channels/channel-routing) | Routing rules |
| [`/channels/location`](https://rtfm.rest/channels/location) | Location message parsing |
| [`/channels/troubleshooting`](https://rtfm.rest/channels/troubleshooting) | When things go wrong |

### Tools, Models & Platforms

| Path | What's in there |
|------|-----------------|
| [`/tools`](https://rtfm.rest/tools) | Available tools |
| [`/providers`](https://rtfm.rest/providers) | Model providers (Anthropic, OpenAI, Ollama, ...) |
| [`/platforms`](https://rtfm.rest/platforms) | Platform support |

### Gateway & Ops

| Path | What's in there |
|------|-----------------|
| [`/gateway`](https://rtfm.rest/gateway) | Gateway configuration & operations |
| [`/cli`](https://rtfm.rest/cli) | CLI reference |
| [`/help`](https://rtfm.rest/help) | Help & troubleshooting |

## Response Format

Every doc endpoint returns `text/markdown; charset=utf-8` with these headers:

| Header | Description |
|--------|-------------|
| `X-Source-URL` | The original `docs.openclaw.ai` URL |
| `X-Cached` | `true` if served from cache |
| `Cache-Control` | `public, max-age=3600` |

## What's Next

This is v1 — a Cloudflare Worker that renders `docs.openclaw.ai` pages
to Markdown on the fly via the Browser Rendering API. It works, it's fast,
and it's cached.

But the vision is bigger: a proper documentation hub for the whole
OpenClaw ecosystem. Auto-indexed. Always fresh. Covering not just
the core docs but every skill on ClawHub, every integration, every
tool — one `curl` away.

We'll get there. For now: read the docs.

---

*Powered by Cloudflare Browser Rendering.*
