Skip to content
Agent Memory
Skill

/rho-cloud-onboard

Register an agent email address on Rhobot Mail (name@rhobot.dev). Use when the user wants to set up agent email, register a Rhobot Mail account, claim an email handle, or onboard to rhobot.dev.

BOOST
From plugin
rho
37328 skills
Install
$ npx -y skills add mikeyobrien/rho --skill rho-cloud-onboard --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/rho-cloud-onboard

Context preview

The summary Claude sees to decide when to auto-load this skill.

Register an agent email address on Rhobot Mail (name@rhobot.dev). Use when the user wants to set up agent email, register a Rhobot Mail account, claim an email handle, or onboard to rhobot.dev.

SKILL.md

rho-cloud-onboard.SKILL.md
name: rho-cloud-onboard
description: Register an agent email address on Rhobot Mail (name@rhobot.dev). Use when the user wants to set up agent email, register a Rhobot Mail account, claim an email handle, or onboard to rhobot.dev.
kind: sop

Rhobot Mail Onboarding

Register an agent email address on Rhobot Mail and configure local credentials. The agent gets an inbox at `name@rhobot.dev` that can be polled via API.

Parameters

  • **handle** (required): The desired email local part (e.g. `tau` for `tau@rhobot.dev`)
  • **display_name** (optional): Human-readable name for the agent

URLs

  • **Landing page**: `https://rhobot.dev/email`
  • **Skill reference**: `https://rhobot.dev/skill.md`
  • **API endpoint**: `https://api.rhobot.dev` (all API calls go here)

Prerequisites

  • `curl` and `jq` installed
  • Internet access to `api.rhobot.dev`

Steps

1. Collect Handle

Ask the user what email handle they want. If not provided, suggest one based on the agent's name or personality.

**Constraints:**

  • Handle MUST be 1-64 characters, lowercase alphanumeric and hyphens only
  • Handle MUST NOT start or end with a hyphen
  • Handle MUST NOT be a reserved name: `admin`, `postmaster`, `abuse`, `noreply`, `no-reply`, `support`, `help`, `info`, `security`, `webmaster`, `hostmaster`, `mailer-daemon`, `root`, `dmarc`
  • You MUST validate the handle format locally before making the API call
  • You MUST confirm the handle with the user before registering: "Register as `{handle}@rhobot.dev`?"

2. Check Existing Credentials

Before registering, check if credentials already exist.

cat ~/.config/rho-cloud/credentials.json 2>/dev/null

**Constraints:**

  • If credentials exist and contain a valid `api_key`, MUST warn the user: "Existing credentials found for `{email}`. Registering again will create a new account. Continue?"
  • If the user does not confirm, MUST stop
  • You MUST NOT overwrite credentials without explicit confirmation

3. Register with API

Call the registration endpoint.

curl -s -X POST https://api.rhobot.dev/v1/register \
  -H "Content-Type: application/json" \
  -d '{"name": "{handle}", "display_name": "{display_name}"}' | jq .

**Constraints:**

  • You MUST check the response `ok` field before proceeding
  • You MUST handle these error cases:

| HTTP Status | Error | Action | |-------------|-------|--------| | 400 | Invalid name format | Show the validation rules. Ask user to pick a different handle. Return to Step 1. | | 409 | Handle already taken | Tell user `{handle}@rhobot.dev` is taken. Suggest alternatives: `{handle}-agent`, `{handle}-bot`, `{handle}-ai`, or ask user for another name. Return to Step 1. | | 500 | Server error | Report the error. Suggest retrying in a few minutes. | | Network error | Connection failed | Check internet. Suggest `curl -s https://api.rhobot.dev/v1/health | jq .` to verify the API is up. |

  • You MUST NOT proceed if registration fails
  • On 409 (taken), you MUST suggest at least 3 alternative handles

4. Save Credentials

On successful registration, save the credentials locally.

mkdir -p ~/.config/rho-cloud
cat > ~/.config/rho-cloud/credentials.json << 'EOF'
{
  "api_key": "{api_key from response}",
  "agent_id": "{agent_id from response}",
  "email": "{email from response}"
}
EOF
chmod 600 ~/.config/rho-cloud/credentials.json

**Constraints:**

  • You MUST set file permissions to 600 (owner read/write only)
  • You MUST verify the file was written by reading it back
  • You MUST NOT log or display the full API key after saving. Show only the first 8 characters.

5. Verify Registration

Confirm the credentials work by hitting the health and status endpoints.

# Health check
curl -s https://api.rhobot.dev/v1/health | jq .

# Auth check
curl -s -H "Authorization: Bearer {api_key}" \
  https://api.rhobot.dev/v1/agents/status | jq .

**Constraints:**

  • Health check MUST return `{"ok": true}`
  • Status check MUST return the agent list with the registered email
  • If status check returns 401, credentials are invalid. Report error and suggest re-registering.

6. Claim Your Agent

The registration response includes a `claim_url` for identity verification.

**Constraints:**

  • You MUST show the claim URL to the user
  • You SHOULD offer to open the claim URL on the device using the open-url skill or `termux-open-url`
  • Claiming verifies ownership. Unclaimed agents cannot receive email and may be removed.
  • You MUST strongly encourage the user to complete the claim flow immediately.

7. Report

Summarize what was set up.

**Report template:**

Registered: {handle}@rhobot.dev
Agent ID:   {agent_id}
Credentials: ~/.config/rho-cloud/credentials.json
Claim URL:  {claim_url}
Status:     {claimed or pending}

Send a test email to {handle}@rhobot.dev to verify delivery.
Use the rho-cloud-email skill to check your inbox.

Troubleshooting

| Problem | Solution | |---------|----------| | "already taken" on a handle you own | You may have registered previously. Check `~/.config/rho-cloud/credentials.json` for existing credentials. | | Health check fails | API may be down. Try again in a few minutes. Check `dig api.rhobot.dev` for DNS resolution. | | Auth check returns 401 | API key may be invalid or corrupted. Re-register with a new handle. | | Claim URL returns 404 | Claim token may have expired. Re-register to get a fresh claim URL. |

Read more
Ships withrho

An always-on personal AI operator that: stays running in the background, remembers context across sessions, and checks in proactively on a schedule. Runs on macOS, Linux, and Android (plus iPhone/iPad via SSH). Built on pi coding agent. Terminal demo

Get the whole plugin
Stats
373
Stars
29
Forks
Active
Maintenance
TypeScript
Language
MIT
License
16d ago
Last commit
8mo ago
Created
3h ago
Added

Repo: mikeyobrien/rho

Other skills on rho.

device
Skill

device

Device controls — vibration, torch, volume, battery status, toast messages. Use for haptic feedback, flashlight, or quick status…

@mikeyobrien@mikeyobrienInstall Skill
dialog
Skill

dialog

Show interactive dialogs for user input — text, confirmations, choices, date/time pickers. Use when you need user input beyond…

@mikeyobrien@mikeyobrienInstall Skill