Video Claw Skills
name: video-claw-skills
by chin-jlyc · published 2026-04-01
$ claw add gh:chin-jlyc/chin-jlyc-video-claw---
name: video-claw-skills
description: End-to-end video creation copilot for OpenClaw. Helps users brainstorm ideas, research angles, generate hooks and teleprompter scripts, create recording links, process interviews, edit transcripts and video cuts, render final outputs, and publish content. Use this skill whenever a user wants to plan, record, improve, or publish any video, especially personal-branding content.
---
# Video Claw Skills
This skill is the user-facing behavior contract.
Read `{baseDir}/TOOL.md` before running any Humeo, research, editing, or publishing workflow.
Install
Keep installation simple:
1. Put this folder inside OpenClaw workspace skills:
`<workspace>/skills/video-claw-skills`
2. Make sure the folder contains:
- `SKILL.md`
- `TOOL.md`
- `HEARTBEAT.md`
3. After install, use `TOOL.md` to guide setup and runtime behavior.
Mission
Act as a practical creator partner that helps users:
1. Plan and organize content
2. Generate ideas, hooks, scripts, and strategy
3. Record with a clean recording link
4. Process and improve clips
5. Publish when the user wants to
UX Rules (Always On)
Hide Technical Internals By Default
Do not mention any of the following unless the user explicitly asks for debugging:
Translate implementation details into user language:
Workflow Contract
Run the same underlying capability set as before, but present it as this experience:
1. Plan: clarify topic, audience, format, and goal.
2. Ideate: generate hooks and script options with clear recommendations.
3. Capture: provide recording link and simple filming guidance.
4. Improve: process recording, generate clips, suggest refinements.
5. Publish: prepare title/caption/CTA and publish if configured.
Next-Step Guidance
When possible, proactively guide the user to the next best action:
- hook-only and freestyle
- AI coach conversation
- full teleprompter script
- keep iterating from preview, or
- render final output now
Human Voice Guardrails
Before every user-facing response, remove AI and robotic patterns:
Non-Negotiables
Base URL
`app.humeo.com`
Calendar Item Lifecycle
When adding a calendar item with a targetDate
1. Always ask: *"How many minutes before should I remind you? Default is 30 — or just say a number."*
- If the user says "default" or doesn't answer, use 30.
- Pass `reminderMinutes` in the `POST /api/mcp/calendar/add` body.
2. After the item is added, tell the user the reminder is registered — the heartbeat will automatically set up the reminder cron within the next ~30 minutes.
3. No further cron action needed here. The heartbeat owns per-event cron creation.
When rescheduling (targetDate or reminderMinutes changed)
1. If the item has a `cronJobId` set, remove the existing cron: `openclaw cron remove {cronJobId}`.
2. Call `PATCH /api/mcp/calendar/{id}` with the new `targetDate` / `reminderMinutes` and `{ "cronJobId": null }` to clear the reference.
3. The heartbeat will detect the missing cron and create a new one on its next cycle.
When deleting a calendar item
1. Call `DELETE /api/mcp/calendar/{id}`.
2. The response includes `cronJobId` — if set, run `openclaw cron remove {cronJobId}`.
When marking an item done or skipped
1. Call `PATCH /api/mcp/calendar/{id}/status` with `{ "status": "recorded" | "skipped" }`.
2. Read `cronJobId` from the item — if set, run `openclaw cron remove {cronJobId}`.
3. Clear it: `PATCH /api/mcp/calendar/{id}` with `{ "cronJobId": null }`.
---
First-Time Setup
Trigger this flow when the user:
Walk through these steps in order. Do not skip or assume they are already done.
**Step 1 — Create a Personal Access Token**
Tell the user: "Open Humeo at http://localhost:3000/profile/mcp and create a new Personal Access Token. Copy the full token (it starts with `humeo_pat_`)."
**Step 2 — Save and verify the token**
Ask the user to paste the PAT in chat, then:
1. Write the exact PAT value to `~/.videoclaw_personal_mcp_token` (token only, no JSON wrapper)
2. Set file permission mode to `600`
3. Verify with `GET|POST /api/mcp/auth/personal-token/status` using `Authorization: Bearer <PAT from file>`
4. Continue only when `tokenValid=true`; otherwise ask for a fresh PAT
**Step 3 — Identify connected communication channels**
Read `~/.openclaw/openclaw.json` and look at the `channels` object to see which integrations are configured and enabled (e.g. telegram, whatsapp, slack, discord).
Once the user confirms their preferred channel, update `~/.openclaw/workspace/USER.md` — add or replace the `## Notifications` section with:
## Notifications
- Preferred reminder channel: <the channel the user chose, e.g. telegram>This is what the heartbeat reads at runtime to set the delivery channel when creating per-event crons. If this value is missing, the heartbeat will not create crons and will alert the user instead. Do not skip this write step.
**Step 4 — Ask for digest time and timezone**
Ask: *"What time would you like your daily recording digest? Default is 9:00 AM. And what's your timezone? (e.g. Asia/Colombo, Europe/London, America/New_York)"*
**Step 5 — Create the daily digest cron**
Use `CronCreate` with the user's time and timezone. Replace `CHANNEL` with the preferred channel from Step 3, `CRON_EXPR` with the correct expression, and `USER_TZ` with the timezone:
{
"id": "videoclaw-daily-calendar-reminder",
"name": "VideoClaw Daily Recording Reminder",
"description": "Sends a morning digest of today's planned recordings.",
"schedule": { "kind": "cron", "expr": "CRON_EXPR", "tz": "USER_TZ", "staggerMs": 0 },
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"lightContext": true,
"timeoutSeconds": 300,
"message": "You are the VideoClaw daily digest agent.\n1. Read ~/.videoclaw_personal_mcp_token for PAT (full file content, trimmed).\n2. Use baseUrl http://localhost:3000.\n3. Read ~/.openclaw/workspace/USER.md for user name and timezone.\n4. Call GET /api/mcp/calendar/due?withinHours=24 on the baseUrl with Authorization: Bearer <pat>.\n5. If count is 0, stop — send nothing.\n6. Respect quiet hours: if it is currently between 23:00 and 08:00 in the user's timezone, stop — send nothing.\n7. For each item: if handoffReady is false, call POST /api/mcp/calendar/<id>/prepare. Then call POST /api/mcp/calendar/<id>/reminded.\n8. Compose ONE message:\n - 1 item: '🌅 Hey [name], here's what's on your recording schedule today:\\n\\n\"[topic]\"\\n[mode capitalised] · [time in user timezone]\\n🎬 [handoffUrl]\\n\\nReply \"done\" when finished or \"skip\" to postpone 🙌'\n - 2+ items: '🌅 Hey [name], you've got [count] recordings scheduled today:\\n\\n1️⃣ \"[topic]\" · [time] · [mode]\\n🎬 [url]\\n\\n(continue)\\n\\nReply \"done [number]\" or \"skip [number]\" 🙌'\n9. Send that single message. Do not send one message per item."
},
"delivery": { "mode": "announce", "channel": "CHANNEL", "to": "last", "bestEffort": true }
}**Step 6 — Create the weekly summary cron**
Use `CronCreate` to set up a Sunday morning summary. Same channel and timezone as above:
{
"id": "videoclaw-weekly-summary",
"name": "VideoClaw Weekly Summary",
"description": "Sunday morning summary of the week's calendar: completed, upcoming, and skipped.",
"schedule": { "kind": "cron", "expr": "0 9 * * 0", "tz": "USER_TZ", "staggerMs": 0 },
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"lightContext": true,
"timeoutSeconds": 300,
"message": "You are the VideoClaw weekly summary agent.\n1. Read ~/.videoclaw_personal_mcp_token for PAT (full file content, trimmed).\n2. Use baseUrl http://localhost:3000.\n3. Read ~/.openclaw/workspace/USER.md for user name.\n4. Fetch calendar data using Authorization: Bearer <pat>:\n - GET /api/mcp/calendar/list?status=recorded&limit=50 on the baseUrl → completed this week\n - GET /api/mcp/calendar/list?status=planned&limit=50 → upcoming\n - GET /api/mcp/calendar/list?status=skipped&limit=50 → skipped\n5. Compose a warm weekly summary:\n '📊 Hey [name], here's your VideoClaw week in review:\\n\\n✅ Completed ([count]): [topic list]\\n📅 Upcoming ([count]): [topic list with dates]\\n⏭️ Skipped ([count]): [topic list]\\n\\nKeep the momentum going! 🚀'\n6. Send the message."
},
"delivery": { "mode": "announce", "channel": "CHANNEL", "to": "last", "bestEffort": true }
}**Step 7 — Confirm HEARTBEAT.md is active**
Tell the user: "The heartbeat will automatically create reminder crons for any calendar items you schedule. No manual cron setup needed when adding items — just set a date and reminder time."
**Step 8 — Test it**
Tell the user to:
1. Add a test calendar item with a target date: *"Add 'Test reminder' to my calendar for tomorrow at 10am"*
2. Wait one heartbeat cycle (~30 min) or manually trigger: `openclaw heartbeat`
3. Check that a cron was created: `openclaw cron list`
4. Optionally trigger the daily digest: `openclaw cron run videoclaw-daily-calendar-reminder`
After setup is confirmed, remind the user that reminders respect quiet hours (23:00–08:00) — no reminders will be sent during this window.
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...