← Back to Skills Marketplace
whitejohnk-26

Cutter Online

by whitejohnk-26 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
66
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install cutter-online
Description
Skip the learning curve of professional editing software. Describe what you want — cut out the pauses and split into 3 separate clips — and get trimmed video...
README (SKILL.md)

Getting Started

Send me your video clips and I'll handle the AI video cutting. Or just describe what you're after.

Try saying:

  • "trim a 10-minute interview recording into a 1080p MP4"
  • "cut out the pauses and split into 3 separate clips"
  • "cutting and trimming videos into shorter segments for content creators"

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 \x3Ctoken>, Content-Type: application/json, and body {"task_name":"project","language":"\x3Cdetected>"}. 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.

Cutter Online — Cut and Export Video Clips

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

Here's a typical use: you send a a 10-minute interview recording, ask for cut out the pauses and split into 3 separate clips, 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 — splitting a long video into segments first speeds up processing.

Matching Input to Actions

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

User says... Action Skip 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 requests must include: Authorization: Bearer \x3CNEMO_TOKEN>, X-Skill-Source, X-Skill-Version, X-Skill-Platform. Missing attribution headers will cause export to fail with 402.

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

Header Value
X-Skill-Source cutter-online
X-Skill-Version frontmatter version
X-Skill-Platform auto-detect: clawhub / cursor / unknown from install path

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

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

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

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

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

Session state: GET /api/state/nemo_agent/me/\x3Csid>/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_\x3Cts>","sessionId":"\x3Csid>","draft":\x3Cjson>,"output":{"format":"mp4","quality":"high"}}. Poll GET /api/render/proxy/lambda/\x3Cid> 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

Code Meaning Action
0 Success Continue
1001 Bad/expired token Re-auth via anonymous-token (tokens expire after 7 days)
1002 Session not found New session §3.0
2001 No credits Anonymous: show registration URL with ?bind=\x3Cid> (get \x3Cid> from create-session or state response when needed). Registered: "Top up credits in your account"
4001 Unsupported file Show supported formats
4002 File too large Suggest compress/trim
400 Missing X-Client-Id Generate Client-Id and retry (see §1)
402 Free plan export blocked Subscription tier issue, NOT credits. "Register or upgrade your plan to unlock export."
429 Rate 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 says You 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

Event Action
Text response Apply GUI translation (§4), present to user
Tool call/result Process internally, don't forward
heartbeat / empty data: Keep waiting. Every 2 min: "⏳ Still working..."
Stream closes Process 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 → "cut out the pauses and split into 3 separate clips" → 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 "cut out the pauses and split into 3 separate clips" — 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.

Usage Guidance
This skill appears to do what it says: it uploads user video files to a third-party API (mega-api-prod.nemovideo.ai), creates a short-lived token (or uses NEMO_TOKEN if provided), and returns rendered clips. Before installing or using it, consider: (1) privacy — uploaded videos will go to an external service; avoid sending sensitive content unless you trust the service and its retention policy; (2) token handling — the skill will auto-request and store an anonymous token valid ~7 days if you don't supply one; if you provide a token, treat it like a credential and rotate/revoke it if needed; (3) auto-connection — the skill may perform network calls on first-open; if you prefer explicit consent, require the skill to wait for user confirmation before contacting the backend; (4) metadata mismatch — the skill's frontmatter lists a config path that the registry summary did not; this looks like a packaging inconsistency and not an attack, but you may want the publisher to clarify where credentials/session data are persisted. If these behaviors are acceptable, the skill is coherent with its stated purpose.
Capability Analysis
Type: OpenClaw Skill Name: cutter-online Version: 1.0.0 The skill is a legitimate integration for a cloud-based video editing service hosted at nemovideo.ai. It follows standard API patterns for authentication (anonymous tokens via UUID), file uploads, and asynchronous task processing via SSE. The requested permissions (NEMO_TOKEN and ~/.config/nemovideo/) are specific to the service's operation, and the instructions in SKILL.md are transparent regarding data flow and attribution headers (X-Skill-Source, etc.) without any evidence of malicious intent or data exfiltration.
Capability Assessment
Purpose & Capability
The skill is a cloud video trimming/export front-end and only requires a service token and network calls to the nemo video API. Requested capability (NEMO_TOKEN) and described API endpoints align with the stated purpose of uploading, trimming, and rendering video in the cloud.
Instruction Scope
Runtime instructions are scoped to authentication, session creation, uploading, SSE streaming, job polling, and export — all expected for this service. Note: the skill auto-connects on first open (will call the anonymous-token endpoint if NEMO_TOKEN is missing) and instructs agents to store a session_id; it also instructs not to show raw API responses or token values to the user. This auto-connection behavior is legitimate for convenience but may cause network activity without explicit user action.
Install Mechanism
Instruction-only skill with no install spec or external downloads. No code is written to disk by an installer — lowest-risk installation model.
Credentials
Only a single credential (NEMO_TOKEN) is used, which fits the integration. Two small inconsistencies: (1) registry metadata lists NEMO_TOKEN as required but the SKILL.md provides an anonymous-token fallback flow if it's absent; (2) the SKILL.md frontmatter lists a config path (~/.config/nemovideo/) while the registry metadata summary at the top reported 'Required config paths: none'. These are likely packaging/metadata mismatches rather than malicious demands, but worth noting.
Persistence & Privilege
always:false and default autonomous invocation are appropriate. The skill asks to store a session_id for job management (expected). It does not request permanent platform-wide privileges or to modify other skills' configs.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install cutter-online
  3. After installation, invoke the skill by name or use /cutter-online
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release — fast, no-hassle AI video cutting for content creators: - Upload MP4, MOV, AVI, or WebM video files up to 500MB and describe your edits (e.g., "cut out the pauses and split into 3 separate clips"). - Automatic backend session setup and token management; no need to install software. - Supports rapid AI-powered trimming, splitting, and exporting in high-quality 1080p MP4. - Clear workflows for uploading, viewing credits/balance, checking status, and exporting. - Built-in error handling for authentication, file size/type issues, and rate limits.
Metadata
Slug cutter-online
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Cutter Online?

Skip the learning curve of professional editing software. Describe what you want — cut out the pauses and split into 3 separate clips — and get trimmed video... It is an AI Agent Skill for Claude Code / OpenClaw, with 66 downloads so far.

How do I install Cutter Online?

Run "/install cutter-online" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Cutter Online free?

Yes, Cutter Online is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Cutter Online support?

Cutter Online is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Cutter Online?

It is built and maintained by whitejohnk-26 (@whitejohnk-26); the current version is v1.0.0.

💬 Comments