← All skills
lit-typographic-motion
79 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a coding skill usually runs build and test commands.
By wjgoarxiv/litgravity (GitHub) · coding · 167 stars · scanned at commit 53899d5
Film director for a finished short film from a one-line request, made the same way every time with house styles, a scaffold, a storyboard board round, an original layered score and a QA gate.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README. Expected for a coding skill.
Found in 45 places.
Show 17 more
- plugin/skills/lit-typographic-motion/engine/node/blender.mjs, line 8
import { spawn } from "node:child_process"; - plugin/skills/lit-typographic-motion/engine/node/chrome.mjs, line 6
import { spawn, spawnSync } from "node:child_process"; - plugin/skills/lit-typographic-motion/engine/node/chrome.mjs, line 49
const probe = spawnSync(chrome, ["--version"], { encoding: "utf8", timeout: 15000 }); - plugin/skills/lit-typographic-motion/engine/node/cover-gate.mjs, line 9
import { spawnSync } from "node:child_process"; - plugin/skills/lit-typographic-motion/engine/node/cover-gate.mjs, line 102
const raw = spawnSync(ffmpeg, ["-v", "error", "-i", input, "-fps_mode", "passthrough", "-f", "rawvideo", "-pix_fmt", "rgba", "pipe:1"], { maxBuffer: 2 ** 31 }); - plugin/skills/lit-typographic-motion/engine/node/cover.mjs, line 13
import { spawnSync } from "node:child_process"; - plugin/skills/lit-typographic-motion/engine/node/cover.mjs, line 63
const r = spawnSync(img2webp, img2webpArgs({ files, fps, encode, out: file }), { encoding: "utf8", maxBuffer: 64 * 1024 * 1024 }); - plugin/skills/lit-typographic-motion/engine/node/cover.mjs, line 70
const r = spawnSync(gifski, ["--fps", String(fps), "--quality", "90", "--repeat", "0", "-o", file, ...files], { encoding: "utf8", maxBuffer: 64 * 1024 * 1024 }) - plugin/skills/lit-typographic-motion/engine/node/cover.mjs, line 180
const raw = spawnSync(ffmpeg, ["-v", "error", "-i", file, "-frames:v", "1", "-f", "rawvideo", "-pix_fmt", "rgba", "pipe:1"], { maxBuffer: 2 ** 30 }); - plugin/skills/lit-typographic-motion/engine/node/encode.mjs, line 5
import { spawn, spawnSync } from "node:child_process"; - plugin/skills/lit-typographic-motion/engine/node/encode.mjs, line 21
const probe = spawnSync(ffmpeg, ["-version"], { encoding: "utf8" }); - plugin/skills/lit-typographic-motion/engine/node/encode.mjs, line 29
const list = spawnSync(ffmpeg, ["-hide_banner", "-encoders"], { encoding: "utf8" }).stdout ?? ""; - plugin/skills/lit-typographic-motion/engine/node/encode.mjs, line 64
const r = spawnSync(cmd, args, { encoding: "utf8", maxBuffer: 64 * 1024 * 1024 }); - plugin/skills/lit-typographic-motion/engine/node/encode.mjs, line 93
const r = spawnSync(ffprobe, ["-v", "error", "-select_streams", "v:0", "-count_frames", "-show_entries", - plugin/skills/lit-typographic-motion/engine/node/host.mjs, line 7
import { spawnSync } from "node:child_process"; - plugin/skills/lit-typographic-motion/engine/node/pipeline.mjs, line 8
import { spawnSync } from "node:child_process"; - plugin/skills/lit-typographic-motion/engine/node/pipeline.mjs, line 85
const result = spawnSync(audio.python, [path.join(ENGINE_ROOT, "audio", "beat_grid.py"), audioFile, gridFile], { encoding: "utf8" });
and 25 more places
Downloads and installs other software
The author does not mention this. It runs automatically when the plugin is installed.
Found in 14 places.
Show 11 more
- plugin/skills/lit-typographic-motion/SKILL.md, line 159
| 21 | BLOCKED_NO_COVER_ENCODER | Install libwebp (`img2webp`, `dwebp`; `brew install webp`) or gifski. | - plugin/skills/lit-typographic-motion/engine/node/runtime.mjs, line 24
export const INSTALL_COMMAND = "npx @litfamily/litgravity runtime install motion"; - plugin/skills/lit-typographic-motion/engine/node/runtime.mjs, line 314
throw new Error(`pip install --require-hashes failed (${describeSpawn(pip)})`); - plugin/skills/lit-typographic-motion/engine/node/stage-serve.mjs, line 64
throw new BlockedError(EXIT.BLOCKED_DEPS_NOT_PREWARMED, `BLOCKED_DEPS_NOT_PREWARMED: the stage fonts are not in the LitGravity cache (${fontsDir(env)}); run npx - plugin/skills/lit-typographic-motion/engine/node/stage-serve.mjs, line 66
throw new BlockedError(EXIT.BLOCKED_FONT_FETCH, `BLOCKED_FONT_FETCH: font ${key} is ${check.problem} (${check.path}); run npx @litfamily/litgravity runtime inst - plugin/skills/lit-typographic-motion/engine/package.json, line 5
"description": "Pinned Node dependencies for the LitGravity lit-typographic-motion engine. Installed only by `npx @litfamily/litgravity runtime install motion` - plugin/skills/lit-typographic-motion/fonts/manifest.json, line 3
"note": "source bundled = shipped in this directory; reuse = the product's own lit-pptx file, verified against the hash recorded here; fetch = downloaded only b - plugin/skills/lit-typographic-motion/references/runtime.md, line 11
| librosa venv (Tier 2, optional) | `<cache>/audio-<digest>/` from `engine/audio/requirements.lock` with `pip install --require-hashes --only-binary=:all:` | `l - plugin/lib/python-pick.mjs, line 53
const install = platform === 'win32' ? 'winget install Python.Python.3.12, or python.org' : 'brew install python@3.14'; - plugin/lib/python-pick.mjs, line 61
detail: `python3 is ${base.version}, newer than ${dotted(PYTHON_NEWEST)}, and no python3.14 to python3.10 is on PATH. The pinned wheels stop at ${dotted(PYTHON_ - plugin/hooks/session-start.mjs, line 38
parts.push(`Update: LitGravity ${latest} is available (installed ${version}). Mention it once if the user asks about LitGravity; the update command is \`npx @li
Connects to the internet
This is disclosed by the author in the skill's SKILL.md or README.
Found in 5 places.
Show 2 more
Safer alternatives
Low-risk skills in the same category (coding) that look related. Check that one does what you need.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'lit-typographic-motion' ] || [ -L ~/.agents/skills/'lit-typographic-motion' ]; then echo 'A skill folder named lit-typographic-motion already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/wjgoarxiv/litgravity' "$d" && git -C "$d" checkout --quiet '53899d5885b11bc5b687f17c21aae0e380549874' -- 'plugin/skills/lit-typographic-motion' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugin/skills/lit-typographic-motion' ~/.agents/skills/'lit-typographic-motion' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'lit-typographic-motion' ~/.claude/skills/'lit-typographic-motion' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for wjgoarxiv/litgravity shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/wjgoarxiv/litgravity/)
Score history
| Date | Version | Score |
|---|
| 2026-11-10 | 53899d5 | 79 |
| 2026-11-07 | 99d1012 | 82 |