{"id":"147cb759-8465-401a-8b73-1b1a630d8b88","entityType":"agent","slug":"clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill","name":"Openclaw_Teach","canonicalUrl":"https://www.xpersona.co/agent/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill","canonicalPath":"/agent/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill","generatedAt":"2026-10-10T07:57:12.281Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T03:44:30.697Z","emptyReason":null},"description":"Record a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md. Skill: Openclaw_Teach Owner: aldow3n-a11y Summary: Record a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md. Tags: latest:0.1.0 Version history: v0.1.0 | 2026-08-12T13:53:27.729Z | auto - Initial release of the \"teach\" skill: record a screen demonstration and generate a reusable, parameterized OpenClaw skill file from it. - Handles both video-only and optional narrated demonstrations","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.7K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s177373rhj19spch3673evsqnd885c4v:grokbot-inspired-teach-as-openclaw-skill","sourceUrl":"https://clawhub.ai/aldow3n-a11y/grokbot-inspired-teach-as-openclaw-skill","homepage":"https://clawhub.ai/aldow3n-a11y/skills/grokbot-inspired-teach-as-openclaw-skill","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/aldow3n-a11y/grokbot-inspired-teach-as-openclaw-skill","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/aldow3n-a11y/skills/grokbot-inspired-teach-as-openclaw-skill","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Record a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md. Skill: Openclaw_Teach Owner: aldow3n-a11y Summary: Record a screen d"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T03:44:30.697Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T03:44:30.697Z","emptyReason":null},"stars":null,"forks":null,"downloads":1720,"packageName":null,"latestVersion":"0.1.0","tractionLabel":"1.7K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T03:44:30.697Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T03:44:30.697Z","lastCrawledAt":"2026-10-10T03:44:30.697Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T03:44:30.697Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.0","createdAt":"2026-08-12T13:53:27.729Z","changelog":"- Initial release of the \"teach\" skill: record a screen demonstration and generate a reusable, parameterized OpenClaw skill file from it. - Handles both video-only and optional narrated demonstrations, with explicit user consent required for audio capture. - Automatic validation of recordings, including frame sampling to check demo quality before transcription. - Generates step-by-step playbooks with clear identification of variable inputs and safe parameterization (never including secrets or credentials). - Supports optional narration transcription and browser history verification for added accuracy (with consent). - Outputs a DRAFT skill and offers a dry run, with a strong focus on privacy and non-destructive operation.","fileCount":13,"zipByteSize":15838}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s177373rhj19spch3673evsqnd885c4v:grokbot-inspired-teach-as-openclaw-skill","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T07:57:12.280Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aldow3n-a11y-grokbot-inspired-teach-as-openclaw-skill/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T03:44:30.697Z","emptyReason":null},"readme":"Skill: Openclaw_Teach\n\nOwner: aldow3n-a11y\n\nSummary: Record a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md.\n\nTags: latest:0.1.0\n\nVersion history:\n\nv0.1.0 | 2026-08-12T13:53:27.729Z | auto\n\n- Initial release of the \"teach\" skill: record a screen demonstration and generate a reusable, parameterized OpenClaw skill file from it.\n- Handles both video-only and optional narrated demonstrations, with explicit user consent required for audio capture.\n- Automatic validation of recordings, including frame sampling to check demo quality before transcription.\n- Generates step-by-step playbooks with clear identification of variable inputs and safe parameterization (never including secrets or credentials).\n- Supports optional narration transcription and browser history verification for added accuracy (with consent).\n- Outputs a DRAFT skill and offers a dry run, with a strong focus on privacy and non-destructive operation.\n\nArchive index:\n\nArchive v0.1.0: 13 files, 15838 bytes\n\nFiles: .gitignore (134b), LICENSE (886b), README.md (4465b), references (0b), references/skill-schema.md (3803b), references/teach-principles.md (2487b), scripts (0b), scripts/frames.py (3865b), scripts/record.py (4136b), scripts/transcribe.py (2798b), skill-card.md (2639b), SKILL.md (6042b), _meta.json (159b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: teach\ndescription: Record a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md.\nversion: 1.0.0\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ffmpeg\n    anyBins:\n      - python3\n      - python\n    emoji: \"\\U0001F3A5\"\n---\n\n# Teach — demonstrate a workflow, get a reusable skill\n\nUse this skill when the user wants to capture a screen demonstration and turn it\ninto a new OpenClaw skill. Everything runs locally on the user's machine; no\ncloud computer is involved.\n\n## Steps\n\n1. **Agree the goal.** Ask the user, in one sentence, what result they are about\n   to demonstrate. Confirm before recording.\n\n2. **Record.** First ask the user whether they want to **narrate** the demo\n   (speak the intent out loud as they go). Narration is optional and\n   consent-gated — never record microphone audio without an explicit yes.\n\n   - **No narration:** `python3 \"{baseDir}/scripts/record.py\" \"<output.mp4>\"`\n   - **With narration:** add `--with-audio`\n     (`--audio-device \"Name\"` only if auto-detect picks the wrong mic).\n\n   Default cap is 600s (10 min), matching Grok Bot's Teach limit. Pass a\n   `max_seconds` arg to change the cap (e.g. `300`). The script records the\n   primary display cross-platform (Windows `gdigrab`, macOS `avfoundation`,\n   Linux `x11grab`) and, with `--with-audio`, the microphone (Windows `dshow`,\n   macOS `avfoundation`, Linux `pulse`). It prints the ffmpeg PID, an `AUDIO\n   on/off` flag, and the final duration. It stops on Ctrl-C or when the cap is\n   reached. Tell the user to perform the workflow once, then stop the recording\n   (Ctrl-C) or let it hit the cap.\n\n3. **Sanity-check.** Run:\n\n   ```bash\n   python3 \"{baseDir}/scripts/frames.py\" \"<output.mp4>\" --check\n   ```\n\n   This writes two frames (≈20% and ≈70% of duration) and reports their paths\n   and the duration. Look at both frames. If they show an idle desktop or the\n   wrong surface, the capture is bad: tell the user, offer a redo, and — if they\n   decline — delete the recording. Do not proceed to transcription on a bad\n   capture.\n\n4. **Transcribe.** Run:\n\n   ```bash\n   python3 \"{baseDir}/scripts/frames.py\" \"<output.mp4>\"\n   ```\n\n   It extracts evenly spaced frames (and splits the video losslessly if it\n   exceeds ~12MB so each part stays under attachment limits) and prints the\n   frame/part paths. Use your own vision to analyze them and produce a\n   structured play-by-play:\n\n   - Starting state (page/app open)\n   - Every meaningful action in order (clicks, typing, navigation, URL changes,\n     menus, scrolling)\n   - Ending state\n   - Approximate timing\n   - Exact non-secret text typed — **NEVER** transcribe passwords, one-time\n     codes, API keys, financial account numbers, or private personal details;\n     use placeholders\n\n   If you have no vision capability, ask the user for a written step list\n   instead.\n\n   **Narration (only if `--with-audio` was used).** Run:\n\n   ```bash\n   python3 \"{baseDir}/scripts/transcribe.py\" \"<output.mp4>\"\n   ```\n\n   If Whisper is installed (`pip install openai-whisper`) it prints a\n   `TRANSCRIPT_START … TRANSCRIPT_END` block; if not, it prints\n   `WHISPER_MISSING` with install guidance. Merge the narration into the\n   play-by-play: trust narration for **why/intent** and frames for **what\n   happened**, and line up utterances with their timestamps. Redact any secret\n   spoken aloud (passwords, OTPs, keys) — use placeholders. If Whisper is\n   missing, ask the user for a written narration instead.\n\n5. **Optional browser cross-check.** If the user consents and a Chrome/Chromium\n   DevTools endpoint is reachable (`HTTP GET http://127.0.0.1:9222/json/list`),\n   copy its `History` sqlite read-only to corroborate visited URLs. Trust\n   history for URLs, frames for in-page actions. This reads browser history —\n   keep it optional and consent-gated.\n\n6. **Decide the skill.** Identify the goal, the steps, and which demonstrated\n   values are INPUTS (`{item}`, recipient, date, account) versus fixed\n   constants. If ambiguity would materially change the skill, ask the user\n   concise questions and wait for answers.\n\n7. **Write the skill.** Create\n   `~/.openclaw/workspace/skills/<derived-slug>/SKILL.md` with:\n\n   - frontmatter: `name` (lowercase-hyphen, ≤64 chars), `description` (one line,\n     <160 chars)\n   - body: the generic, reusable, parameterized recipe — signed-in browser where\n     needed, stable targets (URLs, labeled buttons/fields, not coordinates),\n     prefer a connector/MCP tool over UI replay when one exists, consequential\n     steps (orders, messages, payments, deletes, production changes) marked\n     **confirm with the user first**, no embedded credentials (\"assumes signed\n     in to X\")\n   - **if narration was captured** (step 4), add a `## Narration script` section\n     to the body: the spoken cues from the demo, parameterized with\n     `{placeholders}` for inputs, as a concise numbered checklist. On each rerun\n     the skill presents these cues to the user so they can repeat (or adapt) the\n     same intent. Keep cues short; redact any spoken secrets (placeholders only).\n\n   See `{baseDir}/references/skill-schema.md` for the exact schema and\n   `{baseDir}/references/teach-principles.md` for the rules.\n\n8. **Clean up.** Delete `<output.mp4>` and every extracted frame/part file.\n\n9. **Report.** Short numbered learned steps, which values are inputs, key\n   assumptions, and the path to the written skill. Note whether a `## Narration\n   script` was embedded. Tell the user the skill is a **DRAFT** (add decision\n   rules, failure handling, and approval boundaries that may not be obvious from\n   one example; test on a safe example before scheduling). Offer a dry run.\n   **NEVER** run the learned skill unprompted.\n\n## Hard rules\n\n- Never transcribe or store secrets. If the demo was mostly entering\n  credentials, say so and do not create a skill.\n- Never embed credentials in the generated skill.\n- Never run destructive commands; never leave recordings on disk.\n\nFile v0.1.0:README.md\n\n# GrokBot-inspired TEACH as an OpenClaw Skill\n\n> Record a screen demonstration on your own machine and turn it into a reusable,\n> parameterized OpenClaw `SKILL.md` — no cloud computer required.\n\n## Why\n\nxAI's Grok Bot ships a **\"Teach a task\"** feature: you demonstrate a workflow on\nits persistent cloud computer, and it writes a reusable skill. This project\nreimplements that pipeline **natively in OpenClaw**, so capture, transcription,\nand skill authoring all happen locally. The output is a standard\n[AgentSkills](https://agentskills.io)-format `SKILL.md` you can install, version,\nand share.\n\n## What it does\n\n1. Records your screen (and optionally your narration) with `ffmpeg`.\n2. Sanity-checks the capture (idle / blank-surface detection).\n3. Transcribes the demo — vision over extracted frames, plus optional Whisper\n   narration.\n4. Cross-checks visited URLs against Chrome's history (optional, consent-gated).\n5. Writes a new, parameterized `SKILL.md` into your OpenClaw workspace.\n6. Cleans up the recording.\n\n## Install\n\n```bash\n# from this repo (replace the slug with your fork if you forked)\nopenclaw skills install git:aldow3n-a11y/grokbot-inspired-teach-as-openclaw-skill\n\n# or just copy the folder into your workspace skills root\n#   ~/.openclaw/workspace/skills/teach/\n```\n\nRequirements:\n\n- `ffmpeg` on `PATH` (records the screen).\n- `python3` for the helper scripts.\n- Optional: `openai-whisper` for narration transcription\n  (`pip install openai-whisper`). Without it, the skill falls back to a written\n  narration from you.\n\n## Use\n\n```\n/teach\n```\n\nThe skill will:\n\n- Ask what you are about to demonstrate (and whether to narrate).\n- Record (default ~10 min cap). Stop with Ctrl-C or let it hit the cap.\n- Sanity-check, then transcribe via vision (and Whisper if audio was captured).\n- Write a draft `SKILL.md` to `~/.openclaw/workspace/skills/<slug>/` and report.\n\nIt never runs the learned skill unprompted, and never embeds credentials.\n\n## Narration script\n\nIf you narrate the demo, the generated skill embeds a `## Narration script`\nsection — your spoken cues, parameterized with `{placeholders}` — so reruns\nprompt you with the same intent (or let you adapt it).\n\n## Files\n\n```\nteach/\n├── SKILL.md                      # the skill (orchestration instructions)\n├── scripts/\n│   ├── record.py                 # cross-platform ffmpeg recorder (opt-in audio)\n│   ├── frames.py                 # frame extractor + lossless splitter\n│   └── transcribe.py             # Whisper narration transcription\n├── references/\n│   ├── skill-schema.md           # OpenClaw SKILL.md schema cheat sheet\n│   └── teach-principles.md       # rules every generated skill follows\n├── README.md\n├── LICENSE\n└── .gitignore\n```\n\n## Teach principles\n\nEvery generated skill follows these rules:\n\n- **Sanity-check first** — drop a bad (idle/blank) capture before transcribing.\n- **Redact secrets** — never transcribe or store passwords, OTPs, keys, or\n  private details; use placeholders.\n- **Parameterize** — separate inputs (`{item}`, recipient, date) from constants.\n- **Prefer stable targets** — URLs and labeled buttons/fields, not coordinates.\n- **Prefer connectors/MCP over UI replay** when one covers a step.\n- **Confirm consequential steps** — orders, messages, payments, deletes,\n  production changes are marked \"confirm with the user first.\"\n- **No embedded credentials** — sign-in state lives in the browser profile.\n- **Ship as a draft** — add decision rules, failure handling, approval\n  boundaries; test on a safe example before scheduling.\n- **Clean up** — delete the recording; never leave media on disk.\n\n## How it maps to Grok Bot's Teach\n\n| Grok Bot Teach            | This OpenClaw `teach`                          |\n| ------------------------- | ---------------------------------------------- |\n| ffmpeg capture on cloud VM | `record.py` → `gdigrab` / `avfoundation` / `x11grab` |\n| `watchVideo` vision subagent | your agent's own vision over frames from `frames.py` |\n| sanity-check 20% / 70%   | `frames.py --check` (+ brightness-variance heuristic) |\n| `sand-workflow:*` store   | writes a real `SKILL.md` to your workspace      |\n| Auto Review / confirm     | generated skill marks consequential steps confirm-first |\n| credential redaction      | hardcoded: abort if the demo was mostly creds  |\n\n## License\n\nMIT No Attribution (MIT-0).\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn78egvrymnfb5bdv9d4297gp981fse9\",\n  \"slug\": \"grokbot-inspired-teach-as-openclaw-skill\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1786542807729\n}\n\nFile v0.1.0:references/skill-schema.md\n\n# OpenClaw SKILL.md schema (cheat sheet)\n\nOpenClaw skills are folders containing a `SKILL.md` file. OpenClaw follows the\n[AgentSkills](https://agentskills.io) spec. Use this when authoring a skill from\na Teach demonstration so the result loads and validates.\n\n## Minimal file\n\n```markdown\n---\nname: my-skill\ndescription: One-line summary shown to the agent and in discovery (<160 chars).\n---\n\n# Title\nMarkdown instructions telling the agent *what* to do.\n```\n\n## Required frontmatter\n\n| Field         | Rule                                              |\n| ------------- | ------------------------------------------------- |\n| `name`        | 1–64 chars, lowercase letters/digits/hyphens     |\n| `description` | One line, under 160 characters                   |\n\n## Optional frontmatter\n\n| Field                    | Default | Notes                                         |\n| ------------------------ | ------- | --------------------------------------------- |\n| `version`                | —       | Semver string                                 |\n| `homepage`               | —       | URL shown in Skills UI                        |\n| `user-invocable`         | `true`  | Expose as a slash command (`/<name>`)        |\n| `disable-model-invocation` | `false` | Keep instructions out of the system prompt   |\n| `command-dispatch`       | —       | Set `\"tool\"` to route slash cmd straight to a tool |\n| `command-tool`          | —       | Tool name when `command-dispatch: tool`       |\n| `command-arg-mode`       | `\"raw\"` | Arg forwarding for tool dispatch              |\n| `metadata.openclaw`      | —       | Gating/runtime metadata (see below)           |\n\n## Gating under `metadata.openclaw`\n\n| Key                | Type       | Meaning                                         |\n| ------------------ | ---------- | ----------------------------------------------- |\n| `requires.bins`    | `string[]` | All binaries must exist on `PATH`              |\n| `requires.anyBins` | `string[]` | At least one must exist on `PATH`              |\n| `requires.env`     | `string[]` | Each env var must be present                    |\n| `requires.config`  | `string[]` | Each `openclaw.json` path must be truthy        |\n| `primaryEnv`       | `string`   | Main credential env var                         |\n| `envVars`          | `array`    | `{name, required, description}` per var         |\n| `always`           | `boolean`  | Skip all gates, always include                  |\n| `skillKey`         | `string`   | Override the invocation key                     |\n| `emoji`            | `string`   | Display emoji                                    |\n| `homepage`         | `string`   | URL                                             |\n| `os`               | `string[]` | `[\"darwin\"]` / `[\"linux\"]` / `[\"win32\"]`         |\n| `install`          | `array`    | brew/node/go/uv/download dependency specs        |\n\n## Body rules\n\n- Instruct the model on **what** to do, not how to be an AI.\n- Reference in-skill files with `{baseDir}` (e.g. `{baseDir}/scripts/run.sh`).\n- Keep `description` short — it is injected into the system prompt per skill.\n- Prefer connectors/MCP tools over UI replay; mark consequential steps\n  confirm-first; never embed credentials.\n\n## Placement (load order, highest first)\n\n1. `<workspace>/skills` — workspace skills (Teach writes here)\n2. `<workspace>/.agents/skills` — project-agent skills\n3. `~/.agents/skills` — personal-agent skills\n4. `<state-dir>/skills` — managed/local\n5. bundled — shipped with install\n6. extra dirs / plugin skills\n\nInvoke with `/<name>` or reference with `$<name>` in a prompt.\n\n## Validate\n\n```bash\nskills-ref validate ./my-skill      # agentskills.io reference tool\nopenclaw skills list                 # confirm it loaded\n```\n\nFile v0.1.0:references/teach-principles.md\n\n# Teach principles (applied to every generated skill)\n\nThese rules are enforced by the `teach` skill when it turns a screen\ndemonstration into a new OpenClaw `SKILL.md`. They are derived from Grok Bot's\n\"Teach a task\" pipeline.\n\n1. **Sanity-check the capture first.** Extract one frame at ~20% and one at\n   ~70% of duration. If they show an idle desktop or the wrong surface, the\n   capture is bad — tell the user and offer a redo; do not transcribe.\n\n2. **Redact secrets.** Never transcribe passwords, one-time codes, API keys,\n   financial account numbers, or private personal details. Use placeholders in\n   any summary or skill body. If the demonstration was mostly entering\n   credentials, say so and **do not create a skill**.\n\n3. **Parameterize.** Separate INPUTS (search term, recipient, date, account)\n   from fixed constants. The generated skill uses `{placeholders}` for inputs.\n\n4. **Prefer stable targets.** Reference URLs, labeled buttons, and form fields\n   by name/aria, not screen coordinates.\n\n5. **Prefer connectors/MCP over UI replay.** When a connector or MCP tool covers\n   a step, use it. Use the browser only for steps nothing else supports.\n\n6. **Confirm consequential steps.** Mark orders, messages, payments, deletions,\n   and production changes as **confirm with the user first**.\n\n7. **No embedded credentials.** Sign-in state lives in the browser profile, so a\n   step needing login says \"assumes signed in to X\". Never store secrets in the\n   skill body.\n\n8. **The skill is a draft.** Tell the user to add decision rules, failure\n   handling, and approval boundaries that may not be obvious from one example,\n   and to test on a safe example before scheduling.\n\n9. **Clean up.** Delete the recording and all extracted frames/parts after the\n   skill is written. Never leave recordings on disk.\n\n## Narration (optional)\n\nNarration is captured only with explicit consent (`--with-audio`). It enriches\nthe play-by-play with intent but is never required. Whisper transcription is\nbest-effort: if it is not installed, fall back to a written narration from the\nuser. Spoken secrets are redacted exactly like typed ones — placeholders only.\n\nWhen authoring the skill, capture the spoken cues as a parameterized\n`## Narration script` section so reruns prompt the user with the same intent.\nReplace concrete values (names, dates, account IDs) with `{placeholders}`; keep\neach cue to one line. The generated skill presents this script to the user on\nevery run.\n\nFile v0.1.0:skill-card.md\n\n## Description:\n\nRecord a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[aldow3n-a11y](https://clawhub.ai/user/aldow3n-a11y)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and OpenClaw users use this skill to record a local workflow demonstration and convert it into a draft, reusable AgentSkills-compatible SKILL.md with parameterized steps and approval boundaries.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Screen recordings, optional microphone narration, extracted frames, and transcripts may capture sensitive information.\n\nMitigation: Use only on workflows that avoid secrets and private data, keep audio opt-in, redact sensitive content, and delete generated media after each run.\n\nRisk: Narrated runs can leave temporary teach_audio_* and teach_whisper_* artifacts behind.\n\nMitigation: Manually inspect and delete matching files under /tmp after narrated runs until cleanup behavior is fixed.\n\nRisk: The optional browser-history cross-check can expose browsing history.\n\nMitigation: Use the history check only with explicit consent and only when URL corroboration is needed.\n\nRisk: Generated skills are drafts that may miss decision rules, failure handling, or approval boundaries from a single demonstration.\n\nMitigation: Review and test each generated skill on a safe example before reuse or scheduling.\n\n## Reference(s):\n\n- [ClawHub release page](https://clawhub.ai/aldow3n-a11y/skills/grokbot-inspired-teach-as-openclaw-skill)\n- [Server-resolved GitHub provenance](https://github.com/aldow3n-a11y/grokbot-inspired-teach-as-openclaw-skill)\n- [AgentSkills specification](https://agentskills.io)\n- [OpenClaw skill schema](references/skill-schema.md)\n- [Teach principles](references/teach-principles.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown instructions with inline shell commands and generated SKILL.md content]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces a draft skill file and may produce temporary local recordings, frames, audio, or transcripts during execution.]\n\n## Skill Version(s):\n\n0.1.0 (source: ClawHub release metadata); artifact frontmatter reports 1.0.0\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.1.0:LICENSE\n\nMIT No Attribution (MIT-0)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","readmeExcerpt":"Skill: Openclaw_Teach Owner: aldow3n-a11y Summary: Record a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md. Tags: latest:0.1.0 Version history: v0.1.0 | 2026-08-12T13:53:27.729Z | auto - Initial release of the \"teach\" skill: record a screen demonstration and generate a reusable, parameterized OpenClaw skill file from it. - Handles both video-only and optional narrated demonstrations","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 \"{baseDir}/scripts/frames.py\" \"<output.mp4>\" --check"},{"language":"bash","snippet":"python3 \"{baseDir}/scripts/frames.py\" \"<output.mp4>\""},{"language":"bash","snippet":"python3 \"{baseDir}/scripts/transcribe.py\" \"<output.mp4>\""},{"language":"bash","snippet":"# from this repo (replace the slug with your fork if you forked)\nopenclaw skills install git:aldow3n-a11y/grokbot-inspired-teach-as-openclaw-skill\n\n# or just copy the folder into your workspace skills root\n#   ~/.openclaw/workspace/skills/teach/"},{"language":"text","snippet":"/teach"},{"language":"text","snippet":"teach/\n├── SKILL.md                      # the skill (orchestration instructions)\n├── scripts/\n│   ├── record.py                 # cross-platform ffmpeg recorder (opt-in audio)\n│   ├── frames.py                 # frame extractor + lossless splitter\n│   └── transcribe.py             # Whisper narration transcription\n├── references/\n│   ├── skill-schema.md           # OpenClaw SKILL.md schema cheat sheet\n│   └── teach-principles.md       # rules every generated skill follows\n├── README.md\n├── LICENSE\n└── .gitignore"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: teach\ndescription: Record a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md.\nversion: 1.0.0\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ffmpeg\n    anyBins:\n      - python3\n      - python\n    emoji: \"\\U0001F3A5\"\n---\n\n# Teach — demonstrate a workflow, get a reusable skill\n\nUse this skill when the user wants to capture a screen demonstration and turn it\ninto a new OpenClaw skill. Everything runs locally on the user's machine; no\ncloud computer is involved.\n\n## Steps\n\n1. **Agree the goal.** Ask the user, in one sentence, what result they are about\n   to demonstrate. Confirm before recording.\n\n2. **Record.** First ask the user whether they want to **narrate** the demo\n   (speak the intent out loud as they go). Narration is optional and\n   consent-gated — never record microphone audio without an explicit yes.\n\n   - **No narration:** `python3 \"{baseDir}/scripts/record.py\" \"<output.mp4>\"`\n   - **With narration:** add `--with-audio`\n     (`--audio-device \"Name\"` only if auto-detect picks the wrong mic).\n\n   Default cap is 600s (10 min), matching Grok Bot's Teach limit. Pass a\n   `max_seconds` arg to change the cap (e.g. `300`). The script records the\n   primary display cross-platform (Windows `gdigrab`, macOS `avfoundation`,\n   Linux `x11grab`) and, with `--with-audio`, the microphone (Windows `dshow`,\n   macOS `avfoundation`, Linux `pulse`). It prints the ffmpeg PID, an `AUDIO\n   on/off` flag, and the final duration. It stops on Ctrl-C or when the cap is\n   reached. Tell the user to perform the workflow once, then stop the recording\n   (Ctrl-C) or let it hit the cap.\n\n3. **Sanity-check.** Run:\n\n   ```bash\n   python3 \"{baseDir}/scripts/frames.py\" \"<output.mp4>\" --check\n   ```\n\n   This writes two frames (≈20% and ≈70% of duration) and reports their paths\n   and the duration. Look at both frames. If they show an idle desktop or the\n   wrong surface, the capture is bad: tell the user, offer a redo, and — if they\n   decline — delete the recording. Do not proceed to transcription on a bad\n   capture.\n\n4. **Transcribe.** Run:\n\n   ```bash\n   python3 \"{baseDir}/scripts/frames.py\" \"<output.mp4>\"\n   ```\n\n   It extracts evenly spaced frames (and splits the video losslessly if it\n   exceeds ~12MB so each part stays under attachment limits) and prints the\n   frame/part paths. Use your own vision to analyze them and produce a\n   structured play-by-play:\n\n   - Starting state (page/app open)\n   - Every meaningful action in order (clicks, typing, navigation, URL changes,\n     menus, scrolling)\n   - Ending state\n   - Approximate timing\n   - Exact non-secret text typed — **NEVER** transcribe passwords, one-time\n     codes, API keys, financial account numbers, or private personal details;\n     use placeholders\n\n   If you have no vision capability, ask the user for a written step list\n   instead.\n\n   **Narration (only if `--with-audio` was used).** Run:\n\n   ```bash\n   python3 \"{baseDir}/scripts/transcribe.py\" \"<output."},{"path":"README.md","content":"# GrokBot-inspired TEACH as an OpenClaw Skill\n\n> Record a screen demonstration on your own machine and turn it into a reusable,\n> parameterized OpenClaw `SKILL.md` — no cloud computer required.\n\n## Why\n\nxAI's Grok Bot ships a **\"Teach a task\"** feature: you demonstrate a workflow on\nits persistent cloud computer, and it writes a reusable skill. This project\nreimplements that pipeline **natively in OpenClaw**, so capture, transcription,\nand skill authoring all happen locally. The output is a standard\n[AgentSkills](https://agentskills.io)-format `SKILL.md` you can install, version,\nand share.\n\n## What it does\n\n1. Records your screen (and optionally your narration) with `ffmpeg`.\n2. Sanity-checks the capture (idle / blank-surface detection).\n3. Transcribes the demo — vision over extracted frames, plus optional Whisper\n   narration.\n4. Cross-checks visited URLs against Chrome's history (optional, consent-gated).\n5. Writes a new, parameterized `SKILL.md` into your OpenClaw workspace.\n6. Cleans up the recording.\n\n## Install\n\n```bash\n# from this repo (replace the slug with your fork if you forked)\nopenclaw skills install git:aldow3n-a11y/grokbot-inspired-teach-as-openclaw-skill\n\n# or just copy the folder into your workspace skills root\n#   ~/.openclaw/workspace/skills/teach/\n```\n\nRequirements:\n\n- `ffmpeg` on `PATH` (records the screen).\n- `python3` for the helper scripts.\n- Optional: `openai-whisper` for narration transcription\n  (`pip install openai-whisper`). Without it, the skill falls back to a written\n  narration from you.\n\n## Use\n\n```\n/teach\n```\n\nThe skill will:\n\n- Ask what you are about to demonstrate (and whether to narrate).\n- Record (default ~10 min cap). Stop with Ctrl-C or let it hit the cap.\n- Sanity-check, then transcribe via vision (and Whisper if audio was captured).\n- Write a draft `SKILL.md` to `~/.openclaw/workspace/skills/<slug>/` and report.\n\nIt never runs the learned skill unprompted, and never embeds credentials.\n\n## Narration script\n\nIf you narrate the demo, the generated skill embeds a `## Narration script`\nsection — your spoken cues, parameterized with `{placeholders}` — so reruns\nprompt you with the same intent (or let you adapt it).\n\n## Files\n\n```\nteach/\n├── SKILL.md                      # the skill (orchestration instructions)\n├── scripts/\n│   ├── record.py                 # cross-platform ffmpeg recorder (opt-in audio)\n│   ├── frames.py                 # frame extractor + lossless splitter\n│   └── transcribe.py             # Whisper narration transcription\n├── references/\n│   ├── skill-schema.md           # OpenClaw SKILL.md schema cheat sheet\n│   └── teach-principles.md       # rules every generated skill follows\n├── README.md\n├── LICENSE\n└── .gitignore\n```\n\n## Teach principles\n\nEvery generated skill follows these rules:\n\n- **Sanity-check first** — drop a bad (idle/blank) capture before transcribing.\n- **Redact secrets** — never transcribe or store passwords, OTPs, keys, or\n  private details; use placeholders.\n- **Paramete"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn78egvrymnfb5bdv9d4297gp981fse9\",\n  \"slug\": \"grokbot-inspired-teach-as-openclaw-skill\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1786542807729\n}"},{"path":"references/skill-schema.md","content":"# OpenClaw SKILL.md schema (cheat sheet)\n\nOpenClaw skills are folders containing a `SKILL.md` file. OpenClaw follows the\n[AgentSkills](https://agentskills.io) spec. Use this when authoring a skill from\na Teach demonstration so the result loads and validates.\n\n## Minimal file\n\n```markdown\n---\nname: my-skill\ndescription: One-line summary shown to the agent and in discovery (<160 chars).\n---\n\n# Title\nMarkdown instructions telling the agent *what* to do.\n```\n\n## Required frontmatter\n\n| Field         | Rule                                              |\n| ------------- | ------------------------------------------------- |\n| `name`        | 1–64 chars, lowercase letters/digits/hyphens     |\n| `description` | One line, under 160 characters                   |\n\n## Optional frontmatter\n\n| Field                    | Default | Notes                                         |\n| ------------------------ | ------- | --------------------------------------------- |\n| `version`                | —       | Semver string                                 |\n| `homepage`               | —       | URL shown in Skills UI                        |\n| `user-invocable`         | `true`  | Expose as a slash command (`/<name>`)        |\n| `disable-model-invocation` | `false` | Keep instructions out of the system prompt   |\n| `command-dispatch`       | —       | Set `\"tool\"` to route slash cmd straight to a tool |\n| `command-tool`          | —       | Tool name when `command-dispatch: tool`       |\n| `command-arg-mode`       | `\"raw\"` | Arg forwarding for tool dispatch              |\n| `metadata.openclaw`      | —       | Gating/runtime metadata (see below)           |\n\n## Gating under `metadata.openclaw`\n\n| Key                | Type       | Meaning                                         |\n| ------------------ | ---------- | ----------------------------------------------- |\n| `requires.bins`    | `string[]` | All binaries must exist on `PATH`              |\n| `requires.anyBins` | `string[]` | At least one must exist on `PATH`              |\n| `requires.env`     | `string[]` | Each env var must be present                    |\n| `requires.config`  | `string[]` | Each `openclaw.json` path must be truthy        |\n| `primaryEnv`       | `string`   | Main credential env var                         |\n| `envVars`          | `array`    | `{name, required, description}` per var         |\n| `always`           | `boolean`  | Skip all gates, always include                  |\n| `skillKey`         | `string`   | Override the invocation key                     |\n| `emoji`            | `string`   | Display emoji                                    |\n| `homepage`         | `string`   | URL                                             |\n| `os`               | `string[]` | `[\"darwin\"]` / `[\"linux\"]` / `[\"win32\"]`         |\n| `install`          | `array`    | brew/node/go/uv/download dependency specs        |\n\n## Body rules\n\n- Instruct the model on **what** to do, not how to be an AI.\n- Reference in-sk"},{"path":"references/teach-principles.md","content":"# Teach principles (applied to every generated skill)\n\nThese rules are enforced by the `teach` skill when it turns a screen\ndemonstration into a new OpenClaw `SKILL.md`. They are derived from Grok Bot's\n\"Teach a task\" pipeline.\n\n1. **Sanity-check the capture first.** Extract one frame at ~20% and one at\n   ~70% of duration. If they show an idle desktop or the wrong surface, the\n   capture is bad — tell the user and offer a redo; do not transcribe.\n\n2. **Redact secrets.** Never transcribe passwords, one-time codes, API keys,\n   financial account numbers, or private personal details. Use placeholders in\n   any summary or skill body. If the demonstration was mostly entering\n   credentials, say so and **do not create a skill**.\n\n3. **Parameterize.** Separate INPUTS (search term, recipient, date, account)\n   from fixed constants. The generated skill uses `{placeholders}` for inputs.\n\n4. **Prefer stable targets.** Reference URLs, labeled buttons, and form fields\n   by name/aria, not screen coordinates.\n\n5. **Prefer connectors/MCP over UI replay.** When a connector or MCP tool covers\n   a step, use it. Use the browser only for steps nothing else supports.\n\n6. **Confirm consequential steps.** Mark orders, messages, payments, deletions,\n   and production changes as **confirm with the user first**.\n\n7. **No embedded credentials.** Sign-in state lives in the browser profile, so a\n   step needing login says \"assumes signed in to X\". Never store secrets in the\n   skill body.\n\n8. **The skill is a draft.** Tell the user to add decision rules, failure\n   handling, and approval boundaries that may not be obvious from one example,\n   and to test on a safe example before scheduling.\n\n9. **Clean up.** Delete the recording and all extracted frames/parts after the\n   skill is written. Never leave recordings on disk.\n\n## Narration (optional)\n\nNarration is captured only with explicit consent (`--with-audio`). It enriches\nthe play-by-play with intent but is never required. Whisper transcription is\nbest-effort: if it is not installed, fall back to a written narration from the\nuser. Spoken secrets are redacted exactly like typed ones — placeholders only.\n\nWhen authoring the skill, capture the spoken cues as a parameterized\n`## Narration script` section so reruns prompt the user with the same intent.\nReplace concrete values (names, dates, account IDs) with `{placeholders}`; keep\neach cue to one line. The generated skill presents this script to the user on\nevery run."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Record a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md. Skill: Openclaw_Teach Owner: aldow3n-a11y Summary: Record a screen demonstration and turn it into a reusable, parameterized OpenClaw SKILL.md. Tags: latest:0.1.0 Version history: v0.1.0 | 2026-08-12T13:53:27.729Z | auto - Initial release of the \"teach\" skill: record a screen demonstration and generate a reusable, parameterized OpenClaw skill file from it. - Handles both video-only and optional narrated demonstrations","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1539,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T03:44:30.697Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T03:44:30.697Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:57:12.281Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}