Easel is an open-source content workspace and AI agent for managing social media from trend discovery through planning, content creation, publishing, and performance analysis. It is intended for social media creators and maintains separate account profiles, content projects, platform adaptations, and publishing records. The catalogue skills support these content and publishing workflows.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ZJU-REAL/Easel --skill video-productiongit clone --depth 1 https://github.com/ZJU-REAL/EaselWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zju-real/easel/video-production)<a href="https://agentmods.dev/skills/zju-real/easel/video-production"><img src="https://agentmods.dev/badge/skills/zju-real/easel/video-production/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zju-real/easel/video-production"><img src="https://agentmods.dev/badge/skills/zju-real/easel/video-production.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00199 | $0.02356 |
| Opus 5.5 | $0.00080 | $0.00942 |
| Sonnet 5.5 | $0.00040 | $0.00471 |
| Haiku 4.5 | $0.00020 | $0.00236 |
Grade A, and why
video-production scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 131 lines — stays where its author put it; the contents beside it link to each section on GitHub.
整片视频产线(video-production)
把一支原片(口播 / 独白)做成包装级成片:摸底 → 转录 → 分场 → 设计表 → 脚手架 → 写码 → 验证 → 预览 → 渲染 → 交付。质量不靠自觉,靠可执行的门。
产线 SDK 已内置在本技能
vendor/video-pipeline-sdk/(随 Easel 进仓、可复现、可在其基础上改)。 首次使用先跑一次依赖还原:bash <ROOT>/skills/builtin/video-production/vendor/video-pipeline-sdk/deps/bootstrap.sh(装 Remotion 渲染引擎,--ignore-scripts;node_modules 不入库)。
什么时候用
用户说「用视频产线做一支整片 / 把这段素材做成片 / 整片包装」时使用。
开工前检查(缺源片不要动工)
- 源片必需:必须有可读的本地路径。用户没给 → 先向用户要(要路径,或提示他把文件拖进聊天 / 拷到内容库收件箱);严禁用占位素材开工
- 主题与基调(
--brief)建议要一句;现成材料(转录稿 / 分场 / 设计表)有就给、没有就按流程走(流程会在需要时停下)
转录三级策略(选一个,优先级从上到下)
产线第二步要把口播里说的话转成带时间轴的文字稿。三级降级,越靠前越省:
- tier1 现成稿(最优):源片自带字幕/台词就用它——
start --transcript 路径。.srt/.vtt会自动转成段级transcript.json(保留时间轴);.json(segments 结构)直接用。Easel 做的口播剧一般自带 SRT,走这条即可,不下模型。 - tier2 云端 ASR API:没现成稿但配了
SILICONFLOW_API_KEY(env)→ 自动调硅基流动(默认XingChenAGI/XingChenGSR-V1.0,可用SILICONFLOW_ASR_MODEL/SILICONFLOW_BASE_URL覆盖)。key 只从环境变量读,勿写进命令/仓库。 - tier3 本地 whisper(兜底):都没有才用本地 large-v3(首次下约 3GB)。需
faster-whisper。
让用户看得见(产物贴进对话 · 免上传)
对话消息直接支持图片与视频(站内媒体通道 /api/media/,零上传、零改前端)。产物落盘后,把它们贴进消息、再配卡片:
- 图片:Markdown 图片语法(
!+ 方括号说明文字 + 圆括号地址),地址写/api/media/<outputs 相对路径,逐段 URL 编码>(示例文件名:视频产线/<时间戳>/run/preview/f60.png) - 视频:
<video src="/api/media/<outputs 相对路径>" controls style="max-width:420px">标签 - 文件:Markdown 链接语法(方括号文字 + 圆括号地址)指向
/api/media/<outputs 相对路径>,或把要点直接摘进消息
三处必用:
- 设计表确认卡之前:先贴设计表要点摘要 + 全文链接(用户"看得见才审得动")
- 预览确认卡之前:把
run/preview/*.png逐张贴成图片,再出预览卡 - 交付时:成片贴成 video 标签(
视频产线/<时间戳>/out/final.mp4),附门报告链接
素材怎么给(用户问"怎么把视频给你"时这样答)
- 首选 · 本地路径:文件放本机任意位置,对话里报路径即可(例:
E:/clips/raw.mp4)。无大小限制、不复制文件 - 小文件可直接拖进聊天上传(进内容库收件箱);大文件不走上传——直接报本地路径(见第 1 条)
- 也可先手动拷进
outputs/_inbox/再报路径
快速开始
python <ROOT>/skills/builtin/video-production/scripts/video_pipeline.py doctor
python <ROOT>/skills/builtin/video-production/scripts/video_pipeline.py start --source "C:/path/raw.mp4" --brief "主题一句话"
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- EASEL-META.md 717 B
- scripts/video_pipeline.py 14 KB runs code
- vendor/VENDOR.md 4.0 KB
- vendor/video-pipeline-sdk/.gitattributes 12 B
- vendor/video-pipeline-sdk/.gitignore 307 B
- vendor/video-pipeline-sdk/assets/cards/index.html 7.1 KB
- vendor/video-pipeline-sdk/assets/fonts/MaShanZheng-Regular.ttf 5721 KB
- vendor/video-pipeline-sdk/assets/fonts/OFL.txt 4.3 KB
- vendor/video-pipeline-sdk/assets/fonts/README.md 519 B
- vendor/video-pipeline-sdk/assets/fx/common.tsx 1.7 KB
- vendor/video-pipeline-sdk/assets/fx/FxAurora.tsx 3.4 KB
- vendor/video-pipeline-sdk/assets/fx/FxBehindMask.tsx 3.4 KB
- vendor/video-pipeline-sdk/assets/fx/FxCardA.tsx 8.1 KB
- vendor/video-pipeline-sdk/assets/fx/FxCardB.tsx 15 KB
- vendor/video-pipeline-sdk/assets/fx/FxCards.tsx 4.5 KB
- vendor/video-pipeline-sdk/assets/fx/FxDataCard.tsx 4.7 KB
- vendor/video-pipeline-sdk/assets/fx/FxFireflies.tsx 2.6 KB
- vendor/video-pipeline-sdk/assets/fx/FxKinetic.tsx 5.1 KB
- vendor/video-pipeline-sdk/assets/fx/FxLeak.tsx 1.2 KB
- vendor/video-pipeline-sdk/assets/fx/FxMatch.tsx 5.2 KB
- vendor/video-pipeline-sdk/assets/fx/FxPanel3D.tsx 5.0 KB
- vendor/video-pipeline-sdk/assets/fx/FxShatter.tsx 3.4 KB
- vendor/video-pipeline-sdk/assets/fx/FxStockData.tsx 4.7 KB
- vendor/video-pipeline-sdk/assets/fx/FxStockFireflies.tsx 2.5 KB
- vendor/video-pipeline-sdk/assets/fx/FxStockLeak.tsx 1.2 KB
- vendor/video-pipeline-sdk/assets/fx/FxStockWords.tsx 2.3 KB
- vendor/video-pipeline-sdk/assets/fx/FxSwitch.tsx 2.5 KB
- vendor/video-pipeline-sdk/assets/fx/FxText.tsx 3.1 KB
- vendor/video-pipeline-sdk/assets/fx/FxWords.tsx 2.1 KB
- vendor/video-pipeline-sdk/assets/luts/README.md 566 B
- vendor/video-pipeline-sdk/assets/sfx/README.md 689 B
- vendor/video-pipeline-sdk/assets/sfx/SOURCES-mixkit.json 2.4 KB
- vendor/video-pipeline-sdk/assets/stock-ledger.json 3.0 KB
- vendor/video-pipeline-sdk/ATTRIBUTIONS.md 1.4 KB
- vendor/video-pipeline-sdk/CHANGELOG.md 6.2 KB
- vendor/video-pipeline-sdk/deps/bootstrap.ps1 1.5 KB runs code
- vendor/video-pipeline-sdk/deps/bootstrap.sh 2.1 KB runs code
- vendor/video-pipeline-sdk/deps/DEPS.md 1.6 KB
- vendor/video-pipeline-sdk/deps/remotion/package-lock.json 186 KB
- vendor/video-pipeline-sdk/deps/remotion/package.json 698 B
- vendor/video-pipeline-sdk/gates/aggregate.py 5.6 KB runs code
- vendor/video-pipeline-sdk/gates/check_audio.py 1.4 KB runs code
- vendor/video-pipeline-sdk/gates/check_dup.py 3.2 KB runs code
- vendor/video-pipeline-sdk/gates/check_frames.py 3.9 KB runs code
- vendor/video-pipeline-sdk/gates/check_layout.py 2.5 KB runs code
- vendor/video-pipeline-sdk/gates/check_match.py 4.0 KB runs code
- vendor/video-pipeline-sdk/gates/check_meta.py 2.1 KB runs code
- vendor/video-pipeline-sdk/gates/check_timeline.py 2.6 KB runs code
- vendor/video-pipeline-sdk/gates/check_transitions.py 3.0 KB runs code
- vendor/video-pipeline-sdk/gates/fixtures/checks.json 404 B
- vendor/video-pipeline-sdk/gates/fixtures/layout_bad.json 259 B
- vendor/video-pipeline-sdk/gates/fixtures/layout_ok.json 584 B
- vendor/video-pipeline-sdk/gates/fixtures/match.json 994 B
- vendor/video-pipeline-sdk/gates/fixtures/proj.json 431 B
- vendor/video-pipeline-sdk/gates/fixtures/ref.json 136 B
- vendor/video-pipeline-sdk/gates/fixtures/scenes_bad.json 447 B
- vendor/video-pipeline-sdk/gates/fixtures/scenes_clean.json 584 B
- vendor/video-pipeline-sdk/gates/fixtures/timeline_bad.json 136 B
- vendor/video-pipeline-sdk/gates/fixtures/timeline_ok.json 137 B
- vendor/video-pipeline-sdk/gates/selftest.ps1 2.4 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago Changed acd7231b78d4
- 27d ago Changed · +3 lines · +99 tokens per session 11c89bdc8127
- 1mo ago First seen · 128 lines · 100 tokens per session scan A 8b9bd228839d
video-production is a skill published in the GitHub repository ZJU-REAL/Easel (3,795 stars, last pushed yesterday), licensed Apache-2.0. It adds 199 tokens to every session and 2,356 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-18.
Other skills, from other repositories
jacky-motion2-0
A workflow for turning a Chinese spoken script and matching SRT subtitle file into a single 16:9 HTML information animation. SRT is a subtitle file that stores text with start and end times; the animation follows those times and adds recorded-screen placeholders when needed.
p-video-2-pro-reference
Use when someone wants one cinematic clip that locks a subject from references — a product still, character, clip, or voice — using image or video references plus optional audio kept as the soundtrack or used as guidance. Not for text-only generation, 1080p, or drafts.
p-video
Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs cinematic generation, highest quality, tight lip-sync, or imported audio at 1080p.
interactive-explainer
Use when someone wants an educational explainer with a host and characters — history or science shorts with dialogue, not voiceover-only B-roll.
visual-transition-reel
Use when someone wants a montage with transitions between shots — action-sequence reel or multi-scene piece where narration is optional.
p-image-edit
Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits.