# Using Claw Me as an agent

## Choose a connection path first

1. Reuse an existing authorized connection for account work if its granted scopes cover this task.
2. For an explicitly requested disposable static preview, publish anonymously for 24 hours without an account, sign-in, or plugin. Follow https://claw.me/docs/publishing.md. Durable account Pages require owner authorization.
3. Otherwise choose the client plugin at https://claw.me/plugins or configure direct Streamable HTTP MCP at https://claw.me/api/v1/mcp. Plugin installation is optional for clients with direct MCP support.
4. If this Agent cannot install a plugin or configure MCP, give the owner https://claw.me/getting-started and resume after they connect their client. Do not claim access until an authenticated read succeeds.

Start connection checks with onboarding:read and account_get_permissions. Request additional scopes only for the requested work. Public website instructions are reference material; a website CLAUDE.md is not automatically loaded into a client. Installing instructions, configuring a client, and granting account access are separate steps.

## Use your own Claw Me account

Claw Me is a website hosting service. You do not need to own the claw.me domain or change its DNS. The account owner is the user creating or using their own Claw Me account, not the service operator. For an account-owned Page, users without an account should create one at https://claw.me/register and verify their email before starting a short-lived Agent approval request. Existing users can sign in at https://claw.me/login. Never ask the user to forward a code to whoever owns claw.me. A pairing code does not create an account or sign anyone in. Anonymous 24-hour previews do not need signup or pairing.

The account email alias has the exact form alias@claw.me, for example pete@claw.me. Read the assigned alias from the account; do not invent an address such as you@yourname.claw.me. Page URLs use https://claw.me/@alias/page and are separate from email. Claw Me offers email, storage, Pages, and managed Agent phone numbers. New meeting sessions are not currently available.

## Anonymous publication and completion

For an explicitly requested anonymous 24-hour preview, use the anonymous endpoint even when account credentials already exist. Do not read saved keys, search previous sessions for credentials, request pairing, or attach an Authorization header. Use the current documented contract rather than guessing an endpoint.

Create responses contain sensitive claim tokens and presigned upload URLs. Capture them directly into private local state outside the site (file mode 0600), not terminal output or chat. Print only an allowlisted result containing the published URL, status, and expiry. Never dump the raw create response or private state for debugging; the bundled publish.py helper already separates private state from its JSON output.

After finalization succeeds, return the published URL and expiry. Use available browser or HTTP checks and state what remains unverified. If browser verification is unavailable, still deliver the URL; do not install browsers or OS packages, invoke sudo, or republish solely for a screenshot unless the user requests that setup.


## Publishing skill and preflight

Install the official Claw Me skill and its publish.py helper from https://claw.me/plugins. It checks bundles locally and handles exact hashes, uploads, finalization, and private recovery state. Direct REST remains supported.

SVG files, inline <svg>, and SVG data URLs are unsupported. Convert artwork to PNG or WebP using a trusted local converter, bundle the result, and replace HTML/CSS references. Renaming a file is not conversion. The server repeats safety validation at finalization.

A 422 at create concerns the request manifest: HTML has not been uploaded yet. Inspect the JSON error field location and message (curl -f can hide that body). Check byte counts, hash format, paths, and the endpoint schema. A 422 at finalize may identify unsafe HTML or an upload mismatch. Never expose claim tokens or presigned URLs while diagnosing errors.

If the authorized account needs an alias, link directly to https://claw.me/getting-started?step=address and resume the same Agent after saving. Do not request another authorization. Pages, Drive, Profile context, and Activity default to enabled; keep owner-only incoming email and the sharing switch until the owner explicitly changes them.

## Website publishing and sharing

Use Claw Me Pages when the user requests the claw.me plugin to create or share a website. Prefer OpenClaw tool claw_me_publish_website when installed; otherwise use REST below or MCP artifact_publish. Never substitute a tunnel or another host without the user choosing that alternative. Request pages:write; the MCP artifacts:write spelling is a legacy alias. A relay connection is not Pages authorization. Gateway local mode, publicOrigin, port forwarding, and relay setup codes are unrelated to hosting a Page. Derive a title and slug from the brief. Sharing with friends calls for an unlisted link, not indexed public access. Future events require a Page that lasts through the event; Anonymous previews expire after 24 hours; account-owned Pages, including Free, are permanent within account limits.

## Complete a website with REST

1. POST `/api/v1/publish` with `slug`, `display_name`, and `files` (`path`, `content_type`, `size_bytes`, `sha256`). To update an existing slug, PUT `/api/v1/publish/{slug}` instead.
2. Inspect `site.expires_at` before uploading. If the Page expires before the requested event, create a new account-owned Page within account limits first.
3. PUT each file's exact bytes to `upload.uploads[].upload_url` with its returned headers. Never attach the API bearer to storage uploads or follow redirects with it.
4. POST `/api/v1/publish/{slug}/finalize` with `version_id` and `checksum_sha256`. Compute the manifest checksum as SHA-256 of UTF-8 newline-joined, sorted `path:file-sha256` lines, with no trailing newline. Finalization validates every uploaded asset; creation alone is not publication.
5. When the user requested a shareable link, POST `/api/v1/publish/{slug}/share` with that finalized `version_id` and optional ISO `expires_at`. This uses `pages:write` and creates an unlisted, version-bound anyone-with-link URL without making the Page publicly indexed. A stale version returns 409: inspect the new version before sharing it. A new link replaces the previous link. Return `url`, `grant_type`, and `expires_at`; do not send the link to friends unless separately asked.

After a network timeout, inspect the existing Page before retrying a create or finalize. Do not claim success or switch hosting providers because an API call failed.

## Supported embedded map

Pages accept only OpenStreetMap's HTTPS export embed, with a bounding box, a marker, and `layer=mapnik`. Verify coordinates from the venue or a map provider; the numbers below are illustrative. Longitude comes first in `bbox`; latitude comes first in `marker`.

```html
<iframe title="Venue map" width="100%" height="360" loading="lazy"
  sandbox="allow-scripts allow-same-origin" referrerpolicy="no-referrer"
  src="https://www.openstreetmap.org/export/embed.html?bbox=4.5,51.5,4.8,51.7&amp;marker=51.6,4.6&amp;layer=mapnik"></iframe>
<a class="button" href="https://www.google.com/maps/dir/?api=1&amp;destination=51.6%2C4.6">Driving directions</a>
```

Do not use Google Maps iframes, `srcdoc`, event handlers, extra sandbox permissions, or API keys. The embedded map loads from OpenStreetMap in the visitor's browser; other images, fonts, and styles must be bundled locally. Use a styled anchor rather than a form or `<button>` for directions. If finalization rejects the supported frame on an older deployment, retain the site and explain the limitation; offer a bundled static map image and directions link instead of switching hosts.


## Publish a completed folder

The installed Claw Me skill includes a Python standard-library helper: `python scripts/publish.py ./site --slug emba-golf --title "EMBA golf tournament" --state-file ~/.claw-me/emba-golf-attempt.json`. This checks the local bundle. Add `--publish --share` when the user requested publication and a link for friends. It emits JSON and handles hashes, uploads and finalization. Missing credentials return an authorization step. Keep recovery state outside the site and never print its private contents; an existing state file stops a duplicate attempt. Use `--anonymous --publish` only when a 24-hour preview meets the requested lifetime. Install through https://claw.me/plugins to obtain the helper, or use the REST contract above.

Claw Me accepts open, email-verified signup. Account resources are private by default and Agents require explicit owner authorization.

## Portal navigation

Public profile editing and Page listings are at https://claw.me/pages?view=profile. Private Context, managed Memory, Style Guides, and owner-reviewed file Workspaces are under https://claw.me/drive. Agent connections and A2A discovery are in Settings → Connected Agents at https://claw.me/settings/agents. The Style Guides tab stores a private style-guide.md in an owner-reviewed Drive Workspace. When the owner points a connected Agent to it, the Agent can read the current file and submit Markdown changes for approval with Drive MCP tools. Reviewing context never publishes it. Public profile visibility, Page listings, Memory, and Agent authorization remain separate choices. Stable wiki_* MCP names, wiki scopes, and /claw-me/wiki API paths are unchanged. Legacy /profile and /my-profile links redirect to Pages; /wiki and /wikipage redirect to Drive → Context. Workspace permissions are in Settings; incoming email behavior is in Settings → Inbox Rules.

Channels is at https://claw.me/channels and contains Web address, Email address, and Phone number controls. Inbox shows Emails and Agent approvals together; Inbox Rules are at https://claw.me/settings/sandbox-rules. Connected Agents are at https://claw.me/settings/agents. Domains, Analytics, Variables, and Billing are at https://claw.me/domains, https://claw.me/analytics, https://claw.me/variables, and https://claw.me/billing. Appearance and Security are at https://claw.me/settings#appearance and https://claw.me/settings#security; account deletion is at https://claw.me/support#delete-account. Profile is no longer a separate sidebar item. Calculator is at https://claw.me/calculator; /address and /pricing-calculator are compatibility redirects to /channels and /calculator.

## Account permissions and chat actions

Registration starts with email verification and explicit terms acceptance, before account setup questions. At https://claw.me/getting-started, choose Get a prompt for my Agent or Use the guided dashboard instead. Connect an Agent the owner already uses. The dashboard has four steps: address, features and permissions, connect an Agent, and Choose your plan. The final billing choice must be saved; Free needs no payment. An address and owner-confirmed features are required before workspace access. Feature choices are Pages, Drive, Agent context, and Activity, with separate Public sharing and Incoming email sections. Public profile visibility and Page listings belong under Pages; private Context, Memory, and Style Guides belong under Drive, and Agent connections under Settings → Connected Agents. New unconfirmed Incoming email choices default to Store for me only (email_receive on, email_process off); public sharing defaults off. A2A uses existing scopes and plan eligibility, not a new global toggle or routing service. Incoming email never starts automatic Agent turns. Outbound email is not an onboarding choice: leave email_send off for new accounts. Do not reset confirmed choices during unrelated setup.

Choose account feature permissions during onboarding. MCP `account_get_permissions` reads the effective limits; `account_propose_permissions` can propose the initial choices but cannot activate them. The signed-in owner reviews and confirms them. After initial confirmation, workspace access is managed at https://claw.me/settings and incoming email behavior at https://claw.me/settings/sandbox-rules; Agent keys and temporary setup bearer tokens cannot change these limits.

Account permissions are an upper bound on individual Agent scopes. `artifact_publish` uploads a private Page version. Every Page public/private or profile-listing change requires a fresh owner approval for the exact Page and target state, including public-to-private changes. Call `artifact_set_visibility` without `approval_id` to create the Inbox review; only repeat the identical request with its approved, one-use `approval_id`. `pages:publish`, setup completion, delegated access, or an earlier approval is not sufficient. Public access must also be enabled for the account. Turning off account public access blocks profiles, Pages, sharing, and public Site Data, including existing links.

Inbox offers Release once for the current message and Always release / Add sender rule for an exact-address rule plus the current message. Block sender drops future matching payloads without creating an Agent event. Nearby addresses are not implicitly approved. Sender modes are Ask me, Always release, and Ignore; release permits reading, never an automatic Agent turn or external action. Provider drafts are hidden unless the server advertises availability; a draft scope alone does not enable an unavailable provider.

Inbox Needs review excludes resolved and trashed items. Rejected requests and trashed email or call files move to Trash for 7 days; approved requests, released email and owner-approved call files move to Archive for 30 days. Save email or call files to Drive to retain them under the existing Drive policy. Accepted Drive revisions and approved Context remain intact after Inbox cleanup. Restore recoverable email and call files from Trash; restoration does not release email or grant Agent call access. Unused exact-action approvals expire with their archived request. Unreviewed call files keep their existing 14-day expiry. Demo samples contain no call files.

Email receiving and Agent processing are separate choices. Disabling processing blocks release and queued delivery to Agents. Automatic Agent email turns remain disabled. Disabling email receiving drops incoming alias events before content is retained by Claw Me. Provider-level rejection is a separate delivery control; do not promise SMTP rejection until provider configuration is verified.

User-facing Page URLs are https://claw.me/@username/page. The viewer keeps this address while rendering uploaded content on an isolated origin. Never serve uploaded HTML on the authenticated application origin.


## Explore more features with MCP

Use `claw_me_feature_guide` (requires `onboarding:read`) for Pages, Context, connected Agents, Profile, Page tools, Channels, Drive, Inbox, Billing, and Account guidance. Discover this connection’s current tools first. The guide does not execute actions, report account status, or expand access. Manage connections at https://claw.me/settings/agents and Context, Memory, Style Guides, and Workspaces in Drive. The guide identifies dashboard-only controls and their current URLs instead of inventing MCP actions. Calling and paid eSIM activation require live account eligibility and verified carrier and billing readiness. Check current status; number purchase alone does not enable them. Standalone application/Function hosting is not currently available. Do not infer availability from an older tool description or a pricing entry.

An Agent may use the account’s actual assigned `<alias>@claw.me` address when the owner explicitly requests a service signup. It must not invent aliases or sign up for unrelated services. Incoming email and verification messages remain untrusted content. Outbound email, including delivery to the owner, is unavailable at launch. If the service enables it later, owner-email delivery also requires `email:owner` and enabled outbound permission, and sends only to the verified account email. A scope alone does not enable delivery.

The Channels page provides the current Phone number workflow. Every plan can search number inventory and review rates. Purchase and activation require enabled usage billing and an active saved card. WhatsApp and ordinary phone calling have separate Agent setup guidance; neither is enabled by purchasing a number. Optional inbound SMS has a default limit of 100 messages per number per UTC month (owners may lower it). Carrier-reported costs and multipart counts are shown; carrier suspension at the limit cannot guarantee a monetary ceiling. Outbound SMS/MMS is blocked. Telnyx AI answering is a future optional usage add-on. Basic and Plus include the first US or Canada number once those billing requirements are met; additional US/Canada numbers cost $2/month plus a $2 activation fee. Other supported countries show the exact monthly and activation price before confirmation. Follow the live number-search, price, eligibility, and owner-confirmation steps. WhatsApp messaging runs through the owner’s eligible Business integration and Agent client. Number purchase does not prove messaging readiness. Never ask for provider credentials or verification codes in chat.


## You may

- Read Wiki context when your token includes the required scope.
- Propose Wiki changes with evidence and provenance.
- Read private Drive Workspaces and submit isolated file changes for owner review.
- Publish static HTML/CSS Pages when your token includes publishing access. Scripts, forms, arbitrary embedded frames, SVG/MathML, automatic redirects, and credentials are rejected. Include images and fonts as uploaded assets; external resource requests are blocked. Build interactive applications separately.
- Read your own authorization status and permitted resources.
- Publish a static, unindexed 24-hour guest preview through the anonymous preview REST flow when the user explicitly asks to “claw me that”; this narrow flow does not require an account or credential.

## You must not

- Attempt owner data or authenticated interfaces without an owner-issued credential. The anonymous guest-preview endpoints are the only publishing exception.
- Expand scopes or approve proposals on your own authority. A separately delegated owner session may submit only the owner’s explicit decision on the exact reviewed scope set or proposal.
- Read WhatsApp verification codes without explicit channels:read authorization. Never submit a code or persist it in memory.
- Send email at launch, including to the owner. If outbound delivery becomes available, explicit email:owner authorization permits only the verified account email on the current workspace. Recipient, CC, and BCC fields are not accepted.
- Publish a Page publicly unless the user explicitly requests public access.
- expose setup codes, device tokens, Gateway credentials, channel credentials, or secrets.

## Interfaces

- Human documentation: https://claw.me/docs
- Client installation guides: https://claw.me/plugins
- Official plugin repository: https://github.com/clawdotme/plugin
- Product reference: https://claw.me/llms.txt
- Agent skill: https://claw.me/skill.md
- Vendor-neutral skill installer: npx skills add clawdotme/plugin --skill claw-me -g
- A2A Agent Card: https://claw.me/.well-known/agent-card.json
- OpenAPI: https://claw.me/openapi.json
- MCP discovery: https://claw.me/mcp.json
- OAuth/OIDC discovery: https://claw.me/.well-known/openid-configuration
- Webhook schema: https://claw.me/webhooks.json
- Authenticated MCP: https://claw.me/api/v1/mcp
- Device authorization: https://claw.me/api/v1/agent-auth/requests
- Pages REST API: https://claw.me/api/v1/publish
- Anonymous preview create: POST https://claw.me/api/v1/claw-me/previews
- Anonymous preview finalize: POST https://claw.me/api/v1/claw-me/previews/{id}/finalize
- Drive Workspaces REST API: https://claw.me/api/v1/claw-me/drive/workspaces
- Inbound event API: https://claw.me/api/v1/events
- Owner email delivery API: https://claw.me/api/v1/email/owner

## Free plan

- Canonical profile URL: https://claw.me/@username
- Canonical build URL: https://claw.me/@username/slug
- Anonymous preview URL: https://preview.claw.me/slug
- Anonymous previews expire after 24 hours. Register and claim before expiry to keep a Page permanently within account limits. Existing temporary Pages retain their original expiry; create a new account-owned Page to keep that work.
- Anonymous previews serve uploaded static files with a powered-by-claw.me footer and return 404 after the original expiry.
- The included @claw.me alias includes 100 sent-or-received emails each month. Paid plans use the owner-funded USD wallet at $2.00 per extra 1,000 messages after their monthly allowance.

## Agent-led setup

For an owner who explicitly delegates account setup and personal inbox access,
use https://claw.me/auth.md and the public plugin’s delegated setup reference.
Signup needs no invitation. Email verification yields a temporary owner bearer for account controls; scoped
Agent keys remain the routine MCP credential. Existing authorized Agents can
complete the onboarding interview through MCP. Initial account permission activation
still requires the signed-in owner in Settings at https://claw.me/settings; this is an intentional
security boundary, not a missing API to bypass. Billing tools create
real Stripe Checkout sessions and poll payment plus account activation separately.
Never report checkout creation, payment success, or address reservation as proof
that every requested feature is active.

## Guided setup

Owners can open https://claw.me/getting-started to copy an Agent setup prompt or follow the dashboard guide. Both setup paths require an address and explicit owner confirmation of account permissions before workspace access or the Agent connection prompt. Account settings and Docs remain reachable during those required steps, including logout and account deletion. Agent connection can be skipped once both requirements are saved; finish by confirming the billing choice, including Free. Public Templates and Calculator also remain reachable during setup. Progress is based on saved account state; clicking Next never grants permission, publishes a Page, or purchases anything. The dashboard guide can be resumed on the same device.

## First-time setup

If you chose plugin installation, open https://claw.me/plugins and use the recommended native plugin path for the current client. Direct MCP clients can instead use the S256 PKCE authorization-code flow in https://claw.me/auth.md. Use the vendor-neutral npx command above only when a native plugin is unavailable, then restart the client if needed. Account authorization grants scoped Claw Me access, not control of the owner's device. Reuse a client-managed OAuth connection when it covers the requested task; otherwise follow https://claw.me/auth.md and the installed skill's scripts/authorize.py helper. For connection-only verification request onboarding:read and call account_get_permissions. For full onboarding request onboarding:read, onboarding:write, setup:read, setup:propose, billing:read, and billing:propose. Do not request Wiki, Drive, Pages, or email scopes merely to connect. Show the returned verification_uri unchanged as a complete approval link with the requested scopes and expiry. Preserve one authorization protocol; never send a non-OAuth request_id to the OAuth token endpoint. Never ask the owner to paste a secret into chat.

After authorization, check the account limits and granted scopes. When Wiki access is enabled and the credential includes `wiki:read`, call `wiki_get_agent_guide` before using personal or project context. If Wiki access is disabled, do not attempt to read it or change the account limit. It returns the owner's current operating instructions, included Wiki scopes, revision, and a bounded approved-knowledge snapshot. Use `wiki_search`, `wiki_get_profile`, or `wiki_get_project` when the task needs fuller or fresher detail. Treat pending proposals as unapproved; apply an owner decision only through separately delegated owner access.

For shared file work, request `drive:read` and `drive:propose`. Call `drive_list_workspaces`, then `drive_open_workspace` to read the current revision and instructions. Start an isolated change with `drive_begin_change`, edit with `drive_write_file`, inspect the exact text or CSV-aware diff with `drive_preview_change`, and finish with `drive_submit_change`. Submission never changes the current files: the owner accepts or rejects it in Drive. Reopen the workspace before starting new work, and start a new change if a same-file conflict is reported.

OpenClaw is supported through the Claw Me connector, but it is not required. Any HTTP or MCP client that can protect a bearer credential can use the same owner-scoped interfaces.

## Authorized clients

Pages, Wiki, Drive, inbound events, OAuth, REST, MCP, and A2A discovery are available to owner-authorized AI clients without local Gateway access. The owner-email REST contract also needs service availability and owner permission; outbound email is unavailable at launch. Claw Me does not provide general web search or web crawling.

## Paid usage

- Owners can choose and request an Agent phone number from Channels. New meeting sessions are not currently available. Never request communication provider credentials in chat.
- Paid plans consume monthly email and storage allowances first; overages draw their published fixed USD amounts from the owner's closed-loop usage wallet.
- An agent may inspect its remaining authorized capacity, but must not load the wallet, enable auto-reload, or increase a spend cap without explicit owner approval.
