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.
Create or edit NodeTool workflow graphs, connections, and properties using UI, headless tools, or requested workflow files.
$ npx skills add nodetool-ai/nodetool --skill nodetool-workflow-builder -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-workflow-builder --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/nodetool-workflow-builder .claude/skills/nodetool-workflow-builder && 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 "nodetool-workflow-builder" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-workflow-builder into .claude/skills/nodetool-workflow-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-workflow-builder", 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/nodetool-workflow-builderType 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 nodetool-workflow-builder -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-workflow-builder --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/nodetool-workflow-builder .agents/skills/nodetool-workflow-builder && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nodetool-workflow-builder" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-workflow-builder into .agents/skills/nodetool-workflow-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-workflow-builder", 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 nodetool-workflow-builder -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-workflow-builder --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/nodetool-workflow-builder .cursor/skills/nodetool-workflow-builder && 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 "nodetool-workflow-builder" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-workflow-builder into .cursor/skills/nodetool-workflow-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-workflow-builder", 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/nodetool-workflow-builder--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 nodetool-workflow-builder -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-workflow-builder --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/nodetool-workflow-builder .gemini/skills/nodetool-workflow-builder && 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 "nodetool-workflow-builder" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-workflow-builder into .gemini/skills/nodetool-workflow-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-workflow-builder", 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 nodetool-workflow-builderInstalls 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 nodetool-workflow-builder -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/nodetool-workflow-builder .github/skills/nodetool-workflow-builder && 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 "nodetool-workflow-builder" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-workflow-builder into .github/skills/nodetool-workflow-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-workflow-builder", 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 nodetool-workflow-builder -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 nodetool-workflow-builder --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/nodetool-workflow-builder .opencode/skills/nodetool-workflow-builder && 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 "nodetool-workflow-builder" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-workflow-builder into .opencode/skills/nodetool-workflow-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-workflow-builder", 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.
nodetool-workflow-builderCreate or edit NodeTool workflow graphs, connections, and properties using UI, headless tools, or requested workflow files.
Nodetool Workflow Builder is an agent skill from nodetool-ai/nodetool. Create or edit NodeTool workflow graphs, connections, and properties using UI, headless tools, or requested workflow files.
Its SKILL.md is about 4.9k 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.
5 steps, taken from the first numbered list 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.
Shell commands in SKILL.md call:
npmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OPENAI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Nodetool Workflow Builder loads about 4.9k tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 1,983 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,983 words, ~4,874 tokens.
.claude/skills/nodetool-workflow-builder/SKILL.md (or your agent's skills folder).Create or edit a workflow that produces the requested outputs from the specified inputs. Preserve existing nodes and connections outside the requested change.
NodeTool holds several document kinds, and most of them are not graphs. Build a graph when the user asked for one, when the job has to re-run on new inputs, or when the result must be callable over the API. Otherwise route the request.
| The deliverable | Skill |
|---|---|
| A finished video, still set or campaign | storyboard-core, which picks the job skill |
| A screen someone clicks | nodetool-app-builder |
| A repair on footage already cut: cutout, upscale, lip sync, generated sound | nodetool-video-post |
| A cut, titles, transitions or animation on a timeline | the motion-graphics system skill, via load_skill |
| Logic in JavaScript rather than nodes | nodetool-js-scripting |
| A layered image, mask or overlay | nodetool-sketch |
| A 3D model or scene | nodetool-3d-scene |
| A reusable video template for batches | video-workflow |
| A new node type | nodetool-custom-node-developer |
A workflow can still be the right answer alongside one of these: a mini app runs workflows, and a timeline clip can be produced by one.
Use the authoring surface the user requested. Prefer available UI tools for a visible canvas, headless workflow tools for saved graphs, and JSON or the TypeScript DSL when a workflow file is requested. Do not claim a missing tool is callable. Use the live schemas and registry as the source of identifiers.
include_properties=true and
include_outputs=true. Reuse metadata already retrieved for the same type.
Discover model choices through available model-search tools. Do not invent
node types, properties, handles, or model identifiers.ui_get_graph or validate_workflow as appropriate. Fix
errors and required-input warnings. Read back the saved graph before claiming
it was created or changed. Report any remaining limitation.If a node is unavailable, broaden the search and inspect supported alternatives. Proceed with an equivalent composition when it preserves the requested behavior. Otherwise explain the missing capability and ask only for the decision needed to choose an alternative. Continue independent work on the rest of the graph.
Read only the sections needed for the current operation. Live registry metadata and tool schemas are authoritative. Catalog entries and DSL examples are search leads, not proof that a node or argument exists in this installation.
| Tool | Purpose | Key params |
|---|---|---|
ui_search_nodes | Find node types | query, include_properties=true, include_outputs=true, limit |
ui_search_models | Find models for a model property | query, type (e.g. language_model) |
ui_add_node | Add single node | id, position, type (use node_type from search) |
ui_graph | Bulk add nodes+edges when exposed by the host | nodes[], edges[] |
ui_connect_nodes | Connect two nodes | source_id, source_handle, target_id, target_handle |
ui_update_node_data | Set node properties / sync mode | node_id, data={properties: {…}, sync_mode: "on_all"} |
ui_get_graph | Read graph + validation | Returns nodes, edges, and validation results |
ui_delete_node | Remove a node | node_id |
ui_delete_edge | Remove a connection | edge_id |
ui_move_node | Reposition a node | node_id, position |
ui_set_node_title | Rename a node | node_id, title |
ui_open_workflow | Open workflow tab | workflow_id |
ui_run_workflow | Execute workflow | workflow_id, params |
Set a node's
sync_modethroughui_update_node_data(data.sync_mode) — there is no dedicated sync-mode tool.
When using ui_add_node or ui_graph, the data object supports:
properties — node-specific input values (from metadata)dynamic_outputs — tool outputs for Agent nodes: {"tool_name": {"type": "str"}}dynamic_properties — runtime-configurable properties (usually {})sync_mode — "on_any" (default, fire on any input) or "on_all" (wait for all inputs)| Namespace | Key Nodes | Purpose |
|---|---|---|
nodetool.agents | Agent, ResearchAgent, Summarizer, Extractor, Classifier, Decision | LLM-powered processing |
nodetool.text | Concat, Join, Replace, Template, Split, Regex, Compare, Slugify | Text manipulation |
nodetool.code | Code (JS sandbox with lodash, dayjs, cheerio, csvParse, validator) | Custom logic via JavaScript |
nodetool.data | Filter, Schema, GroupBy, Sort | Dataframe operations |
nodetool.image | Load, Save, Resize, Crop, Rotate, Composite | Image processing |
nodetool.audio | Load, Mix, Encode | Audio processing |
nodetool.video | Load, Extract, Metadata, Frames | Video processing |
nodetool.control | If, ForEach, Collect, Switch, Loop | Control flow |
nodetool.constant | String, Integer, Float, Bool, Image, Audio | Constant values |
nodetool.input | FloatInput, StringInput, ImageInput, ChatInput | Workflow parameters |
nodetool.output | Output, Preview | Results and debugging |
nodetool.generators | ListGenerator, DataGenerator, ChartGenerator | LLM-backed generators |
lib.*)lib.pdf (rasterize pages to images), lib.sqlite (database path), lib.browser (screenshots), lib.svg (vector graphics), lib.charts (charts)
Note:
lib.http,lib.os,lib.datetime,lib.json,lib.math,lib.uuid,nodetool.boolean,nodetool.dictionary,nodetool.list,nodetool.numbers,nodetool.text.Chunk, and allskills.*nodes have been removed. Use the Code node (nodetool.code.Code) and its snippet library instead. Its sandbox providesfetchfor web requests,workspace.*for files, and@nodetool-ai/sandbox-dates(date-fns) for date logic.nodetool.control.RepeatCountandnodetool.control.RepeatValuecover repetition.
| Namespace | Purpose |
|---|---|
kie.image.* | Image generation services (Flux, SDXL, etc.) |
kie.video.* | Video generation services (Kling, Hailuo, Sora, etc.) |
kie.audio.* | Audio generation services |
openai.* | GPT, GPT-Image, embeddings, TTS |
gemini.* | Google Gemini models |
mistral.* | Mistral models |
vector.* | Vector store nodes (SQLite-vec default; Chroma/Pinecone/Supabase backends) |
str, int, float, bool, list, dict, any{type: "image|audio|video|document", uri: "..."}language_model, image_model, video_model, embedding_model, tts_modelEdges enforce type compatibility. Use any type for flexible connections.
limit=20 to see all options."dataframe group aggregate" finds multiple related nodes.input_type / output_type filters: "str", "int", "float", "image", "audio", "list", etc."nodetool.text")."to_numpy", list→item via iterator, item→list via collector.Shape: Input → Transform(s) → Output Use for: Single-source processing, data conversion, image enhancement. Example: ImageInput → Sharpen → AutoContrast → Output
Shape: Input → Agent → Post-process → Output Use for: Creative generation, multimodal transforms (image→text→audio), semantic understanding. Key nodes: Agent (general LLM), Summarizer (text summarization), ListGenerator (streams items)
Shape: Inputs → Agent (strategy) → ListGenerator → Processing → Preview nodes at each stage Use for: Complex multi-stage generation where user needs progress visibility. Key concept: Add Preview nodes at intermediate stages for debugging and monitoring.
Shape: ChatInput → vector.HybridSearch + FormatText → Agent → Output
Use for: Question-answering over documents, factual accuracy from specific sources.
Index flow: nodetool.code.Code (workspace.list) → LoadDocumentFile → nodetool.code.Code ("Chunk Text" snippet) → vector.IndexTextChunk
Query flow: ChatInput → vector.HybridSearch → FormatText → Agent → Output
Note: RAG nodes are the single vector.* namespace (e.g. vector.QueryText, vector.HybridSearch, vector.IndexTextChunk); there is no vector.chroma.*/vector.faiss.*.
Shape: Input → FormatText → DataGenerator → Insert → Query → Preview Use for: Persistent storage, apps with memory, agent history. Key nodes: CreateTable, Insert, Query, Update, Delete (lib.sqlite namespace)
Shape: GmailSearch → EmailFields → Summarizer → Preview Use for: Email processing, RSS monitoring, web content extraction. Key nodes: GmailSearch, EmailFields, FetchRSSFeed, GetRequest
Shape: RealtimeAudioInput → RealtimeAgent → Preview Use for: Voice interfaces, live transcription, interactive audio. Key nodes: RealtimeAudioInput, RealtimeAgent, LiveAgent, RealtimeWhisper LiveAgent runs GPT-Live: full-duplex speech with a Responses backend for lookups and web search. Feed it 24 kHz PCM16 microphone chunks.
Shape: Any modality in → transforms → target modality out Common chains: Audio→Text→Image, Image→Text→Audio, Video→Audio→Text→Summary
Shape: ImageInput → edge detection/description → ControlNet generation → Output Use for: Style transfer, controlled generation, structure-preserving transforms. Key techniques: ControlNet (structure), ImageToText (description), Img2Img (style)
Shape: GetRequest → ImportCSV → Filter → ChartGenerator → Preview Use for: Fetch external data, transform datasets, auto-generate visualizations.
Video/image generation nodes live under
kie.video.*,kie.image.*,kie.audio.*(e.g.kie.video.Kling26TextToVideo,kie.video.Hailuo02TextToVideoPro). Exact model nodes change as providers add models — alwaysui_search_nodesfor the current node type rather than typing a name from memory.
Shape: StringInput (prompt) → kie.video.* text-to-video node → Output
Find nodes: search "text to video" (Kling, Hailuo, Sora, Wan, Bytedance families)
Config: Duration 5-10s, Resolution 768P (fast) or 1080P (quality), Aspect 16:9/9:16/1:1
Shape: ImageInput + StringInput (motion guide) → kie.video.* image-to-video node → Output
Find nodes: search "image to video"
Shape: ImageInput (face) + AudioInput (speech) → avatar generation node → Output
Find nodes: search "avatar" or "lip sync"
Shape: VideoInput → upscale node → Output
Find nodes: search "upscale" / "video enhance" (e.g. Topaz family)
Shape: StringInput (story) + ImageInputs (scenes) → storyboard video node → Output Use for: Narrative videos from keyframes, scene transitions.
Any node can become a tool for an Agent via dynamic_outputs:
dynamic_outputs on Agent: {"search": {"type": "str"}}sourceHandle: "search")text, chunk) route to Preview/Output nodesnodetool.control.Collect to gather a stream into a list.nodetool.control.ForEach to process each item in a list.nodetool.control.Loop to repeat part of the graph: wire value into
the body, the body's result back into next, and a bool into condition
(loop again while true). max_iterations bounds it and done carries the
final value. It is the only way to close a cycle. The DSL cannot express the
back edge, so build loops with the graph tools or workflow JSON.nodetool.agents.Decision when a model should make the call: prompt
is a yes/no question, value is what it judges (images are shown to the
model), decision is the bool and if_true/if_false route value like
If. Wire decision into Loop.condition to loop until a model is
satisfied; phrase the question so yes means "loop again".Preview nodes to inspect intermediate streaming results.sync_mode: "on_any" fires on each incoming value; "on_all" waits for all inputs.ui_get_graph returns a validation field:
errors — blocking issues (circular deps, invalid node types)warnings — non-blocking (disconnected required inputs, empty required properties)suggestions — improvements (orphaned nodes)Check validation after building. Fix blocking errors and warnings that prevent the requested behavior. Explain any remaining warning without expanding the task.
ui_update_node_data to set it. Common: model, prompt.ui_search_nodes with include_outputs=true for exact names."nodetool.text").include_properties=true and include_outputs=true.After adding nodes, check for warnings about empty required properties:
model (language_model type) — must be setmodel, promptpromptSet via ui_update_node_data or ask the user which value to use.
# Run a JSON workflow file
nodetool workflows run ./workflow.json
nodetool workflows run ./workflow.json --params '{"input": "hello"}'
nodetool workflows run ./workflow.json --json
# Alternative runner with more options, from a NodeTool checkout
npm run workflow -- ./workflow.json --input text='hello' --show-messages# Run a DSL file (builds graph and executes)
nodetool workflows run ./workflow.ts --json
# Or via the workflow runner, from a NodeTool checkout
npm run workflow -- ./workflow.ts
# Execute directly with tsx (prints workflow JSON only, does not run)
npx tsx ./workflow.tsnodetool serve # Start backend server
nodetool serve --port 8080 # Custom port
nodetool workflows list # List saved workflows
nodetool workflows get <id> # Get workflow details
nodetool jobs list # List execution jobs
nodetool secrets store OPENAI_API_KEY # Store API keyWrite workflows as TypeScript with full type safety and IDE autocompletion using @nodetool-ai/dsl.
import { workflow, constant, text, agents } from "@nodetool-ai/dsl";
// Create nodes — call node.output() to get a connectable handle.
const greeting = constant.string({ value: "hello world" });
// Connect by passing output handles as inputs.
const shout = text.toUppercase({ text: greeting.output() });
const summary = agents.summarizer({ text: shout.output() });
// Build the workflow graph (traces all connections).
const wf = workflow(summary);
console.log(JSON.stringify(wf));node.output() is a function — call it to get the default output handle. It is NOT a property (node.output).node.output("if_true") for a specific output of a multi-output node.workflow(...terminals): traces from terminal nodes via BFS, returns serializable JSON { nodes, edges }.run(wf, opts?): executes a workflow in-process via WorkflowRunner; returns the result.runGraph(...terminals): shorthand — run(workflow(...terminals)).Namespaces mirror node namespaces. Common ones:
| Import | Example |
|---|---|
constant | constant.float({ value: 5 }), constant.string({ value: "x" }) |
text | text.toUppercase({ text: "hi" }), text.split({ ... }) |
image | image.resize({ ... }) |
control | control.if_({ condition: true, value: x }), control.forEach({ ... }) |
agents | agents.agent({ ... }), agents.summarizer({ text }) |
data | data.filter({ ... }) |
vector | vector.hybridSearch({ ... }) |
libHttp | libHttp.getJSON({ url }), libHttp.getText({ url }) |
code | code.code({ ... }) — JS sandbox for math/JSON/list logic |
There is no
libMathorlistnamespace. Use the Code node (code.code) for arithmetic/JSON/list operations.
import { control } from "@nodetool-ai/dsl";
const branch = control.if_({ condition: true, value: "hello" });
branch.output("if_true"); // → output handle for the true branch
branch.output("if_false"); // → output handle for the false branchimport { workflow, constant, text } from "@nodetool-ai/dsl";
const shared = constant.string({ value: "abc" });
const upper = text.toUppercase({ text: shared.output() });
const lower = text.toLowercase({ text: shared.output() });
const joined = text.concat({ a: upper.output(), b: lower.output() });
const wf = workflow(joined); // `shared` appears once; edges fan out© 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/nodetool-workflow-builder of nodetool-ai/nodetool.
Open the folder on GitHubat commit 58765d3
Nodetool Workflow Builder 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 |
|---|---|---|---|---|---|---|
| Nodetool Workflow Builder this skillnodetool-ai/nodetool | 560 | — | ~4.9k | 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 | 59k | — | ~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 | |
| Brag Slim Launch Video Makerlatent-spaces/brag | 14k | 1 repos | ~1.9k | Automated safety check: Pass | MIT |
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.
latent-spaces/brag
Builds a short, shareable launch video with music and motion from a project directory or a website URL, using only tools already on the machine.
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
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
Create or edit NodeTool workflow graphs, connections, and properties using UI, headless tools, or requested workflow files. Nodetool Workflow Builder is an agent skill from nodetool-ai/nodetool. Create or edit NodeTool workflow graphs, connections, and properties using UI, headless tools, or requested workflow files.
Nodetool Workflow Builder fits situations like: media & Creative work in your project.
Run `npx skills add nodetool-ai/nodetool --skill nodetool-workflow-builder -a claude-code`. Or copy the skill folder (packages/system-skills/nodetool-workflow-builder in nodetool-ai/nodetool) into .claude/skills/nodetool-workflow-builder in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nodetool-ai/nodetool --skill nodetool-workflow-builder -a codex`. Or copy the skill folder (packages/system-skills/nodetool-workflow-builder in nodetool-ai/nodetool) into .agents/skills/nodetool-workflow-builder 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 nodetool-workflow-builder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nodetool-workflow-builder, .gemini/skills/nodetool-workflow-builder, .github/skills/nodetool-workflow-builder and .opencode/skills/nodetool-workflow-builder in your project.
Going by SKILL.md and its folder, Nodetool Workflow Builder needs the command-line tools its instructions call (npm and npx) and credentials named OPENAI_API_KEY.
SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. 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.
Nodetool Workflow Builder 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 4.9k tokens (SKILL.md is roughly 19k 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 Nodetool Workflow Builder: Guizang Social Cards (op7418/guizang-social-card-skill, 7.4k stars), Weekly Changelog Video (heygen-com/hyperframes, 59k 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 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.