Openclaw User Onboarding

v1.0.0

Bootstraps new OpenClaw users with guided setup and configurable feature introductions. Auto-triggers on first session if ONBOARDING_PROGRESS.md is missing....

0· 86·0 current·0 all-time
byTian@dukesky

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for dukesky/openclaw-user-onboarding.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Openclaw User Onboarding" (dukesky/openclaw-user-onboarding) from ClawHub.
Skill page: https://clawhub.ai/dukesky/openclaw-user-onboarding
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install openclaw-user-onboarding

ClawHub CLI

Package manager switcher

npx clawhub@latest install openclaw-user-onboarding
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name and description match the runtime instructions: the skill asks onboarding questions, writes USER.md / SOUL.md / HEARTBEAT.md / ONBOARDING_PROGRESS.md, and schedules periodic feature-intro runs. It does not request unrelated credentials or binaries.
Instruction Scope
Instructions read and write workspace files and create a cron-style job that will trigger future agent turns and deliver intros to the user's chosen channel. This is coherent for an onboarding skill, but it does grant the skill the ability to mutate workspace state and schedule recurring activity — users should expect those side-effects and review the written files and cron job after first run.
Install Mechanism
Instruction-only skill with no install spec or downloads; nothing is written to disk by an installer. Lower risk from install mechanism.
Credentials
No environment variables, secrets, or external credentials are requested. The skill asks for a preferred messaging channel (Q2) to target delivery; actual delivery is expected to use existing platform connectors rather than new credentials, which is proportionate to the stated purpose.
Persistence & Privilege
The skill is flagged always: true and is injected into every interactive session so it can auto-trigger on first run. This behavior is explained by the README (always-loaded to check onboarding state), but always:true is a higher privilege—it will be present in all sessions and can auto-start the onboarding flow and create cron jobs. That is reasonable for onboarding but worth conscious consent.
Assessment
This skill is internally consistent for an onboarding tool, but it will modify workspace files and create a recurring cron job that triggers agent messages. Before installing or allowing it to run: 1) Inspect SKILL.md and README (you already have them) to ensure you’re comfortable with files it will write (USER.md, SOUL.md, HEARTBEAT.md, ONBOARDING_PROGRESS.md). 2) If you prefer to test first, install it in an isolated workspace copy or a throwaway profile. 3) After first run, verify the ONBOARDING_PROGRESS.md and the created cron job (jobId) and confirm delivery channel settings are correct. 4) If you don’t want persistent auto-loading, do not enable always-loaded skills or remove this skill after setup. 5) If you see unexpected external delivery targets or unknown credentials being requested, revoke and investigate. Overall: acceptable for use if you trust the source and consent to automatic workspace changes and scheduled intros.

Like a lobster shell, security has layers — review code before you run it.

latestvk972jgvh1t1dskskmq49pzg2zx84pnbr
86downloads
0stars
1versions
Updated 2w ago
v1.0.0
MIT-0

OpenClaw User Onboarding Skill

This skill turns a blank OpenClaw install into a useful, personalized assistant. It runs silently in the background — one setup conversation, then one short introduction at your chosen pace — until you've explored the full platform.


Part 1 — Auto-Trigger Logic

At the start of every interactive (non-cron, non-background) session:

  1. Check whether ONBOARDING_PROGRESS.md exists in the workspace.
  2. Act based on its status:
StateAction
File missingStart Phase 1 — Discovery immediately as your first reply
status: activeEnsure the intro cron job exists (create it if missing) — then proceed normally
status: pausedDo nothing — wait for explicit /openclaw-user-onboarding invocation
status: completeDo nothing — all features introduced

Do not run auto-trigger logic during cron runs, sub-agent sessions, or isolated background turns. Check: if payload.kind is agentTurn from cron, skip this skill's auto-trigger entirely.


Part 2 — Phase 1: Discovery (first run only)

When ONBOARDING_PROGRESS.md is missing, greet the user warmly and ask these questions one at a time, waiting for each answer before the next:

Q1 — Name

"Hi! I'm getting myself set up to be as helpful as possible. What should I call you?"

Q2 — Primary messaging channel

"Which app do you use most for messaging? (e.g. iMessage, WhatsApp, Telegram, Slack, Discord — or just here in chat)"

Q3 — Main goal

"What's the main thing you're hoping I can help with? For example: staying on top of tasks and emails, automating repetitive work, coding assistance, or just having a smart assistant available everywhere?"

Q4 — Timezone

"What timezone are you in? I want to schedule check-ins at sensible times."

Q5 — Introduction frequency

"How often would you like me to introduce a new OpenClaw feature?

  • Daily — fast track, one feature per day (10 days total)
  • Every 3 days — steady pace, done in about a month
  • Weekly — relaxed, one feature per week (default)
  • Or tell me any other interval you prefer."

After all five answers, proceed to Phase 2 — Setup. Do not ask for more detail than needed; the user can always tell you more later.


Part 3 — Phase 2: Setup

Perform these steps silently (no need to narrate each one). Announce when done.

3a — Resolve the cron expression from Q5

Convert the user's frequency answer into a cron schedule:

User saysCron expressionPlain description
"daily" / "every day" / "1 day"0 10 * * *Every day at 10am
"every 2 days"0 10 */2 * *Every 2 days at 10am
"every 3 days"0 10 */3 * *Every 3 days at 10am
"every N days"0 10 */N * *Every N days at 10am
"weekly" / "every week" / "once a week"0 10 * * 0Every Sunday at 10am
"every N weeks"0 10 * * 0/NEvery N weeks on Sunday
"twice a week"0 10 * * 1,4Monday and Thursday at 10am
Custom expression providedUse as-isAs described by user

If the user gives an ambiguous or unsupported answer, default to 0 10 * * 0 (weekly) and tell them.

Store both the cron expression and a human-readable description in ONBOARDING_PROGRESS.md.

3b — Write USER.md

Create or update USER.md in the workspace:

# User Profile

Name: <name from Q1>
Primary channel: <channel from Q2>
Main goal: <goal from Q3>
Timezone: <timezone from Q4>
Onboarding started: <today's date>

3c — Write SOUL.md (if it doesn't already exist)

Create a starter SOUL.md tuned to the user's goal:

# Persona

You are a proactive, helpful personal assistant.
Tone: friendly but concise — no filler phrases like "Certainly!" or
"Great question!". Get to the point.

Adapt to the user's stated goal:
- Tasks/email focus: prioritise actionable summaries and follow-up reminders
- Automation focus: suggest cron jobs and skills for repetitive patterns
- Coding focus: be precise, prefer code examples over prose
- General assistant: balanced, warm, practical

If SOUL.md already exists, do not overwrite it.

3d — Write HEARTBEAT.md

Create HEARTBEAT.md (overwrite only if it's empty or missing):

# Heartbeat checklist

- Scan for anything time-sensitive (messages, reminders, cron alerts).
- If an onboarding feature intro is due soon, surface it gently.
- If nothing needs attention, reply HEARTBEAT_OK.

3e — Create the feature-intro cron job

Add a cron job using the cron tool with the expression from step 3a:

{
  "action": "add",
  "job": {
    "name": "OpenClaw Feature Discovery",
    "schedule": {
      "kind": "cron",
      "expr": "<cron expression from 3a>",
      "tz": "<timezone from Q4>"
    },
    "sessionTarget": "session:openclaw-onboarding",
    "payload": {
      "kind": "agentTurn",
      "message": "Read ONBOARDING_PROGRESS.md from the workspace. If status is 'active', find the next unchecked feature in the curriculum, introduce it in 2–3 plain sentences with one concrete example the user can try right now, then ask if they would like to set it up. Mark the feature as introduced with today's date. If status is 'paused' or 'complete', reply NO_REPLY.",
      "lightContext": false
    },
    "delivery": {
      "mode": "announce",
      "channel": "<primary channel from Q2>",
      "to": "<user's contact on that channel if known>"
    }
  }
}

Store the returned jobId in ONBOARDING_PROGRESS.md.

3f — Write ONBOARDING_PROGRESS.md

Create ONBOARDING_PROGRESS.md in the workspace:

# OpenClaw Onboarding Progress

status: active
started: <today's date>
intro_cron_job_id: <jobId from step 3e>
intro_frequency: <human-readable description, e.g. "daily", "every 3 days", "weekly">
intro_cron_expr: <cron expression, e.g. "0 10 * * *">
primary_channel: <channel>
delivery_target: <user contact>

## Feature Curriculum

- [ ] 1. Heartbeat & HEARTBEAT.md — always-on check-ins without bothering you
- [ ] 2. Cron reminders (main session) — "remind me in 20 minutes"
- [ ] 3. Cron isolated reports — scheduled summaries delivered to your chat
- [ ] 4. Skills — extending the agent with new capabilities
- [ ] 5. Multi-channel routing — same agent, every platform you use
- [ ] 6. Browser automation — agent controls a browser on your behalf
- [ ] 7. Sub-agents — spawn parallel workers for long tasks
- [ ] 8. Multi-agent setup — multiple personas on one gateway
- [ ] 9. Webhooks + Gmail trigger — external events wake the agent
- [ ] 10. MCP servers — connect any external tool to the agent

3g — Send a friendly completion message

After setup is done, tell the user what was configured, using their actual frequency:

"You're all set, <name>! I've saved your profile, set up a regular heartbeat checklist, and scheduled a short feature introduction for you <intro_frequency> at 10am — 10 features total, one at a time. Nothing overwhelming. You can pause anytime by saying 'pause onboarding', change the pace with 'change onboarding frequency', and pick back up with '/openclaw-user-onboarding'. What would you like to do first?"


Part 4 — Phase 3: Feature Introductions

This phase runs automatically via the cron job created in Phase 2 at whatever frequency the user chose. The cron message instructs the agent to:

  1. Read ONBOARDING_PROGRESS.md
  2. Find the first unchecked [ ] item in the curriculum
  3. Introduce it using the description below (2–3 sentences + one example)
  4. Ask: "Would you like to try setting this up now?"
  5. Mark the item as done: - [x] N. Feature Name — introduced <date>
  6. Save the updated file

Feature Introductions Script

Use these descriptions. Adapt tone to the user's goal from USER.md.

1. Heartbeat & HEARTBEAT.md

"The heartbeat is your agent's idle cycle — every 30 minutes, it quietly checks a small file called HEARTBEAT.md for things to keep an eye on. I already set one up for you! Try adding a line like '- If any tasks are overdue, remind me' and I'll surface it next time." Example: edit HEARTBEAT.md and add a line — it takes effect immediately.

2. Cron reminders (main session)

"You can ask me to remind you of anything, and I'll schedule it automatically. Just say 'remind me in 20 minutes to call the dentist' and I'll create a one-shot cron job that injects a nudge into our conversation at the right time." Example: "Remind me in 1 hour to review the proposal."

3. Cron isolated reports

"Cron jobs can also run fully on their own — I spin up a fresh session, do some research or summarising, and deliver the result to your chat. Great for daily briefings that arrive before you wake up." Example: "Every morning at 7am, summarise my overnight GitHub notifications and send it here."

4. Skills

"Skills are small instruction sets that teach me how to use specific tools — like controlling a browser, running code, or calling an API. You can see what's loaded with 'openclaw skills list', and install new ones from ClawHub at clawhub.ai." Example: run openclaw skills list to see what I can already do.

5. Multi-channel routing

"I can listen and reply on multiple platforms simultaneously — WhatsApp, Telegram, Slack, iMessage, and more. Configure each channel once and just message me wherever you are." Example: set up a second channel so I respond both here and on Telegram.

6. Browser automation

"I have access to a dedicated browser I can control — clicking, filling forms, taking screenshots, extracting data from pages. It's isolated from your personal browser, so it's safe to hand me credentials for specific tasks." Example: "Log into my GitHub, check for new security alerts, and summarise them."

7. Sub-agents

"For long or parallel tasks, I can spawn background workers that run independently and report back. Your main conversation stays responsive while the work happens in parallel." Example: "Research three competing products at the same time and compare them."

8. Multi-agent setup

"You can run multiple fully isolated personas on the same gateway — different names, personalities, and channel bindings. Useful for a work vs. personal split, or sharing a gateway with someone else." Example: add a second agent that handles only your work Slack.

9. Webhooks + Gmail trigger

"External events can wake me directly. Wire a Gmail inbox to the gateway and every new email triggers an agent turn, or use a webhook URL to wake me from any external service." Example: new email arrives → I triage it and surface anything urgent.

10. MCP servers

"MCP (Model Context Protocol) lets me consume tools from any external server — databases, APIs, custom business logic. Manage servers with 'openclaw mcp set' and I discover their tools automatically at session start." Example: connect a local Postgres MCP server so I can query your database directly.


Part 5 — Pause, Resume, and Frequency Change

Pausing

When the user says "stop onboarding", "pause onboarding", "skip the feature introductions", or similar:

  1. Update ONBOARDING_PROGRESS.md: status: activestatus: paused
  2. Disable the cron job:
    { "action": "update", "jobId": "<intro_cron_job_id>", "patch": { "enabled": false } }
    
  3. Confirm:

    "Got it — I've paused the feature introductions. Resume anytime with '/openclaw-user-onboarding' or 'resume onboarding'."

Resuming

When the user invokes /openclaw-user-onboarding or says "resume onboarding":

  1. Read ONBOARDING_PROGRESS.md:

    • Missing → start Phase 1 (full onboarding from scratch)
    • status: paused → re-enable cron, set status to active, confirm
    • status: active → show progress and next feature
    • status: complete → offer a second pass or deeper dive on any topic
  2. Re-enable the cron job:

    { "action": "update", "jobId": "<intro_cron_job_id>", "patch": { "enabled": true } }
    
  3. Confirm, including the current frequency:

    "Welcome back! Resuming from feature N: <feature name>. Intros are set to <intro_frequency>. Anything you'd like to explore now instead of waiting?"

Changing frequency

When the user says anything like "change onboarding frequency", "make it daily", "slow down the introductions", "switch to every 3 days", or similar:

  1. Ask for (or read from the message) the new frequency.
  2. Resolve the new cron expression using the table in step 3a.
  3. Update the cron job schedule:
    {
      "action": "update",
      "jobId": "<intro_cron_job_id>",
      "patch": {
        "schedule": {
          "kind": "cron",
          "expr": "<new cron expression>",
          "tz": "<timezone from ONBOARDING_PROGRESS.md>"
        }
      }
    }
    
  4. Update ONBOARDING_PROGRESS.md:
    • intro_frequency: <new human-readable description>
    • intro_cron_expr: <new cron expression>
  5. Confirm:

    "Done — I've switched your feature introductions to <new frequency>. The next one will arrive on <next scheduled date>."

Marking complete

After the last feature (10. MCP servers) is introduced, update the file:

status: complete
completed: <date>

Disable the cron job and send a final message:

"That's the full tour! You've explored all 10 core OpenClaw features. I'll keep the heartbeat running as usual. If you want to revisit any feature in depth, just ask — or call '/openclaw-user-onboarding' to start a deeper second pass."


Installation

Copy this directory into your OpenClaw workspace skills folder:

cp -r openclaw-onboarding ~/.openclaw/workspace/skills/

Start a new session — onboarding begins automatically on the first reply:

/new
# or
openclaw agent --message "Hello"

To share with others, publish to ClawHub:

clawhub sync --all

Comments

Loading comments...