Skill flagged — suspicious patterns detected

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

Ai Voiceover App

v1.0.0

add video or script into voiced-over videos with this skill. Works with MP4, MOV, AVI, WebM files up to 500MB. content creators, marketers, educators use it...

0· 63·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 francemichaell-15/ai-voiceover-app.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Ai Voiceover App" (francemichaell-15/ai-voiceover-app) from ClawHub.
Skill page: https://clawhub.ai/francemichaell-15/ai-voiceover-app
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 ai-voiceover-app

ClawHub CLI

Package manager switcher

npx clawhub@latest install ai-voiceover-app
Security Scan
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The declared requirement (NEMO_TOKEN) and the SKILL.md endpoints line up with a cloud-based voiceover/rendering service — asking for a single service token is proportionate. However, registry metadata also lists a local config path (~/.config/nemovideo/) that the instructions never actually use, and the skill has no homepage or known publisher, which reduces transparency about who operates the backend.
!
Instruction Scope
Instructions direct the agent to upload user-supplied media and scripts to an external API (mega-api-prod.nemovideo.ai) and to auto-acquire an anonymous token if NEMO_TOKEN is not set. The doc explicitly tells the agent not to show raw API responses or token values to users, which could hide sensitive information. The workflow includes storing session_id and tokens for subsequent requests; storage location and lifetime are unspecified.
Install Mechanism
Instruction-only (no installation or third-party package downloads). That minimizes on-disk risk; all heavy work is remote.
Credentials
Only NEMO_TOKEN is required as a credential, which is appropriate for a service-backed skill. Still, the skill will create and persist an anonymous token for users automatically if none is provided — consider whether you want the agent to obtain and store credentials on your behalf. The metadata's declared config path suggests local storage access that the runtime instructions don't clarify.
Persistence & Privilege
Skill is not always-enabled and uses normal autonomous invocation. It does instruct storing session tokens, but it doesn't request global agent config changes or cross-skill credentials.
What to consider before installing
This skill behaves like a cloud video-processing client: it uploads your media to an external service and uses a service token (NEMO_TOKEN). Before installing or using it, verify the backend operator (there's no homepage or publisher info), ask where tokens and session IDs are stored and how long they live, and avoid uploading sensitive or private videos until you're comfortable with the provider's privacy policy. If you prefer control, supply your own NEMO_TOKEN instead of allowing the skill to auto-generate and persist an anonymous token. Request that the skill display the raw token/session_id at least once so you can record and revoke it if needed. If you decide to proceed, restrict uploads to non-sensitive material and periodically revoke any tokens issued by the service.

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

Runtime requirements

🎙️ Clawdis
EnvNEMO_TOKEN
Primary envNEMO_TOKEN
latestvk97dy89a3py4ta6zxegm4mpsyd84xj9w
63downloads
0stars
1versions
Updated 1w ago
v1.0.0
MIT-0

Getting Started

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

Try saying:

  • "add my video or script"
  • "export 1080p MP4"
  • "add a natural-sounding voiceover in English"

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.

AI Voiceover App — Add Voiceovers to Videos

Send me your video or script and describe the result you want. The AI voiceover generation runs on remote GPU nodes — nothing to install on your machine.

A quick example: upload a 2-minute tutorial video with no audio, type "add a natural-sounding voiceover in English using a female voice", and you'll get a 1080p MP4 back in roughly 30-60 seconds. All rendering happens server-side.

Worth noting: shorter video segments produce more accurate voice sync.

Matching Input to Actions

User prompts referencing ai voiceover app, 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.

Base URL: https://mega-api-prod.nemovideo.ai

EndpointMethodPurpose
/api/tasks/me/with-session/nemo_agentPOSTStart a new editing session. Body: {"task_name":"project","language":"<lang>"}. Returns session_id.
/run_ssePOSTSend a user message. Body includes app_name, session_id, new_message. Stream response with Accept: text/event-stream. Timeout: 15 min.
/api/upload-video/nemo_agent/me/<sid>POSTUpload a file (multipart) or URL.
/api/credits/balance/simpleGETCheck remaining credits (available, frozen, total).
/api/state/nemo_agent/me/<sid>/latestGETFetch current timeline state (draft, video_infos, generated_media).
/api/render/proxy/lambdaPOSTStart export. Body: {"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}. Poll status every 30s.

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

Headers are derived from this file's YAML frontmatter. X-Skill-Source is ai-voiceover-app, 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).

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.

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

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.

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)

Common Workflows

Quick edit: Upload → "add a natural-sounding voiceover in English using a female voice" → 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 natural-sounding voiceover in English using a female voice" — 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.

Comments

Loading comments...