Token导航 LogoToken导航

Agent Skill · 研究检索

code2animation(code2animation 视频)

用于辅助视频生成、动画合成、脚本化剪辑或 Remotion 等视频项目开发。它适合让 Agent 组织镜头、生成素材说明、维护合成代码或排查渲染问题。使用时需要确认分辨率、时长、素材路径和导出格式;涉及外部素材、人物肖像或商业发布时,应先核对版权授权和内容审核要求。

code2animation 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 7,762。

总安装 18,107周安装 747GitHub Stars 2下载 5,916核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.1

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:code2animation(code2animation 视频)
来源仓库:https://github.com/etrobot/code2animation
安装命令:
openclaw skills install code2animation
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install code2animation

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

code2animation 用于辅助视频生成和动画项目开发,支持脚本化剪辑与素材合成。适合在 OpenClaw 中组织镜头、生成旁白或维护 Remotion 项目时使用。可创建视觉资产并渲染 MP4 视频,适用于自动化内容制作场景。

安装命令:openclaw skills install code2animation,需注意分辨率和导出格式设置。涉及外部素材或人物肖像时,应提前核对版权授权和内容审核要求。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install code2animation;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

code2animation 怎么安装?

在终端执行 openclaw skills install code2animation。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

code2animation 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

code2animation 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

code2animation 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

code2animation 用的人多吗?

公开数据是累计安装 18,107 次,近一周安装 747 次,下载 5,916 次,GitHub 2 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

code2animation 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
code2animation

code2animation 视频 · 本页

18,1072接触敏感数据MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

AgentSaaS Video Editor Skill

A comprehensive video editing and rendering skill that enables AI agents to create code-driven animations with text-to-speech narration and smooth transitions.

Purpose

This skill allows agents to:

  • Create and preview interactive video projects with animations
  • Generate TTS audio narration using Microsoft Edge TTS
  • Render complete videos with synchronized audio and visual effects
  • Support both portrait and landscape video formats
  • Apply smooth transition effects between media elements

Core Capabilities

1. Interactive Video Preview

  • Real-time preview of video projects in the browser
  • Playback controls for testing and debugging
  • Support for transitions, media clips, and timing adjustments
  • Frame-by-frame seeking for precise editing
  • Live transition preview with easing effects

2. Transition System

  • transitionIn: Each media defines its own entrance animation
  • Supported transitions: fade, zoom, slide2Left, slideUp, none
  • Easing: Built-in easeOutCubic for smooth slide and zoom animations
  • stayInClip: Media can persist throughout entire clip duration
  • Cross-clip transitions: Automatic handling of clip boundaries

3. TTS Audio Generation

  • Automated text-to-speech using Microsoft Edge TTS (msedge-tts)
  • Support for multiple voices (English and Chinese)
  • Word-level timing metadata for lip-sync and animations
  • Audio file caching for faster previews

4. Video Rendering

  • Automated frame-by-frame rendering using Puppeteer
  • FFmpeg integration for video encoding and audio mixing
  • 30 FPS output at 1920x1080 (landscape) or 1080x1920 (portrait)
  • Deterministic rendering for consistent results
  • Transition effects preserved in final output

Project Configuration Format

Media Item Properties

  • src: HTML filename in the footage directory
  • words: Trigger phrase from speech that activates this media
  • transitionIn: Entrance animation type (optional)
  • transitionDuration: Duration in seconds (optional, default: 0.6s)
  • stayInClip: If true, media remains visible until clip ends (optional)

Transition Types

  • fade: Opacity transition (0 → 1)
  • zoom: Scale transition (2x → 1x) with opacity
  • slide2Left: Horizontal slide from right (100% → 0%)
  • slideUp: Vertical slide from bottom (100% → 0%)
  • none: No transition effect

Transition Behavior

  • transitionIn: Defines how this media enters the scene
  • transitionDuration: Duration in seconds (default: 0.6s)
  • stayInClip: If true, media remains visible until clip ends
  • Easing: slide2Left and slideUp use easeOutCubic for smooth deceleration

Reference Implementation

See public/projects/agentSaasPromoVideo.json for a complete working example demonstrating all transition types and stayInClip behavior.

Technical Requirements

System Dependencies

  • Node.js: 18 or higher
  • FFmpeg: Required for video encoding and audio mixing
  • Chromium/Chrome: Used by Puppeteer for headless rendering

Node.js Dependencies

  • React & Vite: Frontend framework and build tool
  • Puppeteer: Headless browser for frame capture
  • msedge-tts: Microsoft Edge TTS for audio generation
  • Express: Optional HTTP server (for TTS API endpoint)
  • Motion (Framer Motion): Animation library
  • Tailwind CSS: Styling framework

Shell Commands Used

This skill executes the following shell commands:

Audio Generation

npx tsx scripts/generate-audio.ts <projectId>
  • Reads project JSON configuration
  • Generates MP3 audio files using Edge TTS
  • Saves word-level timing metadata

Video Rendering

node scripts/render.js <projectId> [--portrait]
  • Starts a local Vite dev server
  • Launches Puppeteer to capture frames
  • Uses FFmpeg to encode video and mix audio
  • Cleans up temporary files

FFmpeg Operations

  • Frame encoding: ffmpeg -framerate 30 -i frames/frame-%05d.jpg -c:v libx264 ...
  • Audio mixing: ffmpeg -i video.mp4 -i audio1.mp3 -i audio2.mp3 -filter_complex ...

Browser Detection

  • Uses which command to find Chrome/Chromium on Linux/macOS
  • Respects PUPPETEER_EXECUTABLE_PATH environment variable

API Endpoints (Optional)

The skill may expose an HTTP endpoint for TTS generation:

POST /api/tts
Content-Type: application/json

{
  "text": "Text to speak",
  "voice": "en-US-GuyNeural",
  "rate": "+0%",
  "pitch": "+0Hz"
}

This endpoint is optional and only used when pre-generated audio files are not available.

Security Considerations

File System Access

  • Reads from: public/projects/<projectId>/
  • Writes to: public/projects/<projectId>/audio/, public/video/
  • Creates temporary directories for frame storage
  • Cleans up temporary files after rendering

Network Access

  • Starts local HTTP server on port 5175+ (configurable)
  • Connects to Microsoft Edge TTS service (external)
  • No external API keys required for basic functionality

Process Execution

  • Spawns child processes for: Vite dev server, FFmpeg encoding
  • Uses execSync for: browser detection, audio generation trigger
  • All commands are predefined and not user-controllable

Environment Variables

Optional configuration:

  • PUPPETEER_EXECUTABLE_PATH: Custom browser path for Puppeteer
  • FASTMCP_LOG_LEVEL: Logging level (default: ERROR)

Project Structure

public/
  projects/
    <projectId>/
      <projectId>.json       # Project configuration
      footage/               # HTML/CSS media components
      audio/                 # Generated TTS audio files
        0.mp3, 1.mp3, ...
        0.json, 1.json, ...  # Word timing metadata
  video/
    render-<projectId>-landscape.mp4
    render-<projectId>-portrait.mp4

Usage Example

# 1. Generate audio for a project
pnpm generate-audio agentSaasPromoVideo

# 2. Preview in browser
pnpm dev

# 3. Render final video
pnpm render agentSaasPromoVideo

# 4. Render portrait version
pnpm render agentSaasPromoVideo --portrait

HTML Animation Guidelines

When creating HTML animations for video rendering, use the CSS variable timeline model.

Core Model

  • Renderer controls time: Puppeteer sets --t every frame.
  • Page only renders state: DOM = f(t).
  • No lifecycle animation APIs (play/start/reset) and no hidden runtime state.
  • Transition system handles entrance effects: Don't implement slide/fade transitions in HTML - use the project's transitionIn property instead.

✅ Required Patterns

  • Define timeline root:
  :root { --t: 0; }
  • Every animated property must derive from --t.
  • Always clamp normalized progress values:
  --p: clamp(0, calc((var(--t) - var(--start)) / var(--duration)), 1);
  • Express initial/ending states directly in CSS (seek-safe at any frame).
  • Use small deterministic JS only for content mapping (e.g., subtitle/text index from t).
  • Let transition system handle entrance: Focus on content animation, not entrance effects.

🚫 Forbidden Patterns

  • transition
  • animation / @keyframes
  • window.registerFrameAnimation(...)
  • requestAnimationFrame loops for timeline progression
  • Implicit time from Date.now() / performance.now() for visual state
  • Manual entrance transitions: Don't implement slide/fade in HTML - use transitionIn in project config
  • Fade-out effects: Elements should not disappear after animation completes. Use opacity: var(--p) instead of opacity: calc(var(--p) * (1 - var(--fade))) to keep elements visible at their final state.

Recommended Template

.element {
  --start: 0.5;
  --duration: 1;
  --p: clamp(0, calc((var(--t) - var(--start)) / var(--duration)), 1);

  opacity: var(--p);
  transform: translateY(calc((1 - var(--p)) * 20px));
}

Easing (without transition)

Use math on progress directly:

--p: clamp(0, calc((var(--t) - var(--start)) / var(--duration)), 1);
--ease-out: calc(1 - (1 - var(--p)) * (1 - var(--p)));
opacity: var(--ease-out);

JS Hook Pattern (text/content only)

<script>
  const labels = ['A', 'B', 'C'];
  const el = document.getElementById('label');

  window.onTimelineUpdate = (t) => {
    const idx = Math.floor(Math.max(0, t) / 1.2) % labels.length;
    el.textContent = labels[idx];
  };
</script>

Time Semantics (t vs globalTime)

  • onTimelineUpdate(t, globalTime) supports two time domains:

- t: clip-local time (resets to 0 when clip changes). This is the default for most HTML animations. - globalTime: continuous timeline across clips. Use only when an element must stay continuous through cross-clip transitions.

  • Do not assume t is media-local. If a media appears mid-clip, t may already be large when it first becomes visible.
  • For media-local behavior (e.g., toggle starts animating when this media appears), anchor from first visible globalTime and derive:

- local = globalTime - mediaStartGlobalTime

  • Keep fallback for compatibility:
  window.onTimelineUpdate = (t, globalTime) => {
    const g = Number.isFinite(globalTime) ? globalTime : t;
    // use `t` for normal clip-local animation, `g` only when continuity is required
  };

Determinism Checklist

  • Seeking to any t yields exactly one deterministic frame.
  • Animation state must not depend on "previous frame".
  • Cross-clip transition visuals should be continuous in both clips.
  • Final frame (t = totalDuration) must remain on the last clip (no wrap to first clip).

Limitations

  • Requires FFmpeg to be installed on the system
  • TTS generation requires internet connection (Microsoft Edge TTS)
  • Rendering is CPU-intensive and may take several minutes
  • Maximum TTS text length: ~1000 characters per clip
  • Frame capture requires sufficient disk space

Transparency Statement

This skill executes shell commands and spawns child processes for video rendering. All operations are limited to:

  1. Starting a local development server (Vite)
  2. Running FFmpeg for video encoding
  3. Launching Puppeteer for frame capture
  4. Detecting browser executables on the system

No arbitrary code execution or user input is passed to shell commands. All file paths and commands are predefined and validated.

平台分布

OpenClaw

97.49%
按下载量换算5,768

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

未展示

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills