Agent skill

Color Motion

by nodetool-ai in nodetool-ai/nodetool

Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither.

AGPL-3.0Auto-check passedMedia & Creative

Install Color Motion

skills CLI
$ npx skills add nodetool-ai/nodetool --skill color-motion -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nodetool-ai/nodetool color-motion --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
color-motion
GitHub stars
560
Token cost
~2.3k tokens
SKILL.md length
1,251 words
Files
1
Skills in repo
127
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither.

  • Works in 3 steps: Animate the grade channels. hue… → Animate a style track. Move a shape or… → Cross-fade two clips. Overlap two shapes…
  • Building a look
  • SKILL.md covers Build a restrained palette, Where colour lives, Move authored colour and the… and Grade the picture, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

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.

When your agent uses it

  • Building a look
  • Animating colour

Example prompts

  • “/color-motion”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Animate the grade channels. hue (degrees, adds), saturation (0..4,
  2. Animate a style track. Move a shape or text colour, or a gradient stop,
  3. Cross-fade two clips. Overlap two shapes with different fills when the

What it can do on your machine

Read from SKILL.md and the folder at commit 339f069. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~60
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

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.

Safety

Auto-check passed

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.

SKILL.md

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.

Download SKILL.mdSave it as .claude/skills/color-motion/SKILL.md (or your agent's skills folder).
name
color-motion
description
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.
featured
true

Colour in Motion → palettes, grades and what can move

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.

Build a restrained palette

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.

Where colour lives

SurfaceField
TexttextStyle.color, plus stroke.color, shadow.color, background.color
Text, gradienttextStyle.fill — wins over color when set
ShapeshapeStyle.fill and stroke, or shapeStyle.fillStyle for a gradient
CaptionscaptionStyle.color, activeColor, outline, background
Transitionset_transition dipToColor color
Pictureset_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:

json
{"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"}]}}}

Move authored colour and the grade

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:

json
{"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:

  1. Animate the grade channels. 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.
  2. Animate a style track. Move a shape or text colour, or a gradient stop, when the clip already carries that style.
  3. Cross-fade two clips. Overlap two shapes with different fills when the change also needs a distinct texture or layout.

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.

Grade the picture

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:

  1. levels — set the black and white points first.
  2. color with brightness, temperature and tint — exposure and cast.
  3. curves or color contrast — the tonal range.
  4. color saturation and hue — midtone colour.
  5. liftGammaGain — separate shadow and highlight colour. Keep it subtle.
  6. 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.
  7. 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.

Show full SKILL.md (452 more words)Show less

Check the grade on frames and in motion

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.

Contrast and legibility

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.

Banding and muddy midpoints

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 as a motion channel

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.

Before you finish

  • One primary, one accent, two or three neutrals, neutrals tinted toward the primary.
  • Static colours written in supported CSS syntax, preferably hex.
  • The effect chain in grading order, and the same look on every shot in the cut.
  • The look checked on preview frames and a rendered segment.
  • Text legible over its actual backdrop, checked by looking.

© 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

Files

Just SKILL.md in packages/system-skills/color-motion of nodetool-ai/nodetool.

Open the folder on GitHubat commit 339f069

Compare with similar skills

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.

Color Motion compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Color Motion this skillnodetool-ai/nodetool560—~2.3kAutomated safety check: PassAGPL-3.0
Guizang Social Cardsop7418/guizang-social-card-skill7.4k1 repos~7.8kAutomated safety check: PassAGPL-3.0
Weekly Changelog Videoheygen-com/hyperframes60k—~3.3kAutomated safety check: PassApache-2.0
Anthropic Brand Stylinganthropics/skills180k30 repos~559Automated safety check: PassApache-2.0
MoneyPrinterTurbo Video Generatorharry0703/MoneyPrinterTurbo129k—~2.1kAutomated safety check: WarnMIT
HyperFrames Media Useheygen-com/hyperframes60k—~2.4kAutomated safety check: PassApache-2.0

Similar skills

  • 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.

    7.4k GitHub starsUsed in 1 repo~7.8k tokens
    Media & CreativeAuto-check passed
  • Weekly Changelog Video

    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.

    60k GitHub stars~3.3k tokensUpdated today
    Media & CreativeAuto-check passed
  • Anthropic Brand Styling

    anthropics/skills

    Official

    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.

    180k GitHub starsUsed in 30 repos~559 tokens
    Media & CreativeAuto-check passed
  • MoneyPrinterTurbo Video Generator

    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.

    129k GitHub stars~2.1k tokensUpdated yesterday
    Media & CreativeAuto-check: warnings
  • HyperFrames Media Use

    heygen-com/hyperframes

    Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.

    60k GitHub stars~2.4k tokensUpdated today
    Media & CreativeAuto-check passed
  • Holo Card Studio

    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…

    1.9k GitHub stars~1.4k tokensUpdated 18 days ago
    Media & CreativeAuto-check passed

More from nodetool-ai/nodetool

All 127 skills in this repo
  • Beat Sync Editing

    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.

    560 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Caption Titles

    nodetool-ai/nodetool

    Add and animate a consistent text layer on an existing NodeTool timeline.

    560 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Commercial Beat Sheet

    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.

    560 GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Elevenlabs Audio Prompting

    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…

    560 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Frame Composition

    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.

    560 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Gpt Image 2 Prompting

    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…

    560 GitHub stars~1.6k tokensUpdated today
    Auto-check passed

Questions about Color Motion

What does Color Motion do?

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.

When should I use Color Motion?

Color Motion fits situations like: building a look; animating colour.

How do I install Color Motion in Claude Code?

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.

How do I install Color Motion in Codex?

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.

Can I use Color Motion in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Color Motion need to run?

SKILL.md names no scripts, command-line tools or credentials: Color Motion is instructions for the agent only.

Does Color Motion access the network?

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.

Is Color Motion safe to install?

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.

What licence does Color Motion use?

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.

How many tokens does Color Motion use?

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.

What are the alternatives to Color Motion?

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.

Who maintains Color Motion?

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.