Token导航 LogoToken导航TokenDH.com
待分类操作浏览器github未标认证来源可访问许可证需确认审计通过

motion-canvas-agent运动画布 Agent

Agent Skill

motion-canvas-agent 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

674

周安装

27

GitHub Stars

44

下载量

218
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

请帮我安装这个 Agent Skill:motion-canvas-agent(运动画布 Agent)
来源仓库:https://github.com/videozero/skills
仓库路径:skills/motion-canvas-agent
安装命令:
npx skills add https://github.com/videozero/skills --skill motion-canvas-agent
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/videozero/skills --skill motion-canvas-agent

简介

用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合整理仓库状态与协作事项。

  • 适用于围绕代码变更、仓库维护或团队协作进行信息梳理的场景。
  • 通过 npx skills add 命令从 GitHub 仓库安装,需确认权限和维护状态。
  • 使用前建议核实是否会触发联网、命令执行或文件读写操作。
  • motion-canvas-agent 属于待分类类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Motion Canvas Agent Plugin

Full programmatic control of a running Motion Canvas editor via HTTP. Seek to any frame, capture screenshots, inspect the scene graph, change resolution/fps/background, and trigger rendering — all without browser automation.

Architecture

Agent (curl/script)  ──HTTP──▶  Vite Server (agent-plugin.ts)  ──HMR WS──▶  Browser (agent-client.ts)
                                      │                                           │
                                      ▼                                           ▼
                                screenshots/                               Player + Renderer
                                (PNG files)                                + ProjectMetadata

Setup

1. Copy plugin files into your project

  • assets/agent-plugin.ts → project root
  • assets/agent-client.tssrc/

2. vite.config.ts

import {defineConfig} from 'vite';
import motionCanvas from '@motion-canvas/vite-plugin';
import {agentPlugin} from './agent-plugin';

export default defineConfig({
  plugins: [
    motionCanvas(),
    agentPlugin({screenshotDir: './screenshots'}),
  ],
});

3. project.ts

import {makeProject} from '@motion-canvas/core';
import {agentClient} from './agent-client';

export default makeProject({
  plugins: [agentClient()],
  scenes: [...],
});

4. Start + open browser

npm start
# Open http://localhost:9000 in a browser

HTTP API Reference

Base URL: http://localhost:9000/__agent

Playback Control

MethodEndpointBodyResponse
GET/status{connected, frame, duration, fps, paused, sceneName, errors}
POST/seek{frame: 120}{ok, frame}
POST/next-frame{ok, frame}
POST/prev-frame{ok, frame}
POST/play{ok}
POST/pause{ok}

Screenshots

MethodEndpointBodyResponse
POST/screenshot{name: "my-shot"}{ok, path, frame}
POST/screenshot-base64{ok, data, frame}

Settings

MethodEndpointBodyResponse
GET/settings{background, range, size, previewFps, previewScale, renderingFps, renderingScale}
POST/settings/background{color: "#0F172A"}{ok}
POST/settings/range{start: 0, end: 300}{ok}
POST/settings/size{width: 1920, height: 1080}{ok}
POST/settings/preview-fps{fps: 30}{ok}
POST/settings/preview-scale{scale: 0.5}{ok}
POST/settings/rendering-fps{fps: 60}{ok}
POST/settings/rendering-scale{scale: 2}{ok}

Rendering

MethodEndpointBodyResponse
POST/render{fps?, range?}{ok, message}
POST/render/abort{ok, message}

Scene Info

MethodEndpointBodyResponse
GET/scenes{scenes: [{name}], currentScene}
GET/scene-graph{scene, graph} (recursive node tree)
GET/threads{scene, slides: [{name, id}]}

Errors

MethodEndpointBodyResponse
GET/errors{errors: [{message, stack}]}
POST/clear-errors{ok}

Scene Graph Format

GET /__agent/scene-graph returns a recursive tree:

{
  "scene": "my-scene",
  "graph": {
    "type": "View2D",
    "key": "my-scene/View2D[1]",
    "position": {"x": 960, "y": 540},
    "size": {"width": 1920, "height": 1080},
    "children": [
      {
        "type": "Rect",
        "position": {"x": 0, "y": 0},
        "size": {"width": 400, "height": 300},
        "fill": "#1E293B",
        "children": [
          {
            "type": "Txt",
            "text": "Hello World"
          }
        ]
      }
    ]
  }
}

Each node includes: type, key, position, size, opacity (if not 1), fill, text (if applicable), and children.

AI Agent Workflow

# 1. Check connection
curl -s localhost:9000/__agent/status

# 2. Set resolution
curl -s -X POST localhost:9000/__agent/settings/size \
  -H "Content-Type: application/json" -d '{"width": 1920, "height": 1080}'

# 3. Seek to a frame
curl -s -X POST localhost:9000/__agent/seek \
  -H "Content-Type: application/json" -d '{"frame": 60}'

# 4. Screenshot
curl -s -X POST localhost:9000/__agent/screenshot \
  -H "Content-Type: application/json" -d '{"name": "check-1"}'
# → Read ./screenshots/check-1.png

# 5. Inspect scene graph
curl -s localhost:9000/__agent/scene-graph

# 6. Check which scene we're in
curl -s localhost:9000/__agent/scenes

# 7. Check errors
curl -s localhost:9000/__agent/errors

# 8. Change background
curl -s -X POST localhost:9000/__agent/settings/background \
  -H "Content-Type: application/json" -d '{"color": "#000000"}'

# 9. Trigger render
curl -s -X POST localhost:9000/__agent/render

Security

  • Localhost only: The agent API runs on the Vite dev server which binds to localhost by default. Do not expose it to the network (avoid --host 0.0.0.0 in production)
  • Screenshot paths: The screenshot name is sanitized — path separators and dots are stripped, and the resolved path is verified to stay inside the configured screenshotDir
  • Scene graph text: Text content extracted from the scene graph is sanitized (control characters stripped, truncated to 100 chars). Treat scene graph data as untrusted when processing it

How It Works

  • Runtime plugin (agentClient()) uses Plugin.player(), Plugin.renderer(), and Plugin.project() callbacks to capture the Player, Renderer, and Project instances
  • Player provides seek, frame stepping, playback control, current scene, duration
  • ProjectMetadata provides shared (background, range, size), preview (fps, scale), and rendering (fps, scale, exporter) settings via .get() / .set()
  • Renderer provides render(settings) and abort() for export
  • Scene graph is traversed via scene.getView().peekChildren() recursively, serializing type, position, size, fill, text, opacity
  • Communication uses Vite's HMR WebSocket

Files

FileCopy toPurpose
assets/agent-plugin.tsProject rootVite plugin — HTTP endpoints + WS relay
assets/agent-client.tssrc/Runtime plugin — Player/Renderer/Project control + canvas capture

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.38%
按下载量换算81

Claude

29.77%
按下载量换算65

Cursor

17.8%
按下载量换算39

Gemini CLI

8.69%
按下载量换算19

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills