Skill flagged — suspicious patterns detected

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

Sora Video Generation

v1.0.0

generate text prompts into AI generated videos with this sora-video-generation skill. Works with TXT, PNG, JPG, MP4 files up to 200MB. content creators use i...

0· 75·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for whitejohnk-26/sora-video-generation.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Sora Video Generation" (whitejohnk-26/sora-video-generation) from ClawHub.
Skill page: https://clawhub.ai/whitejohnk-26/sora-video-generation
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: NEMO_TOKEN
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 sora-video-generation

ClawHub CLI

Package manager switcher

npx clawhub@latest install sora-video-generation
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description (generate videos from text/uploads) aligns with the actions described in SKILL.md. Requesting a single service credential (NEMO_TOKEN) and making API calls to a video-rendering backend is expected for this purpose.
Instruction Scope
The SKILL.md stays within the video-generation domain (session creation, SSE messaging, uploads, export/polling). It does include logic to auto-create anonymous tokens and to derive headers (including X-Skill-Platform) from the agent's install path, and it expects to store a session_id; these are reasonable but broaden the skill's runtime behavior beyond 'only use an existing token'. It does not instruct reading arbitrary system files beyond detecting install/config paths.
Install Mechanism
Instruction-only skill (no install spec, no code files). No downloads or archive extraction — lowest install risk.
!
Credentials
The registry lists NEMO_TOKEN as a required primary env var, but the SKILL.md explicitly instructs the agent to obtain an anonymous token automatically if NEMO_TOKEN is not set. This is an inconsistency: the skill claims a required env var while also providing a full fallback that creates credentials. Otherwise, only the service token is requested and that is proportional to the stated purpose.
Persistence & Privilege
always:false (normal). The skill's metadata references a config path (~/.config/nemovideo/) and the instructions say to store session_id for later API calls — storing per-skill session state is normal for this type of integration. There is a mismatch between the top-level registry metadata (no required config paths) and the SKILL.md frontmatter which declares a config path; that should be clarified.
Assessment
This skill appears to do what it says: connect to a cloud rendering backend, accept uploads and prompts, and return generated videos. Before installing, consider: - The skill will call an external service at https://mega-api-prod.nemovideo.ai and may upload your files (up to 200MB). Don’t upload sensitive or private data unless you trust that service and its privacy/retention policies. - The SKILL.md says NEMO_TOKEN is the primary credential but also describes creating an anonymous token automatically if none is provided. Decide whether you prefer to supply your own token (more control) or allow the skill to create anonymous tokens for you. - The frontmatter mentions storing state/config in ~/.config/nemovideo/ and deriving headers from the agent install path; the registry metadata shown to me did not list config paths — ask the publisher to clarify where it will write session/config files. - No install artifacts or code are included (instruction-only). If you want higher assurance, request source/homepage or code so you can review exact API calls and any storage behavior. If you are comfortable with an unknown third-party service receiving uploaded media and temporary session tokens, the skill is coherent for its purpose; otherwise, seek a published/homepage/source or use a service you already trust.

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

Runtime requirements

🎬 Clawdis
EnvNEMO_TOKEN
Primary envNEMO_TOKEN
latestvk973c0gedsteerk87cmjkvqgq984jzrx
75downloads
0stars
1versions
Updated 2w ago
v1.0.0
MIT-0

Getting Started

Share your text prompts and I'll get started on AI video generation. Or just tell me what you're thinking.

Try saying:

  • "generate my text prompts"
  • "export 1080p MP4"
  • "generate a 10-second video of a"

First-Time Connection

When a user first opens this skill, connect to the processing backend automatically. Briefly let them know (e.g. "Setting up...").

Authentication: Check if NEMO_TOKEN is set in the environment. If it is, skip to step 2.

  1. Obtain a free token: Generate a random UUID as client identifier. POST to https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with header X-Client-Id set to that UUID. The response data.token is your NEMO_TOKEN — 100 free credits, valid 7 days.
  2. Create a session: POST to https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent with Authorization: Bearer <token>, Content-Type: application/json, and body {"task_name":"project","language":"<detected>"}. Store the returned session_id for all subsequent requests.

Keep setup communication brief. Don't display raw API responses or token values to the user.

Sora Video Generation — Generate Videos From Text Prompts

This tool takes your text prompts and runs AI video generation through a cloud rendering pipeline. You upload, describe what you want, and download the result.

Say you have a 10-word text prompt describing a scene and want to generate a 10-second video of a sunset over the ocean with waves crashing — the backend processes it in about 1-3 minutes and hands you a 1080p MP4.

Tip: shorter and more specific prompts tend to produce more accurate results.

Matching Input to Actions

User prompts referencing sora video generation, 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.

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

Headers are derived from this file's YAML frontmatter. X-Skill-Source is sora-video-generation, X-Skill-Version comes from the version field, and X-Skill-Platform is detected from the install path (~/.clawhub/ = clawhub, ~/.cursor/skills/ = cursor, otherwise unknown).

API base: https://mega-api-prod.nemovideo.ai

Create session: POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":"<lang>"} — returns task_id, session_id.

Send message (SSE): POST /run_sse — body {"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}} with Accept: text/event-stream. Max timeout: 15 minutes.

Upload: POST /api/upload-video/nemo_agent/me/<sid> — file: multipart -F "files=@/path", or URL: {"urls":["<url>"],"source_type":"url"}

Credits: GET /api/credits/balance/simple — returns available, frozen, total

Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, data.state.generated_media

Export (free, no credits): POST /api/render/proxy/lambda — body {"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}. Poll GET /api/render/proxy/lambda/<id> every 30s until status = completed. Download URL at output.url.

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

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

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

SSE Event Handling

EventAction
Text responseApply GUI translation (§4), present to user
Tool call/resultProcess internally, don't forward
heartbeat / empty data:Keep waiting. Every 2 min: "⏳ Still working..."
Stream closesProcess final response

~30% of editing operations return no text in the SSE stream. When this happens: poll session state to verify the edit was applied, then summarize changes to the user.

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)

Common Workflows

Quick edit: Upload → "generate a 10-second video of a sunset over the ocean with waves crashing" → Download MP4. Takes 1-3 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 "generate a 10-second video of a sunset over the ocean with waves crashing" — concrete instructions get better results.

Max file size is 200MB. Stick to TXT, PNG, JPG, MP4 for the smoothest experience.

Export as MP4 for widest compatibility.

Comments

Loading comments...