Canghe Comic
freestylefly/canghe-skills
Knowledge comic creator supporting multiple art styles and tones.
Structure a trailer or teaser as eight audio-first beats — hook, setup, inciting incident, escalation, drop, climax, title, button — with a runtime-scaled timecode grid, event/reception shot pairs…
$ npx skills add nodetool-ai/nodetool --skill trailer-template -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nodetool-ai/nodetool trailer-template --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/trailer-template .claude/skills/trailer-template && 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 "trailer-template" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/trailer-template into .claude/skills/trailer-template/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "trailer-template", 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/trailer-templateType 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 trailer-template -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nodetool-ai/nodetool trailer-template --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/trailer-template .agents/skills/trailer-template && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "trailer-template" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/trailer-template into .agents/skills/trailer-template/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "trailer-template", 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 trailer-template -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nodetool-ai/nodetool trailer-template --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/trailer-template .cursor/skills/trailer-template && 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 "trailer-template" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/trailer-template into .cursor/skills/trailer-template/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "trailer-template", 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/trailer-template--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 trailer-template -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nodetool-ai/nodetool trailer-template --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/trailer-template .gemini/skills/trailer-template && 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 "trailer-template" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/trailer-template into .gemini/skills/trailer-template/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "trailer-template", 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 trailer-templateInstalls 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 trailer-template -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/trailer-template .github/skills/trailer-template && 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 "trailer-template" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/trailer-template into .github/skills/trailer-template/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "trailer-template", 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 trailer-template -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 trailer-template --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/trailer-template .opencode/skills/trailer-template && 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 "trailer-template" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/trailer-template into .opencode/skills/trailer-template/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "trailer-template", 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.
trailer-templateStructure a trailer or teaser as eight audio-first beats — hook, setup, inciting incident, escalation, drop, climax, title, button — with a runtime-scaled timecode grid, event/reception shot pairs…
Trailer Template is an agent skill from nodetool-ai/nodetool. Structure a trailer or teaser as eight audio-first beats — hook, setup, inciting incident, escalation, drop, climax, title, button — with a runtime-scaled timecode grid, event/reception shot pairs, a planted-and-harvested motif, and one unbroken music bed, then store it as a NodeTool storyboard with a character entity behind every recurring face. Use when someone asks for a trailer, teaser, sizzle or announcement cut structure, says a cut has no spine or no build, or needs to know where the drop and the title…
Its SKILL.md is about 3.8k 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, covering Comics and storyboards. The repository describes itself as: Agent-first Creative Workspace. The licence is AGPL-3.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 58765d3. 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 javascript).
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.
Trailer Template loads about 3.8k tokens when it runs. Until then it costs about 154 tokens; SKILL.md has 1,749 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 58765d3, republished under its AGPL-3.0 licence (© nodetool-ai). 1,749 words, ~3,775 tokens.
.claude/skills/trailer-template/SKILL.md (or your agent's skills folder).You are a single agent. Take a title, a genre and a runtime and produce a complete, timecoded trailer plan as a NodeTool storyboard. You call the storyboard, entity and timeline capabilities directly. You do not build a workflow. You do not render or assemble unless asked.
Fill the header first. Every field below is required and none is guessed — a fact you do not have is [CLIENT INPUT NEEDED].
TITLE:
GENRE:
LENGTH: [seconds]
FORMAT: 16:9 / 2.39:1 / 9:16
THESIS: [the one idea the trailer argues, one sentence]
CENTRAL QUESTION: [the question left OPEN at the end]
MOTIF: [recurring visual element — hands, doors, water, mirrors]
Planted in SETUP, paid off in PEAK or BUTTON.Event → reception. The unit is a pair, never a single shot. Something happens, then a face receives it. Meaning lives in the second shot. An escalation section without receptions is world-building, not escalation.
Audio is the clamp. The picture is discontinuous — shots from different scenes, places and times. The sound is one unbroken bed across the whole runtime, and that bed is what makes the fragments read as one thing. Never cut the audio to silence. Dip it.
quiet / slow ~65% | loud / fast ~35%
─────────────────────────── DROP ──────────────────────
Beats 1–4 | Beats 6–8One hinge. The drop lands at ~65% of runtime. Everything else is subordinate to this curve.
Minimum perceptual durations — below these a beat does not read:
| Beat | Minimum |
|---|---|
| Drop | 1.0s |
| Setup | 4.0s |
| Button | 2.0s |
| Any reception shot | 0.8s |
Compression rule. Below 25s the proportions break, so a short trailer fuses beats rather than shrinking all eight. Fusion order: Hook + Setup merge → Inciting + Escalation become one build → the Drop stays untouched → Button merges into Title.
Compute timecodes from the runtime, rounded to 0.5s. Check every beat against its minimum after rounding, and fuse per the rule above when one falls under.
| Beat | % of runtime | Job |
|---|---|---|
| 1 Hook | 0–8% | Interrupt. Open an information deficit. |
| 2 Setup / World | 8–25% | Install identification. The normal state as precious or fragile. Plant the motif. |
| 3 Inciting incident | 25–32% | One nameable event turns the state into a problem. |
| 4 Escalation / Stakes | 32–65% | Accumulate. Each unit raises a new dimension. Longest section. |
| 5 Drop | 65–68% | The hinge. Maximum contrast, not maximum volume. |
| 6 Climax / Peak | 68–85% | Payoff as fragments. The emotional summit is a human beat inside the spectacle. |
| 7 Title card | 85–90% | Name the feeling. Lands on the impact. |
| 8 Button / Stinger | 90–100% | Recency. One small, single beat that works without context. |
Event before face. No genre marker yet. Never explain. Start quiet — opening loud burns the dynamic range the drop needs.
| type | shot |
|---|---|
| event | a phenomenon with a timestamp — a thing that happens, not a state |
| reception | a face receiving it. Attention, not yet fear. |
Not plot: an emotional anchor. Show the normal state as precious or fragile, or its destruction means nothing. Plant the musical motif here; you harvest it at the climax. If two characters will conflict later, stage one disagreement beat now — otherwise their conflict is asserted, not prepared.
| type | shot |
|---|---|
| setup | protagonist in the normal state — warm, ordinary, specific |
| setup | intimacy or fragility — a small physical gesture, the motif planted |
| setup | disagreement — two positions, silently staged |
One identifiable event, never a montage. If the viewer cannot name what changed, the trailer has no spine. First real impact — it works because you spent none before. Impacts are currency: spend them ascending.
| type | shot |
|---|---|
| event | the turn — one nameable event |
| reception A | character 1 reads it as [reading A] |
| reception B | character 2, the same event, reads it as [reading B] — the thesis in two faces |
Accumulate, never repeat. Tension is a function of duration, so this is the longest section. The reveal ratio climbs like a ladder and never completes. Every event needs a receiver. Ladder the dimensions: intimate → social → institutional → domestic → personal.
| type | shot | dimension |
|---|---|---|
| event | scale widens — the world notices | society |
| reception | a stranger's face | |
| event | institutions respond | state |
| reception | the protagonist's protector reacts — fear turns domestic | |
| event | the threat enters the home | intimate |
| reception | the protagonist chooses — a small physical act of crossing | |
| reception | stakes crystallize — someone realizes what they have lost |
The hinge between question and promise. Not the loudest moment: the moment of maximum contrast. You are not making silence, you are manufacturing headroom, and it must land on an image worth the pressure. Under 1s it reads as an edit error, not a pause.
| type | shot |
|---|---|
| DROP | stillness. The single best held image. Small figure, vast unseen force. |
Payoff as fragments, never answers. Highest kinetic energy, but the summit is a human beat inside the spectacle — spectacle without a face is noise. Consequence, never outcome. The motif from Beat 2 returns in full orchestration.
| type | shot |
|---|---|
| climax | the face — emotion rising, readable |
| PEAK | the emotional summit — the motif paid off, in granular sensory detail |
| reversal | optional: everything snaps out — the sudden absence |
The title arrives at maximum emotional charge so the name and the feeling weld. It lands on the impact, not after — sound and type in the same frame.
The last thing is what gets carried out. Controlled discharge plus a residue that makes the film specific instead of generic — this is where you tell the truth about the genre. Small and single after the bigness, and it must work without context. Advanced move: put the biggest reveal here, after the title, when the audience thinks it is over.
| type | shot |
|---|---|
| BUTTON | one last beat — punchline, scare, tenderness or reveal. Deny the expected hit. |
[Hook] sub-bass drone + ambience + ONE distant tonal element
[Setup] THE SEED: fragile motif enters — instrument: [INSTRUMENT]
[Inciting] motif bends. First impact. Sub grows.
[Escalation] layers stack: pulses → riser → strings. Accelerating.
[Drop] ★ DIP to bare sub-rumble. Never fully out.
[Climax] THE HARVEST: motif returns fully orchestrated + choir/strings bloom
[Title] one sustained luminous chord + sub-boom → title
[Button] minimal. Withhold the stinger hit if the button is tender.Cut on the transient. Picture cuts land on hits, not between them. Sound design over music at impact. The braam carries the blow, the score carries the emotion.
Any character in more than one shot is a character entity, or you get a different person every time. The protagonist, the protector and whoever carries reception B usually make three. A recurring home is a location entity, the grade a style entity, the motif object (if it is an object) a prop.
import { list_entities, create_entity } from "@nodetool-ai/sandbox-nodetool/entities";
await list_entities({}); // reuse before you generate
const still = await nodetool.media.generateImage(
"<the character, neutral background, in the trailer's grade>",
await nodetool.models.pick("text_to_image")
);
await create_entity({
asset_id: still.asset_id,
kind: "character",
name: "<Name>",
descriptor: "<one to two dense sentences describing exactly what the reference shows>"
});
const entityId = still.asset_id; // the entity IS its assetThe descriptor is the face. Name entities in plain text in a shot's action or motion — "Mara turns from the window", never @Mara — and do not re-describe them in shot text. The render attaches a character or prop entity to a shot only when its name appears in that shot's text (style and location entities always apply), so a reception shot that says "she" instead of "Mara" renders a stranger. Show the roster before drafting beats.
import { create_storyboard, edit_storyboard } from "@nodetool-ai/sandbox-nodetool/storyboards";
const board = await create_storyboard({
name: `${title} — trailer (${runtime}s)`,
brief: `${thesis}\nCENTRAL QUESTION: ${centralQuestion}\nMOTIF: ${motif}`,
style: "<the grade in one line>",
aspect_ratio: "16:9"
});
const boardId = board.storyboard_id; // NOT board.idedit_storyboard takes five ops: add_shot, update_shot, remove_shot, reorder_shot, set_board. set_board accepts {brief?, style?, aspect_ratio?, entity_ids?, image_model?, video_model?} and refuses anything else. Models come from find_model — pass each result's .ref; there is no default, and an unset model fails the render. The full contract, including which entities each shot's prompt receives, is in commercial-beat-sheet § Tool contract.
const stills = await find_model({ capability: "text_to_image" });
const clips = await find_model({ capability: "image_to_video" });
await edit_storyboard({
storyboard_id: boardId,
ops: [{ op: "set_board", entity_ids: roster,
image_model: stills.ref, video_model: clips.ref }]
});Each result also names a prompting_skill. Load it before step 3: the shot action and motion are the prompt the generator reads (motion first, then action, for a clip), and a trailer's receptions and its drop are worded differently for a line that wants beats in order (Hailuo), a shot list (Kling) or a sound brief (Seedance).
Every row in the beat tables is one add_shot. The slug carries the beat and the type, so the pair structure survives into the board and the cut.
await edit_storyboard({
storyboard_id: boardId,
ops: [{
op: "add_shot",
slug: "3-event", // <beat>-<type>: 1-event, 1-reception, 3-reception-a, 5-drop, 6-peak, 8-button
action: "INCITING (0:09–0:10.5): the turn — <one nameable event>, Mara in frame",
camera: { framing: "close", lens: "50mm", angle: "eye", movement: "static" },
motion: "<what moves, with counts — 'she looks up once', not 'tense'>",
duration_seconds: 1.5,
render_mode: "keyframe"
}]
});Rules for the shot text:
action opens with the beat name and timecode, then the shot. Under 400 characters.action names whose face it is and what it reads. Its motion is a single small physical event.motion is stillness, stated: "nothing moves except the water".caption-titles), because generators render text unreliably.render_mode: "direct" only for a heavy-motion climax shot. Receptions and the drop stay on keyframe, where the face holds.Put the eight-line bed into the board's brief as a MUSIC: block, one line per beat with its timecode. Per-shot narration stays empty — native per-shot audio is fragments, the opposite of the clamp. If the board is open in a tab, ui_storyboard_set_screenplay writes the same text into musicPrompt, and assemble_storyboard_timeline then turns it into a draft music clip.
Run before showing anyone. Every line must be true of the board, not the plan.
Stills first. render_storyboard_stills costs cents and you look at them. A wrong face is fixed at the entity, never in one shot's prompt.
Generate every clip long. Ask the video model for 4–5s per shot even where the plan says 1.5s — you want frames to choose from — and trim in the timeline. render_storyboard_clips has no duration override, so bump duration_seconds on update_shot before the render and restore it after. Shots render individually and mute their own audio; analyze_video on each clip gives the real length before you trim, because the model honours the request loosely.
The bed is one clip. After assemble_storyboard_timeline:
generate_music once, for the full runtime, from the eight-line bed. One prompt, one clip.edit_timeline → add_track (audio), then add_media_clip for that one asset at 0:00. Remove any draft audio clips the assembly created per shot.detect_audio_events on the bed, then beat-sync-editing: every picture cut moves to the nearest transient. The drop shot's in-point sits on the dip.caption-titles for the title card, timed to the same frame as the title impact in the bed.validate_timeline, then preview_timeline_frame at the drop, the peak and the title.motion-graphics carries the timeline op contract, video-audio-continuity the case where a shot's own sound has to survive, color-motion the grade that makes shots from different scenes cut together, and logo-reveal a studio mark after the button.
© 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/trailer-template of nodetool-ai/nodetool.
Open the folder on GitHubat commit 58765d3
Trailer Template 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 |
|---|---|---|---|---|---|---|
| Trailer Template this skillnodetool-ai/nodetool | 560 | — | ~3.8k | Automated safety check: Pass | AGPL-3.0 | |
| Canghe Comicfreestylefly/canghe-skills | 461 | 8 repos | ~3.2k | Automated safety check: Pass | None | |
| Tutti UI Systemtutti-os/tutti | 3.8k | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| 3D Animation Short Generatortl2012tl/comfyUI-llama-TE | 241 | 4 repos | ~3.7k | Automated safety check: Pass | None | |
| Text to PNG Card Casterlijigang/ljg-skills | 7.5k | — | ~1.9k | Automated safety check: Pass | MIT | |
| H3 Cinematic Directorjtydhr88/ComfyTV | 1.1k | — | ~2.7k | Automated safety check: Pass | MIT |
freestylefly/canghe-skills
Knowledge comic creator supporting multiple art styles and tones.
tutti-os/tutti
A skill your agent uses when working with @tutti-os/ui-system components, replacing local UI with shared components, querying component ids or metadata, promoting UI into shared base or business…
tl2012tl/comfyUI-llama-TE
Create complete stylized 3D animated shorts from a story idea through an ordered production workflow covering project brief, story outline, character and environment cards, standardized shot…
lijigang/ljg-skills
Turns text, URLs or local files into tall PNG cards through HTML typography, with four modes: long reading card, full-text layout, comic and whiteboard.
jtydhr88/ComfyTV
Convert approved scripts, shot briefs, storyboards, keyframes, character sheets, scene assets, prop sheets, and sound briefs into director-level storyboards and production-ready MiniMax H3 prompts.
kangarooking/kangarooking-skills
Create a scroll-controlled cinematic product website with rich motion (动效网站) from product materials, reference pages or videos, and brand assets.
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
Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither.
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.
Categories
Structure a trailer or teaser as eight audio-first beats — hook, setup, inciting incident, escalation, drop, climax, title, button — with a runtime-scaled timecode grid, event/reception shot pairs…. Trailer Template is an agent skill from nodetool-ai/nodetool. Structure a trailer or teaser as eight audio-first beats — hook, setup, inciting incident, escalation, drop, climax, title, button — with a runtime-scaled timecode grid, event/reception shot pairs, a planted-and-harvested motif, and one unbroken music bed, then store it as a NodeTool storyboard with a character entity behind every recurring face.
Trailer Template fits situations like: someone asks for a trailer; announcement cut structure; says a cut has no spine; needs to know where the drop and the title card go.
Run `npx skills add nodetool-ai/nodetool --skill trailer-template -a claude-code`. Or copy the skill folder (packages/system-skills/trailer-template in nodetool-ai/nodetool) into .claude/skills/trailer-template in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nodetool-ai/nodetool --skill trailer-template -a codex`. Or copy the skill folder (packages/system-skills/trailer-template in nodetool-ai/nodetool) into .agents/skills/trailer-template 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 trailer-template -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/trailer-template, .gemini/skills/trailer-template, .github/skills/trailer-template and .opencode/skills/trailer-template in your project.
SKILL.md names no scripts, command-line tools or credentials: Trailer Template 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.
Trailer Template 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 3.8k tokens (SKILL.md is roughly 15k 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 Trailer Template: Canghe Comic (freestylefly/canghe-skills, 461 stars), Tutti UI System (tutti-os/tutti, 3.8k stars), 3D Animation Short Generator (tl2012tl/comfyUI-llama-TE, 241 stars) and Text to PNG Card Caster (lijigang/ljg-skills, 7.5k 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 9, 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.