Gif Compressor Online

v1.0.0

compress GIF files into compressed GIF files with this skill. Works with GIF, MP4, WebM, APNG files up to 200MB. web designers, marketers, social media manag...

0· 91·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/gif-compressor-online.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Gif Compressor Online" (peand-rover/gif-compressor-online) from ClawHub.
Skill page: https://clawhub.ai/peand-rover/gif-compressor-online
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 gif-compressor-online

ClawHub CLI

Package manager switcher

npx clawhub@latest install gif-compressor-online
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description (GIF/video compression) align with the runtime instructions (upload, render, export) and the single required env var NEMO_TOKEN; the skill's network endpoints point to a media-processing backend that fits the stated purpose. Minor metadata mismatch: SKILL.md frontmatter declares a config path (~/.config/nemovideo/) but registry metadata lists no required config paths.
Instruction Scope
SKILL.md narrowly instructs the agent to obtain (or use) a NEMO_TOKEN, create a session, upload files, run exports, and poll status — all actions needed for remote rendering. It does cause user media to be uploaded to a third‑party domain (mega-api-prod.nemovideo.ai), which is expected but a privacy consideration; it also instructs automatic anonymous-token creation if no token is present.
Install Mechanism
No install spec or downloaded code — instruction-only skill. This is the lowest install risk and consistent with the content (all runtime actions are remote API calls).
Credentials
Only one credential is required (NEMO_TOKEN), which directly maps to the service used. The skill also describes how to auto-provision an anonymous token via the backend API. The frontmatter mentions a config path (~/.config/nemovideo/) not declared elsewhere — a small inconsistency but not inherently malicious.
Persistence & Privilege
always:false and normal invocation/agent-autonomy settings. The skill asks to store session_id for ongoing requests (expected for session-based APIs) but does not request elevated privileges or to modify other skills or system configuration.
Assessment
This skill uploads your media to https://mega-api-prod.nemovideo.ai and either uses an existing NEMO_TOKEN or requests an anonymous token on your behalf — check that you trust that domain and its privacy/retention policy before sending sensitive files. Note the SKILL.md references a local config path (~/.config/nemovideo/) even though the registry metadata did not declare it; ask the publisher to clarify where session tokens or session_id are stored. If you need guaranteed privacy, avoid uploading private content or review the service terms first.

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

Runtime requirements

🗜️ Clawdis
EnvNEMO_TOKEN
Primary envNEMO_TOKEN
latestvk972s2r3axfvbxxjbkpcpk08k984mm89
91downloads
0stars
1versions
Updated 2w ago
v1.0.0
MIT-0

Getting Started

Share your GIF files and I'll get started on GIF compression optimization. Or just tell me what you're thinking.

Try saying:

  • "compress my GIF files"
  • "export 720p MP4"
  • "compress this GIF to under 500KB"

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.

GIF Compressor Online — Compress and Optimize GIF Files

Send me your GIF files and describe the result you want. The GIF compression optimization runs on remote GPU nodes — nothing to install on your machine.

A quick example: upload a 2MB animated GIF with 30 frames, type "compress this GIF to under 500KB without losing too much quality", and you'll get a 720p MP4 back in roughly 10-30 seconds. All rendering happens server-side.

Worth noting: reducing frame rate slightly can cut file size dramatically with minimal visual difference.

Matching Input to Actions

User prompts referencing gif compressor online, 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.

All calls go to https://mega-api-prod.nemovideo.ai. The main endpoints:

  1. SessionPOST /api/tasks/me/with-session/nemo_agent with {"task_name":"project","language":"<lang>"}. Gives you a session_id.
  2. Chat (SSE)POST /run_sse with session_id and your message in new_message.parts[0].text. Set Accept: text/event-stream. Up to 15 min.
  3. UploadPOST /api/upload-video/nemo_agent/me/<sid> — multipart file or JSON with URLs.
  4. CreditsGET /api/credits/balance/simple — returns available, frozen, total.
  5. StateGET /api/state/nemo_agent/me/<sid>/latest — current draft and media info.
  6. ExportPOST /api/render/proxy/lambda with render ID and draft JSON. Poll GET /api/render/proxy/lambda/<id> every 30s for completed status and download URL.

Formats: 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 gif-compressor-online, 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).

Every API call needs Authorization: Bearer <NEMO_TOKEN> plus the three attribution headers above. If any header is missing, exports return 402.

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)

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

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.

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

Common Workflows

Quick edit: Upload → "compress this GIF to under 500KB without losing too much quality" → Download MP4. Takes 10-30 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 "compress this GIF to under 500KB without losing too much quality" — concrete instructions get better results.

Max file size is 200MB. Stick to GIF, MP4, WebM, APNG for the smoothest experience.

Converting GIF to MP4 often reduces size by 80% while keeping smooth animation.

Comments

Loading comments...