Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Lesson Editor

v1.0.0

edit raw lesson footage into polished lesson videos with this skill. Works with MP4, MOV, AVI, WebM files up to 500MB. educators and course creators use it f...

0· 52·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name/description (AI lesson video editing) lines up with required credential NEMO_TOKEN and calls to nemovideo.ai, which is consistent with a cloud video-editing backend. However, the SKILL.md frontmatter includes a config path (~/.config/nemovideo/) while the registry metadata reported 'Required config paths: none' — this mismatch is unexplained.
Instruction Scope
The SKILL.md instructs the agent to: read NEMO_TOKEN env var (if present), or generate an anonymous token via a POST to the vendor API; create/persist a session_id; upload user video files; and poll for render status. Those actions are within the expected scope for a cloud editor. It does not ask the agent to read unrelated system files or extra credentials, but it does require the agent to include custom attribution headers and to persist session state (the instructions say 'Save session_id'), and the frontmatter indicates an application config path which could imply writing/reading ~/.config/nemovideo/ — the instructions do not make clear what is stored there.
Install Mechanism
No install spec and no code files — instruction-only skill. This is the lowest install risk; nothing is downloaded or written by an installer step according to the registry.
!
Credentials
The only declared required environment variable is NEMO_TOKEN (primary credential), which is proportional for a cloud service. Concern arises because SKILL.md frontmatter references a config path (~/.config/nemovideo/) that may be used to store tokens or session state; the registry metadata earlier listed no config paths — this discrepancy is unexplained and could mean the skill expects filesystem access beyond what was declared.
Persistence & Privilege
always:false (normal). The skill instructs saving session_id and may persist tokens/session data for later calls; frontmatter hints at a config directory. There is no explicit instruction to modify other skills or global agent settings. Autonomous invocation is allowed (default) but not, by itself, a red flag.
What to consider before installing
This skill appears to implement a cloud video-editing workflow that uploads your footage to mega-api-prod.nemovideo.ai and requires an API token (NEMO_TOKEN). Before installing, consider: 1) Verify the provider: the skill has no homepage/source listed — ask the publisher for the service's privacy/data-retention policy and confirm you trust nemovideo.ai. 2) Token scope: only provide a token scoped to this service (don’t reuse high-privilege credentials). The skill can also generate an anonymous token via the API — you may prefer that flow. 3) Files and PII: videos will be uploaded to an external service; avoid sending sensitive personal data unless you accept that external storage/processing. 4) Config path mismatch: the SKILL.md references ~/.config/nemovideo/ but the registry metadata did not — ask whether the skill will read/write that directory and what it stores there (tokens, session IDs, logs). 5) Headers/fingerprinting: the skill requires custom attribution headers; these will reveal usage of this skill to the backend. If you need stricter guarantees, request source code or a homepage, or test with non-sensitive sample footage and a throwaway token first.

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

Runtime requirements

🎓 Clawdis
EnvNEMO_TOKEN
Primary envNEMO_TOKEN
latestvk9723h3fjr4dtq5bqyc8g3fgt18563bc
52downloads
0stars
1versions
Updated 1d ago
v1.0.0
MIT-0

Getting Started

Share your raw lesson footage and I'll get started on AI lesson editing. Or just tell me what you're thinking.

Try saying:

  • "edit my raw lesson footage"
  • "export 1080p MP4"
  • "cut the pauses, add chapter titles,"

Automatic Setup

On first interaction, connect to the processing API before doing anything else. Show a brief status like "Setting things up...".

Token: If NEMO_TOKEN environment variable is already set, use it and skip to Session below.

Free token: Generate a UUID as client identifier, then POST to https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with header X-Client-Id: <uuid>. The response field data.token becomes your NEMO_TOKEN (100 credits, 7-day expiry).

Session: POST to https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent with Bearer auth and body {"task_name":"project"}. Save session_id from the response.

Confirm to the user you're connected and ready. Don't print tokens or raw JSON.

Lesson Editor — Edit and Export Lesson Videos

This tool takes your raw lesson footage and runs AI lesson editing through a cloud rendering pipeline. You upload, describe what you want, and download the result.

Say you have a 12-minute screen recording of a coding tutorial and want to cut the pauses, add chapter titles, and export a clean lesson video — the backend processes it in about 1-2 minutes and hands you a 1080p MP4.

Tip: splitting a long lesson into chapters before uploading speeds up processing significantly.

Matching Input to Actions

User prompts referencing lesson editor, aspect ratio, text overlays, or audio tracks get routed to the corresponding action via keyword and intent classification.

User says...ActionSkip SSE?
"export" / "导出" / "download" / "send me the video"→ §3.5 Export
"credits" / "积分" / "balance" / "余额"→ §3.3 Credits
"status" / "状态" / "show tracks"→ §3.4 State
"upload" / "上传" / user sends file→ §3.2 Upload
Everything else (generate, edit, add BGM…)→ §3.1 SSE

Cloud Render Pipeline Details

Each export job queues on a cloud GPU node that composites video layers, applies platform-spec compression (H.264, up to 1080x1920), and returns a download URL within 30-90 seconds. The session token carries render job IDs, so closing the tab before completion orphans the job.

All calls go to https://mega-api-prod.nemovideo.ai. The main endpoints:

  1. SessionPOST /api/tasks/me/with-session/nemo_agent with {"task_name":"project","language":"<lang>"}. Gives you a session_id.
  2. Chat (SSE)POST /run_sse with session_id and your message in new_message.parts[0].text. Set Accept: text/event-stream. Up to 15 min.
  3. UploadPOST /api/upload-video/nemo_agent/me/<sid> — multipart file or JSON with URLs.
  4. CreditsGET /api/credits/balance/simple — returns available, frozen, total.
  5. StateGET /api/state/nemo_agent/me/<sid>/latest — current draft and media info.
  6. ExportPOST /api/render/proxy/lambda with render ID and draft JSON. Poll GET /api/render/proxy/lambda/<id> every 30s for completed status and download URL.

Formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.

Three attribution headers are required on every request and must match this file's frontmatter:

HeaderValue
X-Skill-Sourcelesson-editor
X-Skill-Versionfrontmatter version
X-Skill-Platformauto-detect: clawhub / cursor / unknown from install path

Every API call needs Authorization: Bearer <NEMO_TOKEN> plus the three attribution headers above. If any header is missing, exports return 402.

Draft field mapping: t=tracks, tt=track type (0=video, 1=audio, 7=text), sg=segments, d=duration(ms), m=metadata.

Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)

Backend Response Translation

The backend assumes a GUI exists. Translate these into API actions:

Backend saysYou do
"click [button]" / "点击"Execute via API
"open [panel]" / "打开"Query session state
"drag/drop" / "拖拽"Send edit via SSE
"preview in timeline"Show track summary
"Export button" / "导出"Execute export workflow

Reading the SSE Stream

Text events go straight to the user (after GUI translation). Tool calls stay internal. Heartbeats and empty data: lines mean the backend is still working — show "⏳ Still working..." every 2 minutes.

About 30% of edit operations close the stream without any text. When that happens, poll /api/state to confirm the timeline changed, then tell the user what was updated.

Error Handling

CodeMeaningAction
0SuccessContinue
1001Bad/expired tokenRe-auth via anonymous-token (tokens expire after 7 days)
1002Session not foundNew session §3.0
2001No creditsAnonymous: show registration URL with ?bind=<id> (get <id> from create-session or state response when needed). Registered: "Top up credits in your account"
4001Unsupported fileShow supported formats
4002File too largeSuggest compress/trim
400Missing X-Client-IdGenerate Client-Id and retry (see §1)
402Free plan export blockedSubscription tier issue, NOT credits. "Register or upgrade your plan to unlock export."
429Rate limit (1 token/client/7 days)Retry in 30s once

Common Workflows

Quick edit: Upload → "cut the pauses, add chapter titles, and export a clean lesson video" → Download MP4. Takes 1-2 minutes for a 30-second clip.

Batch style: Upload multiple files in one session. Process them one by one with different instructions. Each gets its own render.

Iterative: Start with a rough cut, preview the result, then refine. The session keeps your timeline state so you can keep tweaking.

Tips and Tricks

The backend processes faster when you're specific. Instead of "make it look better", try "cut the pauses, add chapter titles, and export a clean lesson video" — concrete instructions get better results.

Max file size is 500MB. Stick to MP4, MOV, AVI, WebM for the smoothest experience.

Export as MP4 for widest compatibility across LMS platforms like Teachable and Udemy.

Comments

Loading comments...