Skill flagged — suspicious patterns detected

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

Ramp Video

v1.0.0

Get speed ramped video ready to post, without touching a single slider. Upload your raw video footage (MP4, MOV, AVI, WebM, up to 500MB), say something like...

0· 46·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description (speed-ramp video editing) align with the behavior in SKILL.md: the skill uploads user footage and calls nemovideo.ai APIs to create renders. Requiring a service token (NEMO_TOKEN) is proportionate to this cloud-processing purpose.
Instruction Scope
Instructions direct the agent to: (a) auto-create an anonymous token via POST to mega-api-prod.nemovideo.ai if NEMO_TOKEN is absent, (b) create a session, (c) upload user files (multipart or by URL), (d) stream/poll SSE endpoints and poll render status. These are consistent with the declared cloud-render pipeline, but they do mean user media will be uploaded to a third-party service and the agent will make network calls automatically. The SKILL.md also instructs hiding raw API responses and token values from users.
Install Mechanism
Instruction-only skill with no install spec or code files — lowest install risk. There is no downloaded code or extracted archives declared.
Credentials
The only required credential is NEMO_TOKEN (declared as primary), which fits the service integration. However, the frontmatter metadata includes a configPaths entry (~/.config/nemovideo/) even though registry metadata lists no required config paths — this is an inconsistency worth clarifying. Otherwise no unrelated secrets or extra environment variables are requested.
Persistence & Privilege
always:false and the skill does not declare system-wide changes or attempts to modify other skills. It will operate via network calls and sessions with the external service, which is expected for this use case. Autonomous invocation (disable-model-invocation:false) is the platform default and not flagged on its own.
Assessment
This skill appears to do what it says (cloud speed‑ramp editing) and needs a NEMO_TOKEN to operate. Before installing: (1) confirm you are comfortable uploading your videos to the nemovideo.ai service and review that service's privacy/retention policy, (2) note the skill will auto-request an anonymous token if none is provided — if you prefer control, create/provide your own token rather than letting the skill generate one, (3) ask the publisher for source/homepage or a privacy statement (the skill has no homepage and an unknown source), and (4) clarify the metadata mismatch about ~/.config/nemovideo/ if you are concerned about local config access. If any of those are unacceptable, do not install or only use with non-sensitive footage.

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

Runtime requirements

🎬 Clawdis
EnvNEMO_TOKEN
Primary envNEMO_TOKEN
latestvk97b0a98bybe08z7bwz7bq2ncd84m25c
46downloads
0stars
1versions
Updated 1w ago
v1.0.0
MIT-0

Getting Started

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

Try saying:

  • "edit my raw video footage"
  • "export 1080p MP4"
  • "add a speed ramp effect so"

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.

Ramp Video — Apply Speed Ramp Effects to Footage

Drop your raw video footage in the chat and tell me what you need. I'll handle the speed ramp editing on cloud GPUs — you don't need anything installed locally.

Here's a typical use: you send a a 60-second action or driving clip, ask for add a speed ramp effect so the clip slows down at the peak moment then speeds back up, and about 30-60 seconds later you've got a MP4 file ready to download. The whole thing runs at 1080p by default.

One thing worth knowing — clips with a clear peak moment like a jump or turn produce the most dramatic ramp effect.

Matching Input to Actions

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

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

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

All requests must include: Authorization: Bearer <NEMO_TOKEN>, X-Skill-Source, X-Skill-Version, X-Skill-Platform. Missing attribution headers will cause export to fail with 402.

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.

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.

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

Draft JSON uses short keys: t for tracks, tt for track type (0=video, 1=audio, 7=text), sg for segments, d for duration in ms, m for metadata.

Example timeline summary:

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

Error Codes

  • 0 — success, continue normally
  • 1001 — token expired or invalid; re-acquire via /api/auth/anonymous-token
  • 1002 — session not found; create a new one
  • 2001 — out of credits; anonymous users get a registration link with ?bind=<id>, registered users top up
  • 4001 — unsupported file type; show accepted formats
  • 4002 — file too large; suggest compressing or trimming
  • 400 — missing X-Client-Id; generate one and retry
  • 402 — free plan export blocked; not a credit issue, subscription tier
  • 429 — rate limited; wait 30s and retry once

Common Workflows

Quick edit: Upload → "add a speed ramp effect so the clip slows down at the peak moment then speeds back up" → Download MP4. Takes 30-60 seconds 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 "add a speed ramp effect so the clip slows down at the peak moment then speeds back up" — concrete instructions get better results.

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

Export as MP4 with H.264 codec for the best balance of quality and file size.

Comments

Loading comments...