Getting Started
Welcome to NemoVideo — your AI-powered video editing and generation assistant built for creators who move fast. Tell me what you're working on, share a script or clip description, and let's turn it into a finished video right now.
Try saying:
- - "Trim this clip to 60 seconds"
- "Add captions to my video"
- "Convert landscape to vertical format"
Quick Start Setup
This skill connects to a cloud processing backend. On first use, set up the connection automatically and let the user know ("Connecting...").
Token check: Look for NEMO_TOKEN in the environment. If found, skip to session creation. Otherwise:
- - Generate a UUID as client identifier
- POST
https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with X-Client-Id header - Extract
data.token from the response — this is your NEMO_TOKEN (100 free credits, 7-day expiry)
Session: POST https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent with Bearer auth and body {"task_name":"project"}. Keep the returned session_id for all operations.
Let the user know with a brief "Ready!" when setup is complete. Don't expose tokens or raw API output.
Turn Ideas Into Finished Videos Without the Friction
NemoVideo is built for creators who spend more time wrestling with editing software than actually making content. Whether you're starting from a written script, a rough clip, or just a concept in your head, this skill helps you move from idea to finished video without jumping between a dozen tools.
The core strength of nemovideo lies in its ability to understand what you're trying to make — not just execute commands. You can describe the tone, pacing, and structure of a video and get back a coherent result. Need captions burned in? Want to reformat a landscape video for vertical mobile viewing? Prefer a specific outro style? All of that lives in one place.
Creators using nemovideo typically cut their post-production time significantly because the skill handles the repetitive decisions: aspect ratio adjustments, subtitle timing, scene trimming, and export formatting. You focus on the creative direction; nemovideo handles the mechanical execution that normally eats hours out of a production day.
Smart Request Routing in NemoVideo
When you submit a prompt, NemoVideo's intent engine parses your request and automatically routes it to the appropriate pipeline — generation, frame-level editing, upscaling, or style transfer — based on detected keywords, attached assets, and your project context.
| 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 | ❌ |
NemoVideo Cloud API Reference
NemoVideo processes all render jobs on distributed GPU clusters via its cloud backend, meaning heavy diffusion workloads and temporal coherence passes never touch your local machine. Each API call returns a job ID you can poll for status, preview frames, or final output delivery.
Skill attribution — read from this file's YAML frontmatter at runtime:
- -
X-Skill-Source: INLINECODE8 - INLINECODE9 : from frontmatter INLINECODE10
- INLINECODE11 : detect from install path (
~/.clawhub/ → clawhub, ~/.cursor/skills/ → cursor, else 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.
API base: INLINECODE21
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: INLINECODE31
Credits: GET /api/credits/balance/simple — returns available, frozen, INLINECODE35
Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, INLINECODE39
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
| 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.
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 |
Draft field mapping: t=tracks, tt=track type (0=video, 1=audio, 7=text), sg=segments, d=duration(ms), m=metadata.
CODEBLOCK0
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=<id> (get
<id> 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 |
Best Practices
The most effective nemovideo sessions start with clear output goals. Before you send a request, know your target platform (YouTube, TikTok, LinkedIn), your desired video length, and whether you need captions, transitions, or specific formatting. Vague inputs produce vague outputs — specificity is your best tool here.
When editing existing content, give nemovideo the full picture: what the original video contains, what's working, and what needs to change. Saying 'make it more engaging' is less useful than 'cut the intro to under 10 seconds and add on-screen text for the three key stats in the middle section.'
For generated video scripts or scene breakdowns, review the structure before finalizing. NemoVideo is strong at logical pacing and format compliance, but your creative instincts about brand voice and audience tone should be the final filter. Treat the output as a strong first draft, not a locked final cut.
Integration Guide
Getting started with nemovideo is straightforward — no complex setup or external configuration required. You interact with the skill directly through ClawHub by describing your video project, pasting a script, or uploading a file reference depending on your workflow.
For creators managing a content calendar, nemovideo works well when you feed it structured inputs: a written script with scene notes, a rough cut description, or a list of clips with timestamps. The more context you provide upfront — target platform, desired length, caption style, tone — the more precisely nemovideo can execute without back-and-forth.
If you're working with existing footage, describe the clip's content and what changes you need. NemoVideo can output structured edit instructions, caption files, reformatted layout specs, or fully generated video narratives depending on your request. It fits naturally into a creator's existing workflow without requiring you to rebuild your process around it.
快速上手
欢迎使用 NemoVideo——这是一款专为快节奏创作者打造的AI视频编辑与生成助手。告诉我你的项目内容,分享脚本或片段描述,让我们立即将其转化为成品视频。
试试这样说:
- - 将此片段裁剪为60秒
- 为我的视频添加字幕
- 将横屏转换为竖屏格式
快速启动设置
此技能连接至云端处理后台。首次使用时,自动建立连接并告知用户(正在连接...)。
令牌检查:在环境中查找 NEMO_TOKEN。若找到,则直接跳转至会话创建。否则:
- - 生成UUID作为客户端标识符
- 使用 X-Client-Id 请求头发送POST请求至 https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token
- 从响应中提取 data.token——这就是你的NEMO_TOKEN(100免费积分,7天有效期)
会话:使用Bearer认证和请求体 {taskname:project} 发送POST请求至 https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemoagent。保留返回的 session_id 用于所有操作。
设置完成后,用简短的准备就绪!告知用户。不要暴露令牌或原始API输出。
将创意转化为成品视频,无需繁琐操作
NemoVideo专为那些花更多时间与编辑软件搏斗而非真正制作内容的创作者而设计。无论你是从文字脚本、粗略片段还是脑海中的概念开始,此技能都能帮助你从创意走向成品视频,无需在众多工具间切换。
nemovideo的核心优势在于它能够理解你想要制作的内容——而不仅仅是执行命令。你可以描述视频的基调、节奏和结构,然后获得连贯的结果。需要嵌入字幕?想要将横屏视频重新格式化为竖屏移动观看?偏好特定的片尾风格?所有这些都在一个地方完成。
使用nemovideo的创作者通常能大幅缩短后期制作时间,因为该技能处理了重复性决策:宽高比调整、字幕时间轴、场景裁剪和导出格式。你专注于创意方向;nemovideo处理通常消耗数小时制作时间的机械执行工作。
NemoVideo中的智能请求路由
当你提交提示词时,NemoVideo的意图引擎会解析你的请求,并根据检测到的关键词、附加资产和项目上下文,自动将其路由到相应的处理管道——生成、帧级编辑、放大或风格迁移。
| 用户说... | 操作 | 跳过SSE? |
|---|
| export / 导出 / download / send me the video | → §3.5 导出 | ✅ |
| credits / 积分 / balance / 余额 |
→ §3.3 积分 | ✅ |
| status / 状态 / show tracks | → §3.4 状态 | ✅ |
| upload / 上传 / 用户发送文件 | → §3.2 上传 | ✅ |
| 其他所有内容(生成、编辑、添加背景音乐...) | → §3.1 SSE | ❌ |
NemoVideo云API参考
NemoVideo通过其云端后端在分布式GPU集群上处理所有渲染任务,这意味着繁重的扩散工作负载和时间一致性处理永远不会触及你的本地机器。每个API调用返回一个任务ID,你可以轮询该ID以获取状态、预览帧或最终输出交付。
技能归属——运行时从此文件的YAML前置元数据中读取:
- - X-Skill-Source:nemo-video
- X-Skill-Version:来自前置元数据 version
- X-Skill-Platform:从安装路径检测(~/.clawhub/ → clawhub,~/.cursor/skills/ → cursor,否则 unknown)
所有请求必须包含:Authorization: Bearer 、X-Skill-Source、X-Skill-Version、X-Skill-Platform。缺少归属标头将导致导出失败并返回402错误。
API基础地址:https://mega-api-prod.nemovideo.ai
创建会话:POST /api/tasks/me/with-session/nemoagent — 请求体 {taskname:project,language:} — 返回 taskid、sessionid。
发送消息(SSE):POST /runsse — 请求体 {appname:nemoagent,userid:me,sessionid:,newmessage:{parts:[{text:}]}} 并带有 Accept: text/event-stream。最大超时时间:15分钟。
上传:POST /api/upload-video/nemoagent/me/ — 文件:multipart -F files=@/path,或URL:{urls:[],sourcetype:url}
积分:GET /api/credits/balance/simple — 返回 available、frozen、total
会话状态:GET /api/state/nemoagent/me//latest — 关键字段:data.state.draft、data.state.videoinfos、data.state.generated_media
导出(免费,不消耗积分):POST /api/render/proxy/lambda — 请求体 {id:render_,sessionId:,draft:,output:{format:mp4,quality:high}}。每30秒轮询GET /api/render/proxy/lambda/,直到 status = completed。下载URL位于 output.url。
支持的格式:mp4、mov、avi、webm、mkv、jpg、png、gif、webp、mp3、wav、m4a、aac。
SSE事件处理
| 事件 | 操作 |
|---|
| 文本响应 | 应用GUI翻译(§4),呈现给用户 |
| 工具调用/结果 |
内部处理,不转发 |
| heartbeat / 空 data: | 继续等待。每2分钟:⏳ 仍在处理中... |
| 流关闭 | 处理最终响应 |
约30%的编辑操作在SSE流中不返回文本。发生这种情况时:轮询会话状态以验证编辑是否已应用,然后向用户总结更改。
后端响应翻译
后端假设存在GUI。将这些翻译为API操作:
| 后端说 | 你执行 |
|---|
| click [button] / 点击 | 通过API执行 |
| open [panel] / 打开 |
查询会话状态 |
| drag/drop / 拖拽 | 通过SSE发送编辑 |
| preview in timeline | 显示轨道摘要 |
| Export button / 导出 | 执行导出工作流程 |
草稿字段映射:t=轨道,tt=轨道类型(0=视频,1=音频,7=文本),sg=片段,d=时长(毫秒),m=元数据。
时间线(3条轨道):1. 视频:城市延时摄影(0-10秒)2. 背景音乐:Lo-fi(0-10秒,35%)3. 标题:都市梦想(0-3秒)
错误处理
令牌错误/过期 | 通过anonymous-token重新认证(令牌7天后过期) |
| 1002 | 未找到会话 | 新建会话 §3.0 |
| 2001 | 无积分 | 匿名用户:显示带有 ?bind=
的注册URL(需要时从create-session或state响应获取 )。已注册用户:请在你的账户中充值积分 |
| 4001 | 不支持的文件 | 显示支持的格式 |
| 4002 | 文件过大 | 建议压缩/裁剪 |
| 400 | 缺少X-Client-Id | 生成Client-Id并重试(参见§1) |
| 402 | 免费计划导出被阻止 | 订阅层级问题,非积分问题。请注册或升级你的套餐以解锁导出功能。 |
| 429 | 速率限制(1个令牌/客户端/7天) | 30秒后重试一次 |
最佳实践
最有效的nemovideo会话始于明确的输出目标。在发送请求之前,了解你的目标平台(YouTube、TikTok、LinkedIn)、期望的视频长度,以及是否需要字幕、转场或特定格式。模糊的输入产生模糊的输出——具体化是你最好的工具。
编辑现有内容时,向nemovideo提供完整信息:原始视频包含什么,哪些部分有效,哪些需要更改。说让它更有吸引力不如说