Wechat 2d Render
Clone or update https://github.com/sxhzju/wechat-2d and render the default WeChat-style 2D chat motion video with Remotion. Use when users ask for 微信聊天动画, wechat 2d chat render, 微信视频消息动效, or exporting the default demo from the wechat-2d project.
Specification
- Skill ID
- vibe-motion/skills/wechat-2d-render
- Publisher
- vibe-motion
- Repository
- skills
- Installs
- 0
- Files
- 3
- Synced
- Sep 23, 2026
How to use it
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
vibe-motion/skills/wechat-2d-renderInstalls these files- SKILL.md
- assets/wechat-2d-demo.gif
- scripts/render_wechat_2d.sh
What this skill tells the agent
WeChat 2D Render
Workflow
- Use
scripts/render_wechat_2d.shfrom this skill. - Pass
workspace_diras the first argument when the user specifies a folder; otherwise use the current directory. - Pass
output_pathas the second argument when the user specifies output; otherwise useout/wechat-2d-transparent.mov. - Pass a props JSON path as the third argument when the user provides custom Remotion props; otherwise use
shared/project/render-presets/default.json. - Run the script and wait for completion.
- Return the final absolute output path printed by the script.
Command
bash scripts/render_wechat_2d.sh [workspace_dir] [output_path] [props_file]Installed Skill Resolution
Use the installed skill copy, not the source repo checkout:
skill_dir=""
for base in "${AGENTS_HOME:-$HOME/.agents}" "${CLAUDE_HOME:-$HOME/.claude}" "${CODEX_HOME:-$HOME/.codex}"; do
if [ -d "$base/skills/wechat-2d-render" ]; then
skill_dir="$base/skills/wechat-2d-render"
break
fi
done
[ -n "$skill_dir" ] || { echo "wechat-2d-render skill not found under ~/.agents, ~/.claude, or ~/.codex"; exit 1; }
bash "$skill_dir/scripts/render_wechat_2d.sh" "$(pwd)" "$(pwd)/out/wechat-2d-transparent.mov"Behavior
- Reuse local repo if
workspace_dir/wechat-2dexists; otherwise clone from GitHub. - Track remote default branch (
origin/HEAD) when updating an existing repo. - Install dependencies with
pnpm install; ifpnpmis missing, enable it throughcorepack. - Run the project Remotion scripts:
pnpm run remotion:ensure-browserREMOTION_OUTPUT=... REMOTION_PROPS_FILE=... pnpm run remotion:render- Default render target is the active composition from
shared/project/projectConfig.js, currently thewechat-chat-motionplugin viaScaffoldDemo30fps. - Default output is ProRes 4444 with
yuva444p10lepixel format and PNG image format, suitable for transparent-background workflows.
Project Notes
- The project uses a scaffold/plugin split:
preview/*for local UI controls and browser preview.remotion/*for Remotion entry wrappers.shared/scaffold/*for common runtime.shared/project/*for plugin and composition registry.shared/features/demoMotion/*for the WeChat chat scene.- Animation state must be deterministic per frame. Remotion renders frames in parallel and out of order, so do not rely on timers, mutable cursors, previous renders, or render order.
- Frame-specific data should be built from
{frame, fps, loop, sceneContext, pluginParams}inbuildSceneProps. - Keep
videoWidthandvideoHeightas layout props; use a props JSON file for custom sizes.
Requirements
gitnodecorepackorpnpm- network access for clone/update and dependency install
More from vibe-motion
Use this skill in a project
Open any RiverX project, search the Skills panel for vibe-motion/skills/wechat-2d-render, and install it in one click.
