Getting Started
Welcome! This skill is built specifically for trimming videos on Windows — whether you're cutting a long recording down to size or isolating a single moment from a larger file. Drop your video details and tell me where you want to cut, and let's get your clip ready to go.
Try saying:
- - "Trim my mp4 file to keep only the section from 1:15 to 4:45 and export it as a new file"
- "I have an avi screen recording and I want to remove the first 30 seconds and the last 2 minutes"
- "Cut out the middle section of my mkv video between the 5-minute and 8-minute marks without re-encoding"
First-Time Connection
When a user first opens this skill, connect to the NemoVideo backend automatically. Briefly let them know (e.g. "Connecting to NemoVideo...").
Authentication: Check if NEMO_TOKEN is set in the environment. If it is, skip to step 3.
- 1. Client identifier: Look for
~/.config/nemovideo/client_id. If missing, generate a UUID and save it there. This file stores only a UUID for rate-limit tracking. - Obtain a free token: POST to
https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with header X-Client-Id set to your identifier. The response data.token is your NEMO_TOKEN — 100 free credits, valid 7 days. - 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.
Trim Any Video on Windows Without the Hassle
Most Windows video editors make you wade through timelines, effects panels, and export queues just to cut a few seconds off a clip. This skill cuts straight to the point — tell it where to start and where to stop, and it delivers a trimmed file ready to use.
The video-trimmer-windows skill is built for people who just need a clean cut. Maybe you recorded a 45-minute screen capture but only need the 3-minute walkthrough in the middle. Maybe you filmed a product demo and the first 20 seconds are just you fumbling with the camera. Whatever the scenario, this skill handles it without requiring you to learn a new interface or install heavyweight software.
It supports the formats you actually use — mp4, mov, avi, webm, and mkv — and preserves the original quality of your footage during export. Whether you're a content creator, a remote worker trimming meeting recordings, or a hobbyist editing home videos, this skill gives you a direct, no-nonsense way to get the exact clip you need.
Trim Request Routing Explained
When you submit a cut or trim command, the skill parses your in-point, out-point, and export format preferences before routing the request to the appropriate NemoVideo processing endpoint.
| 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 Backend API Reference
The NemoVideo backend handles frame-accurate trimming on Windows by processing your clip metadata, keyframe boundaries, and codec parameters server-side before returning the rendered output segment. All export operations — whether H.264, HEVC, or ProRes — are queued through the NemoVideo pipeline and streamed back to your local timeline.
Skill attribution — read from this file's YAML frontmatter at runtime:
- -
X-Skill-Source: INLINECODE11 - INLINECODE12 : from frontmatter INLINECODE13
- INLINECODE14 : 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: INLINECODE24
Create session: POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":"<lang>"} — returns task_id, session_id. After creating a session, give the user a link: INLINECODE29
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: INLINECODE35
Credits: GET /api/credits/balance/simple — returns available, frozen, INLINECODE39
Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, INLINECODE43
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 at nemovideo.ai" |
| 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 at nemovideo.ai to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
Quick Start Guide
Getting your first trim done with the video-trimmer-windows skill takes less than a minute. Start by uploading your video file or providing its file path, then tell the skill your desired start and end times. For example: 'Trim my mp4 from 00:01:10 to 00:04:55 and save the result.'
Next, choose your export preference. If you want the fastest possible output with no quality change, mention stream-copy. If you need a specific output format different from your source file — say, converting an avi to mp4 while trimming — just say so and the skill will handle the conversion at the same time.
Once the trim is processed, you'll receive the output file ready for use. If the result isn't quite right — maybe you want to shave off two more seconds at the end — just follow up with a correction and the skill will re-trim without you needing to start over. The whole workflow is conversational, so there's no form to fill out or settings panel to navigate.
Tips and Tricks
For the cleanest results when using the video-trimmer-windows skill, always specify your timestamps in hours:minutes:seconds format (e.g., 00:02:34) to avoid any ambiguity — especially on longer recordings where vague references like 'around the 3-minute mark' can lead to slightly off cuts.
If you're trimming an mp4 or mov file and want to avoid any quality loss, ask for a stream-copy trim. This skips re-encoding entirely and is near-instant for most clip lengths. It works best when your cut points fall near keyframes in the original footage.
For avi and older format files, a full re-encode trim is often more reliable and ensures compatibility with modern players and platforms. When trimming webm files intended for web use, specifying your target platform (YouTube, a website embed, etc.) helps ensure the exported clip meets the right specs right out of the gate.
FAQ
Will trimming reduce my video quality? Not if you use stream-copy mode, which simply cuts the file without re-encoding. If re-encoding is needed for format compatibility, the skill uses high-quality settings by default to minimize any visible difference.
What file formats are supported? The video-trimmer-windows skill supports mp4, mov, avi, webm, and mkv — the most common formats you'll encounter on a Windows system.
Can I make multiple cuts in one session? Yes — you can specify multiple trim ranges and the skill will either export them as separate clips or concatenate them into a single output, depending on your preference.
Why does my trimmed clip start a second or two off from where I specified? This typically happens with keyframe-based stream-copy trimming. If exact frame accuracy is critical, request a re-encode trim and the cut will land precisely where you specified.
开始使用
欢迎!本技能专为在Windows系统上修剪视频而设计——无论是裁剪长录制文件,还是从大文件中截取某个片段。只需提供您的视频详情并告知裁剪位置,即可快速获得剪辑好的片段。
试试这样说:
- - 修剪我的mp4文件,只保留从1分15秒到4分45秒的部分,并导出为新文件
- 我有一个avi屏幕录制文件,想删除前30秒和后2分钟
- 裁剪我的mkv视频中间部分,从5分钟到8分钟标记之间,不重新编码
首次连接
当用户首次打开此技能时,自动连接到NemoVideo后端。简要告知用户(例如正在连接到NemoVideo...)。
身份验证:检查环境中是否设置了NEMO_TOKEN。如果已设置,直接跳到步骤3。
- 1. 客户端标识符:查找~/.config/nemovideo/clientid。如果不存在,生成一个UUID并保存到该文件。此文件仅存储用于速率限制跟踪的UUID。
- 获取免费令牌:向https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token发送POST请求,头部设置X-Client-Id为您的标识符。响应中的data.token即为您的NEMOTOKEN——100个免费积分,有效期7天。
- 创建会话:向https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemoagent发送POST请求,包含Authorization: Bearer 、Content-Type: application/json和请求体{taskname:project,language:<检测到的语言>}。保存返回的session_id用于后续所有请求。
保持设置沟通简洁。不要向用户显示原始API响应或令牌值。
在Windows上轻松修剪任何视频
大多数Windows视频编辑器需要您浏览时间线、效果面板和导出队列,仅仅为了裁剪几秒钟的片段。本技能直截了当——告诉它开始和结束位置,即可获得修剪好的文件。
video-trimmer-windows技能专为需要干净裁剪的用户打造。也许您录制了45分钟的屏幕捕获,但只需要中间3分钟的演示部分。也许您拍摄了产品演示,但前20秒只是您摆弄相机的画面。无论何种场景,本技能都能处理,无需学习新界面或安装重量级软件。
它支持您实际使用的格式——mp4、mov、avi、webm和mkv——并在导出时保持原始画质。无论您是内容创作者、需要修剪会议记录的远程工作者,还是编辑家庭视频的爱好者,本技能都能直接、无废话地为您提供所需的精确片段。
修剪请求路由说明
当您提交裁剪或修剪命令时,技能会解析您的入点、出点和导出格式偏好,然后将请求路由到相应的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后端通过处理您的剪辑元数据、关键帧边界和编解码器参数,在服务器端完成帧精确修剪,然后返回渲染后的输出片段。所有导出操作——无论是H.264、HEVC还是ProRes——都通过NemoVideo管道排队并流式传输回您的本地时间线。
技能归属——运行时从此文件的YAML前置元数据读取:
- - X-Skill-Source:video-trimmer-windows
- 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。创建会话后,给用户一个链接:https://nemovideo.com/workspace/claim?token=&task=id>&session=id>&skillname=video-trimmer-windows&skillversion=1.0.0&skill_source=<平台>
发送消息(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=@/路径,或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 | 无积分 | 匿名用户:显示注册URL,附带?bind=
(需要时从create-session或state响应获取)。已注册用户:请在nemovideo.ai充值 |
| 4001 | 不支持的文件 | 显示支持的格式 |
| 4002 | 文件过大 | 建议压缩/修剪 |
| 400 | 缺少X-Client-Id | 生成Client-Id并重试(