
Wechat 2d Render
Render transparent WeChat-style 2D motion assets from the wechat-2d repo using Node, pnpm, and a JSON render preset.
Install
npx skills add https://github.com/vibe-motion/skills --skill wechat-2d-renderWhat is this skill?
- Bash workflow clones or updates sxhzju/wechat-2d, then drives a render with configurable props JSON
- Default output path out/wechat-2d-transparent.mov with preset shared/project/render-presets/default.json
- Auto-enables pnpm via corepack when pnpm is missing
- Requires git and node; fails fast with clear errors if tooling is absent
Adoption & trust: 1 installs on skills.sh; 645 GitHub stars; 0/3 security scanners passed (skills.sh audits).
Recommended Skills
Video Editagentspace-so/runcomfy-agent-skills
Image To Videoagentspace-so/runcomfy-agent-skills
Image Editagentspace-so/runcomfy-agent-skills
Flux Kontextagentspace-so/runcomfy-agent-skills
Nano Banana 2agentspace-so/runcomfy-agent-skills
Nano Banana Editagentspace-so/runcomfy-agent-skills
Journey fit
Primary fit
Shelf is Grow/content because the output is a finished motion file for WeChat and social distribution rather than core app code. Content subphase covers producing campaign-ready visual assets after the product exists and you are publishing in the WeChat ecosystem.
Common Questions / FAQ
Is Wechat 2d Render safe to install?
skills.sh reports 0 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Wechat 2d Render
#!/usr/bin/env bash set -euo pipefail REPO_URL="${REPO_URL:-https://github.com/sxhzju/wechat-2d.git}" REPO_DIR_NAME="${REPO_DIR_NAME:-wechat-2d}" WORKSPACE_DIR="${1:-$PWD}" OUTPUT_PATH="${2:-out/wechat-2d-transparent.mov}" PROPS_FILE="${3:-shared/project/render-presets/default.json}" if ! command -v git >/dev/null 2>&1; then echo "[Error] git is required." >&2 exit 1 fi if ! command -v node >/dev/null 2>&1; then echo "[Error] node is required." >&2 exit 1 fi ensure_pnpm() { if command -v pnpm >/dev/null 2>&1; then return 0 fi if ! command -v corepack >/dev/null 2>&1; then echo "[Error] pnpm is required. Install pnpm or use a Node.js distribution with corepack." >&2 exit 1 fi echo "[Skill] pnpm not found; enabling pnpm through corepack" corepack enable pnpm } mkdir -p "$WORKSPACE_DIR" cd "$WORKSPACE_DIR" if [ -d "$REPO_DIR_NAME/.git" ]; then echo "[Skill] Reusing existing repo: $REPO_DIR_NAME" git -C "$REPO_DIR_NAME" fetch --all --prune DEFAULT_BRANCH="$(git -C "$REPO_DIR_NAME" ls-remote --symref origin HEAD 2>/dev/null | awk '/^ref:/ {sub("refs/heads/", "", $2); print $2; exit}')" if [ -z "$DEFAULT_BRANCH" ]; then DEFAULT_BRANCH="main" fi git -C "$REPO_DIR_NAME" checkout "$DEFAULT_BRANCH" git -C "$REPO_DIR_NAME" pull --ff-only origin "$DEFAULT_BRANCH" else echo "[Skill] Cloning repo: $REPO_URL" git clone "$REPO_URL" "$REPO_DIR_NAME" fi cd "$REPO_DIR_NAME" if [ ! -f package.json ]; then echo "[Error] package.json not found in $(pwd)" >&2 exit 1 fi if [ ! -f "$PROPS_FILE" ]; then echo "[Error] props file not found: $PROPS_FILE" >&2 exit 1 fi ensure_pnpm echo "[Skill] Installing dependencies" pnpm install mkdir -p "$(dirname "$OUTPUT_PATH")" echo "[Skill] Preparing shared Remotion browser cache" pnpm run remotion:ensure-browser echo "[Skill] Rendering WeChat 2D motion" REMOTION_OUTPUT="$OUTPUT_PATH" \ REMOTION_PROPS_FILE="$PROPS_FILE" \ pnpm run remotion:render ABS_OUTPUT="$(cd "$(dirname "$OUTPUT_PATH")" && pwd)/$(basename "$OUTPUT_PATH")" echo "[Skill] Render completed: $ABS_OUTPUT" --- name: wechat-2d-render description: 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. --- # WeChat 2D Render ## Workflow 1. Use `scripts/render_wechat_2d.sh` from this skill. 2. Pass `workspace_dir` as the first argument when the user specifies a folder; otherwise use the current directory. 3. Pass `output_path` as the second argument when the user specifies output; otherwise use `out/wechat-2d-transparent.mov`. 4. Pass a props JSON path as the third argument when the user provides custom Remotion props; otherwise use `shared/project/render-presets/default.json`. 5. Run the script and wait for completion. 6. Return the final absolute output path printed by the script. ## Command ```bash 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: ```bash 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-2d` exists; otherwise clone from GitHub. - Track remote default branch (`origin/HEAD`) when updating an existing repo. - Install dependencies with `pnpm install`; if `pnpm` is missing, enable it through `corepack`. - Run the project Remotion scripts: - `pnpm run remotion:ensure-browser` - `REMOTION_OU