Guizang Social Cards
op7418/guizang-social-card-skill
Produces social card sets for Xiaohongshu and WeChat: carousels, Live Photo motion cards and puzzle layouts, and WeChat cover pairs, rendered from single-file HTML.
Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither.
$ npx skills add nodetool-ai/nodetool --skill color-motion -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nodetool-ai/nodetool color-motion --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/system-skills/color-motion .claude/skills/color-motion && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "color-motion" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/color-motion into .claude/skills/color-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "color-motion", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/color-motionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nodetool-ai/nodetool --skill color-motion -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nodetool-ai/nodetool color-motion --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/system-skills/color-motion .agents/skills/color-motion && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "color-motion" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/color-motion into .agents/skills/color-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "color-motion", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nodetool-ai/nodetool --skill color-motion -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nodetool-ai/nodetool color-motion --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/system-skills/color-motion .cursor/skills/color-motion && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "color-motion" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/color-motion into .cursor/skills/color-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "color-motion", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nodetool-ai/nodetool.git --path packages/system-skills/color-motion--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nodetool-ai/nodetool --skill color-motion -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nodetool-ai/nodetool color-motion --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/system-skills/color-motion .gemini/skills/color-motion && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "color-motion" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/color-motion into .gemini/skills/color-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "color-motion", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nodetool-ai/nodetool color-motionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nodetool-ai/nodetool --skill color-motion -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/system-skills/color-motion .github/skills/color-motion && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "color-motion" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/color-motion into .github/skills/color-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "color-motion", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nodetool-ai/nodetool --skill color-motion -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nodetool-ai/nodetool color-motion --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/system-skills/color-motion .opencode/skills/color-motion && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "color-motion" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/color-motion into .opencode/skills/color-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "color-motion", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
color-motionChoose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither.
Color Motion is an agent skill from nodetool-ai/nodetool. Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither. Use when building a look, matching shots, animating colour, or fixing muddy, washed-out, or banded frames.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative. The repository describes itself as: Agent-first Creative Workspace. The licence is AGPL-3.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 339f069. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Color Motion loads about 2.3k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 1,251 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from nodetool-ai/nodetool at commit 339f069, republished under its AGPL-3.0 licence (© nodetool-ai). 1,251 words, ~2,297 tokens.
.claude/skills/color-motion/SKILL.md (or your agent's skills folder).Choose colours for shapes and type, then grade the picture around them. Authored colours, gradient stops, and effect fields can move through animation style tracks as well as the preset grade channels.
motion-graphics carries the op contract for the calls named here.
motion-direction decides whether colour is one of the channels this piece
moves at all.
One primary, one accent, two or three neutrals. Get depth from lightness and chroma, not from more hues — extra hues fight for attention and read as amateur.
Reason in OKLCH while you choose (oklch(L C H): perceptual lightness, chroma,
hue angle) because holding L and C while rotating H gives hues of equal visual
weight, which HSL cannot do. Prefer hex in the document for static colours;
the shared parser also accepts named, RGB, and HSL colours in style tracks.
On dark plates make the accent pop with high lightness and moderate chroma rather than maximum saturation. A blown-out saturated accent vibrates on black.
Tint the neutrals a little toward the primary hue. Pure grey next to coloured elements reads as disconnected.
| Surface | Field |
|---|---|
| Text | textStyle.color, plus stroke.color, shadow.color, background.color |
| Text, gradient | textStyle.fill — wins over color when set |
| Shape | shapeStyle.fill and stroke, or shapeStyle.fillStyle for a gradient |
| Captions | captionStyle.color, activeColor, outline, background |
| Transition | set_transition dipToColor color |
| Picture | set_effects — color, curves, levels, liftGammaGain, lut, stylize, generator |
A gradient fill is {type: "linear", angle, stops}, {type: "radial", stops} or
{type: "solid", color}. Stop offsets are 0..1, so a fill is independent of the
shape's size:
{"op": "add_shape_clip", "shape": {"kind": "rect", "x": 0, "y": 0,
"width": 1, "height": 1,
"fillStyle": {"type": "linear", "angle": 90, "stops": [
{"offset": 0, "color": "#0b0f1a"}, {"offset": 1, "color": "#1b2440"}]}}}Use styleTracks on a stored animation to interpolate authored colours or
gradient fields. Supported targets include text.color, shape.fill,
shape.stroke, text.fill.angle, text.fill.stops.0.color,
shape.fillStyle.angle, and shape.fillStyle.stops.0.color or .offset.
The target must name a field the clip already has. text.color is hidden by a
text gradient; shape.fill is hidden by shapeStyle.fillStyle. Colour
keyframes accept supported CSS colours, including hex, RGB, HSL, and names.
Effect color tracks can address effect.<effect-id>.colorA or .colorB on
generators, and .color on drop shadow, chroma key, or the color-using stylize
modes: lightRays, lensFlare, innerShadow, innerGlow, edgeHighlight,
and lightLeakOverlay. The glow renderer does not use glow.color.
The field must already exist on the effect. A string field such as mode is
not a color target.
For a document with a text gradient, this animation moves its first stop:
{"id": "colour-shift", "role": "in", "preset": "fade", "durationMs": 600,
"styleTracks": [{"target": "text.fill.stops.0.color", "keyframes": [
{"t": 0, "value": "#8bd5ff"}, {"t": 1, "value": "#ffffff"}]}]}edit_timeline's animate_clip input does not accept styleTracks; it
discards that field. Author these animations in the whole document through
set_timeline_document, which validates before writing and snapshots the
previous document. See motion-graphics for that call's contract. For a
targeted edit through animate_clip, use numeric grade presets or custom
curves. Three useful approaches:
hue (degrees, adds), saturation (0..4,
multiplies), brightness (−1..1, adds), contrast (0..4, multiplies),
temperature and tint (−1..1, add) are all animatable properties. A
custom curve on saturation from 0 to 1 is a colour bloom; colorFade is
that as a preset, and hueShift is a full wheel per loop cycle.Interpolating hue by rotation is not the same as interpolating between two
colours: hue takes the wheel's path, so blue to amber travels through green
unless you go the other way with a negative value.
set_effects replaces the whole chain. Spatial, stylize, generator, and LUT
steps follow list order. The renderer aggregates legacy colour and blur fields
into later passes, so reordering two color effects does not create two
separate grades. Use a separate adjustment clip for a shared look that must
follow individual shot corrections.
Choose adjustments in this order, then judge the final render:
levels — set the black and white points first.color with brightness, temperature and tint — exposure and cast.curves or color contrast — the tonal range.color saturation and hue — midtone colour.liftGammaGain — separate shadow and highlight colour. Keep it subtle.lut — paste the contents of a 3D .cube table into cube and set
intensity for the mix. 1D tables are refused. A LUT's domain and table
values may extend outside 0..1; the renderer clamps the final colour after
interpolation.vignette, and any glow, to finish the look.Neutral values are the identity: brightness 0, contrast 1, saturation 1,
hue 0, gamma 1, lift [0,0,0], gain [1,1,1]. A lut effect requires
the complete .cube text.
Grade every shot in a sequence the same way, or they will not cut together. When one shot needs its own correction, correct it toward the others first and apply the shared look after.
preview_timeline_frame uses Canvas 2D pixel passes for the supported effect
chain, including colour grading, LUTs, stylize modes, generators, and dither.
Compare a frame at the same timecode with the GPU render when judging a subtle
effect or a translucent edge. A missing scratch surface appears in the frame's
degraded report. The frame lists unsupported effect types in
effects_not_applied; validate_timeline reports them as unknown_effect.
Compositing blends stored encoded-sRGB channel values. It does not linearize them before combining layers. Judge a 50% blend by that output, rather than expecting a linear-light midpoint.
validate_timeline reports text_illegible for type under 2.5% of frame height
or under a 3:1 contrast ratio against its own background plate or a full-frame
shape behind it. The check refuses to guess: a colour it cannot parse, a
translucent plate, gradient-filled type or a backdrop it cannot prove is behind
the text produces no finding at all. A silent pass is not a pass — look at
the frame.
Three fixes, cheapest first: a background scrim on the text style, a stroke
under the glyphs, or a shape clip at 40–60% black between the picture and the
text. The scrim goes on a track index between them, because the lowest index
draws on top.
A wide gradient across a dark frame can band. Add
{"type":"stylize","mode":"dither","enabled":true,"amount":1,"seed":4}
after the gradient, with a fixed seed for repeatable frames. Dither reduces
visible 8-bit steps; it cannot recover precision already lost in source media
or guarantee that a video encoder keeps the noise. You can also shorten the
gradient span or bring its stops closer in lightness. A generator effect with
mode: "noise" or "fractal" makes a visible texture when that is the look,
not just a banding fix.
A gradient that reads grey in the middle has stops that pass through low chroma. Add a third stop at the midpoint, chosen with its chroma held up, rather than trusting the two-stop path.
Colour carries the same three-layer ranking motion does. The hero can hold the
only saturated accent in the frame while the bed sits desaturated under a color
effect at saturation 0.6 — a hierarchy the eye reads before any movement
starts. A flash emphasis (a brightness spike) is the loudest colour event
available; one per piece.
© nodetool-ai, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in packages/system-skills/color-motion of nodetool-ai/nodetool.
Open the folder on GitHubat commit 339f069
Color Motion next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Color Motion this skillnodetool-ai/nodetool | 560 | — | ~2.3k | Automated safety check: Pass | AGPL-3.0 | |
| Guizang Social Cardsop7418/guizang-social-card-skill | 7.4k | 1 repos | ~7.8k | Automated safety check: Pass | AGPL-3.0 | |
| Weekly Changelog Videoheygen-com/hyperframes | 60k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Anthropic Brand Stylinganthropics/skills | 180k | 30 repos | ~559 | Automated safety check: Pass | Apache-2.0 | |
| MoneyPrinterTurbo Video Generatorharry0703/MoneyPrinterTurbo | 129k | — | ~2.1k | Automated safety check: Warn | MIT | |
| HyperFrames Media Useheygen-com/hyperframes | 60k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 |
op7418/guizang-social-card-skill
Produces social card sets for Xiaohongshu and WeChat: carousels, Live Photo motion cards and puzzle layouts, and WeChat cover pairs, rendered from single-file HTML.
heygen-com/hyperframes
Turns a weekly changelog markdown file into a branded HyperFrames video with voiceover, animated mock-UI scenes and captions, using fonts, background and scripts bundled in the skill.
anthropics/skills
Applies Anthropic's brand colors and fonts to artifacts such as PowerPoint slides, using fixed hex values for text and accents, Poppins headings and Lora body text.
harry0703/MoneyPrinterTurbo
Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
EverettFish/holo-card-studio
Create collectible holographic foil cards and two-image lenticular flip cards with AI-generated full-color ukiyo-e and colored sumi-e anime artwork, layered Blender scenes, renders, GLB export, and…
nodetool-ai/nodetool
Cut a NodeTool timeline to music and shape its pacing — detect the beat grid, place cuts on phrases, pick a cut type, build speed ramps with time remap, and give the piece an arc.
nodetool-ai/nodetool
Add and animate a consistent text layer on an existing NodeTool timeline.
nodetool-ai/nodetool
Write a shootable, precisely timed commercial beat sheet and store it as a NodeTool storyboard, with a consistent entity roster behind every shot.
nodetool-ai/nodetool
Direct ElevenLabs speech, dialogue, sound effects and music — the bracketed audio tags v3 acts on and why the voice decides whether a tag lands, stability as the delivery dial, punctuation instead…
nodetool-ai/nodetool
Stage the frame on a NodeTool timeline — grids, focal placement, safe areas per aspect ratio, depth layers and parallax, camera moves, and where elements enter and leave.
nodetool-ai/nodetool
Prompt OpenAI's GPT Image 2 — the five-slot Scene/Subject/Details/Use case/Constraints template it responds to, the change-versus-preserve shape for edits, labelled multi-image compositing, and how…
Categories
Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither. Color Motion is an agent skill from nodetool-ai/nodetool. Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither.
Color Motion fits situations like: building a look; animating colour.
Run `npx skills add nodetool-ai/nodetool --skill color-motion -a claude-code`. Or copy the skill folder (packages/system-skills/color-motion in nodetool-ai/nodetool) into .claude/skills/color-motion in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nodetool-ai/nodetool --skill color-motion -a codex`. Or copy the skill folder (packages/system-skills/color-motion in nodetool-ai/nodetool) into .agents/skills/color-motion in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nodetool-ai/nodetool --skill color-motion -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/color-motion, .gemini/skills/color-motion, .github/skills/color-motion and .opencode/skills/color-motion in your project.
SKILL.md names no scripts, command-line tools or credentials: Color Motion is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Color Motion is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Color Motion: Guizang Social Cards (op7418/guizang-social-card-skill, 7.4k stars), Weekly Changelog Video (heygen-com/hyperframes, 60k stars), Anthropic Brand Styling (anthropics/skills, 180k stars) and MoneyPrinterTurbo Video Generator (harry0703/MoneyPrinterTurbo, 129k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nodetool-ai (a GitHub organization) maintains it in nodetool-ai/nodetool, which has 560 GitHub stars. The repository holds 127 skills in this directory. The repository was last updated on October 10, 2026.
Source: nodetool-ai/nodetool on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.