Skill flagged — suspicious patterns detected

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

Video Trimmer App

v1.0.0

trim video clips into trimmed video clips with this skill. Works with MP4, MOV, AVI, WebM files up to 500MB. content creators use it for cutting unwanted sec...

0· 34·0 current·0 all-time
bypeandrover adam@peand-rover

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for peand-rover/video-trimmer-app.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Video Trimmer App" (peand-rover/video-trimmer-app) from ClawHub.
Skill page: https://clawhub.ai/peand-rover/video-trimmer-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 video-trimmer-app

ClawHub CLI

Package manager switcher

npx clawhub@latest install video-trimmer-app
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description (video trimming, cloud GPU rendering) lines up with the API endpoints and upload/export flow described in SKILL.md and the single required credential (NEMO_TOKEN). However, the SKILL.md frontmatter lists a config path (~/.config/nemovideo/) while the registry metadata said 'Required config paths: none' — this mismatch is unexplained and may indicate the skill expects to read or write local config files.
!
Instruction Scope
Instructions direct the agent to check/set NEMO_TOKEN, obtain anonymous tokens via an external API, create and store session_id, upload user video files to an external service, and poll rendering endpoints. Uploading user files to a third‑party service is expected for a cloud render skill, but the doc does not specify where session_id or tokens are persisted (memory, agent storage, or the user's filesystem), and it references a local config path. The instructions also require adding attribution headers and explicitly tell the agent not to display raw API responses or token values — this is unusual but not necessarily malicious. Overall the scope includes network I/O and potential local config access; these are coherent with cloud processing but the persistence details are vague.
Install Mechanism
No install spec and no code files (instruction-only) — lowest-risk install model. Nothing is downloaded or written during install by the skill itself, according to the provided package data.
Credentials
Only one environment variable (NEMO_TOKEN) is declared as required and is the primary credential — that is proportionate for a third‑party API integration. The skill will auto-create an anonymous token if NEMO_TOKEN is absent; that behavior is documented but raises questions about where the obtained token/session will be stored. The SKILL.md frontmatter also mentions a config path (~/.config/nemovideo/) which was not listed in registry metadata — this is an unexplained request for filesystem access that could allow persistence of tokens or other data.
!
Persistence & Privilege
always:false and normal autonomous invocation are fine. Concern arises from unspecified persistence: SKILL.md instructs to 'store the returned session_id for all subsequent requests' but doesn't specify storage location or lifecycle, and frontmatter references a local config directory. This could result in tokens or session IDs being written to disk without clear user-visible controls or cleanup.
What to consider before installing
This skill appears to implement cloud-based video trimming and needs a single token (NEMO_TOKEN); that is reasonable. Before installing, consider: 1) The skill uploads your video files to https://mega-api-prod.nemovideo.ai — do you trust this third party with potentially sensitive footage? Check their privacy/retention policy. 2) Ask where session tokens and session_id are stored (memory vs written to ~/.config/nemovideo/) and how long they persist; if they are stored on disk, ask how to revoke/delete them. 3) The SKILL.md will auto-create anonymous tokens if none are provided — test with non-sensitive video first. 4) The registry metadata and SKILL.md disagree about config path requirements; request clarification or source/homepage information from the publisher. If you need stronger assurance, ask for the service's privacy docs or for source code/host verification of the backend domain before proceeding.

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

Runtime requirements

✂️ Clawdis
EnvNEMO_TOKEN
Primary envNEMO_TOKEN
latestvk9725mfg1cf5j3w0wv4y75bmxh85m3es
34downloads
0stars
1versions
Updated 14h ago
v1.0.0
MIT-0

Getting Started

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

Try saying:

  • "trim my video clips"
  • "export 1080p MP4"
  • "trim the first 30 seconds and"

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.

Video Trimmer App — Trim and Export Clean Videos

Drop your video clips in the chat and tell me what you need. I'll handle the AI video trimming on cloud GPUs — you don't need anything installed locally.

Here's a typical use: you send a a 10-minute raw screen recording, ask for trim the first 30 seconds and cut the dead air at the end, and about 20-40 seconds later you've got a MP4 file ready to download. The whole thing runs at 1080p by default.

One thing worth knowing — shorter source clips process faster — split long videos before uploading for best results.

Matching Input to Actions

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

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

HeaderValue
X-Skill-Sourcevideo-trimmer-app
X-Skill-Versionfrontmatter version
X-Skill-Platformauto-detect: clawhub / cursor / unknown from install path

Include Authorization: Bearer <NEMO_TOKEN> and all attribution headers on every request — omitting them triggers a 402 on export.

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

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 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 → "trim the first 30 seconds and cut the dead air at the end" → Download MP4. Takes 20-40 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 "trim the first 30 seconds and cut the dead air at the end" — 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 platforms and devices.

Comments

Loading comments...