Canghe Comic
freestylefly/canghe-skills
Knowledge comic creator supporting multiple art styles and tones.
Diagnose a failing NodeTool run on any surface: workflows, mini apps, timelines, sketches, scripts, storyboards, and stuck media generations.
$ npx skills add nodetool-ai/nodetool --skill nodetool-troubleshooter -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-troubleshooter --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-troubleshooter .claude/skills/nodetool-troubleshooter && 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-troubleshooter" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-troubleshooter into .claude/skills/nodetool-troubleshooter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-troubleshooter", 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-troubleshooterType 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-troubleshooter -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-troubleshooter --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-troubleshooter .agents/skills/nodetool-troubleshooter && 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-troubleshooter" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-troubleshooter into .agents/skills/nodetool-troubleshooter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-troubleshooter", 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-troubleshooter -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-troubleshooter --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-troubleshooter .cursor/skills/nodetool-troubleshooter && 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-troubleshooter" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-troubleshooter into .cursor/skills/nodetool-troubleshooter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-troubleshooter", 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-troubleshooter--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-troubleshooter -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-troubleshooter --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-troubleshooter .gemini/skills/nodetool-troubleshooter && 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-troubleshooter" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-troubleshooter into .gemini/skills/nodetool-troubleshooter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-troubleshooter", 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-troubleshooterInstalls 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-troubleshooter -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-troubleshooter .github/skills/nodetool-troubleshooter && 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-troubleshooter" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-troubleshooter into .github/skills/nodetool-troubleshooter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-troubleshooter", 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-troubleshooter -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-troubleshooter --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-troubleshooter .opencode/skills/nodetool-troubleshooter && 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-troubleshooter" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-troubleshooter into .opencode/skills/nodetool-troubleshooter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-troubleshooter", 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-troubleshooterDiagnose a failing NodeTool run on any surface: workflows, mini apps, timelines, sketches, scripts, storyboards, and stuck media generations.
Nodetool Troubleshooter is an agent skill from nodetool-ai/nodetool. Diagnose a failing NodeTool run on any surface: workflows, mini apps, timelines, sketches, scripts, storyboards, and stuck media generations. Use diagnosing-bugs for repository code defects.
Its SKILL.md is about 3.6k 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.
5 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.
Shell commands in SKILL.md call:
curlnpmollamadockerFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, npm and docker, 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_KEYANTHROPIC_API_KEYGEMINI_API_KEYHF_TOKENFAL_API_KEYSECRETS_MASTER_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Nodetool Troubleshooter loads about 3.6k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,555 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,555 words, ~3,561 tokens.
.claude/skills/nodetool-troubleshooter/SKILL.md (or your agent's skills folder).You are a NodeTool troubleshooter. Diagnose issues systematically using this guide.
For an app operation, workflow job or chat turn with a recorded run, start
with get_run. In execute_code, call nodetool.runs.get(run_id). When the
id is unknown, use nodetool.runs.list({kind, status, app_id, workflow_id, thread_id}) with the relevant filters.
Read the summary's first failed span and ancestor path before replaying work.
For saved app inputs and outputs, call nodetool.runs.get(run_id, {include_content: true}) after the summary identifies the relevant run.
Inspect that span with nodetool.runs.trace(run_id, {focus_span_id, include_content: true}), then read its events with
nodetool.runs.logs(run_id, {span_id, include_content: true}). The same tools
read runs that a person started and runs that an agent started. A failed run
is a readable outcome. Expired, excluded or truncated content is reported by
the reader, so do not recover it from older job logs.
With shell access, use the same readers:
nodetool runs list --status failed --json
nodetool runs show <run_id> --json
nodetool runs trace <run_id> --focus <span_id> --include-content --json
nodetool runs logs <run_id> --span <span_id> --include-content --json
nodetool runs tail <run_id>Resource ids accept the full id or its exact 12-character prefix. Keep trace and span ids in full. Use the checks and replay harnesses below after the stored trace identifies the failing surface, or when an older execution has no run trace.
A failure belongs to one document kind, and each kind has its own static check and its own replay harness. Checking the wrong one wastes the run.
| Symptom sits in | Static check | Replay | Skill for the fix |
|---|---|---|---|
| A workflow graph | validate_workflow | debug_workflow | nodetool-workflow-builder |
| A mini app: dead button, blank widget | debug_app {run: false} | debug_app {interact} | nodetool-app-builder |
| A timeline: wrong length, missing clip, bad font | validate_timeline | timeline debug | nodetool-video-post |
| A sketch: empty layer, wrong blend | validate_sketch | sketch debug | nodetool-sketch |
| A JS script or Code node | validate_js_script, validate_code | run_js_script, test_js_script | nodetool-js-scripting |
| A 3D model | validate_model3d | render_model3d | nodetool-3d-scene |
| A storyboard: a shot that will not render | get_storyboard | re-render one target | storyboard-core |
| A media call that never came back | generations get | generations await | below, under Stuck generation |
A run that spans surfaces fails at one of them. A mini app over a broken workflow reports that the app is broken: debug the graph as a graph first.
The nodetool CLI has purpose-built harnesses that beat manual poking. From a
NodeTool checkout the same commands run as npm run dev:nodetool -- <command>.
Escalate in cost order:
# 1. Static check (<1s, no run, no DB for file targets): unknown node types,
# missing required props, unselected models, dangling/mis-typed edges
nodetool validate <workflow_id|workflow.json|workflow.ts>
# 2. Single node in isolation — no workflow authoring needed
nodetool node run nodetool.text.Concat --props '{"a":"hi"}' --no-secrets
# 3. Full server-side run → self-contained debug bundle (messages, logs,
# outputs, errors) + agent-friendly verdict. --json prints the full report.
nodetool debug <workflow_id|workflow.json> --params '{"prompt":"hi"}'
nodetool debug workflow.json --watch # re-run on save, print verdict diff
# 4. Opt-in expensive surfaces
nodetool debug <id> --trace # OTel spans: timing, tokens, cost
nodetool debug <id> --browser --stages # real browser + per-stage screenshots
# Mini apps: binding validation, then a headless run of every operation
nodetool app debug <id> --no-run # free wiring check
nodetool app debug <id> --json
# The other document surfaces — same shape: validate, then replay a scripted session
nodetool timeline validate <timeline_id|sequence.json> --json
nodetool sketch validate <image_document_id|sketch.json> --json
nodetool jsscript validate <id|file.json> --json
nodetool timeline debug <id> --interact '[…]'
nodetool sketch debug <id> --interact '[…]'
nodetool jsscript debug <id> --interact '[…]'For every one of these, a path that exists on disk wins over an id, and a file
target needs no database. Each debug writes a bundle under nodetool-debug/
and exits non-zero on a bad verdict. Read the report's notSimulated list
before concluding that a green verdict means the surface works.
The bundle lands in nodetool-debug/<id>-<ts>/ (report.md, server/messages.jsonl, …). Loop: run debug → read the verdict → edit → re-run. Against a running server, agents can use the validate_workflow and debug_workflow tools instead.
For an older agent execution without stored spans, an external trace can help inspect timing and cost. External copies exclude prompts and responses by default. Use the owned run readers above for recorded content.
NODETOOL_TRACE_FILE=/tmp/trace.jsonl nodetool chat
nodetool --trace-file trace.jsonl run workflow.tsWhen a user reports a problem, work through this in order:
nodetool secrets store KEY)~/.nodetool/logs/ or run with NODETOOL_LOG_LEVEL=debug| Color | Status | Action |
|---|---|---|
| Gray | Not started | Waiting for inputs or not yet reached |
| Yellow | Running | Currently processing, wait |
| Green | Completed | Working correctly |
| Red | Failed | Click node to see error message |
Symptoms: Yellow nodes that never turn green, no output
Check:
sync_mode)nodetool serve)Fix: Add Preview nodes before stuck node. Check server logs. Kill and restart if needed.
Symptoms: Red edge, error about incompatible types
Fix:
nodetool.text.ToString, nodetool.data.ToDataframe)metadataOutputTypes of source node matches expected input typeSymptoms: Downstream nodes receive nothing, Preview shows null
Check:
Symptoms: An image, video, audio or 3D call never returns. The surface shows a pending take with no error.
Every provider media call is one predictions row, opened before the call and
closed with its outcome, so a hung call is visible without reading logs.
nodetool generations list --status running --json
nodetool generations get <generation_id> --json
nodetool generations await <generation_id> --timeout 300 # exit 1 while running
nodetool generations cancel <generation_id>
nodetool generations sweep # close orphaned rows after a restart
nodetool generations reconcile <generation_id> # ask the provider what it billedA row reading interrupted means a restart orphaned it, not that the provider
failed. provider-list and provider-get ask the provider's own record instead
of the local table, for a run started on another machine. Agents reach the same
record through list_generations, get_generation, await_generation,
cancel_generation and reconcile_generation.
Symptoms: The button does nothing, or a widget stays blank after a run.
Check, in this order:
debug_app {application_id, run: false} — free. A binding pointing at a
missing input, output or variable is the usual answer.run action.op:<id>/exec#error? A failed operation with no error
binding leaves the app looking idle.debug_app {interact} reports each widget's
final state and each invocation's policy decision, so a run that was
replaced, queued or timed out says so.Symptoms: The cut runs longer than planned, a font differs from the editor, an animation does not play.
validate_timeline first. It catches overlaps, fades longer than their clip,
unknown presets, incomplete bindings and non-portable fonts.retimed_shots from the assembly call.sans-serif, serif, system-ui) is refused where a
clip is authored, because the editor, the render and the frame preview would
each pick a different typeface. Use a bundled family.preview_timeline_frame before render_timeline. Rendering to check an edit
is the expensive way to be wrong.Symptoms: Agent output is wrong, irrelevant, or garbled
Fix:
find_model, or the ids the provider registry lists)Symptoms: HybridSearch or TextSearch returns empty results
Check:
vector.Count / vector.Peek node, or the editor's collection view.CHROMA_PATH / CHROMA_URL (SQLite-vec, the default, needs no config)Symptoms: 401, 403, "API key invalid", "authentication failed"
Fix:
# Store key
nodetool secrets store OPENAI_API_KEY
# Or via environment
export OPENAI_API_KEY=sk-...Provider key names: OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, HF_TOKEN, FAL_API_KEY
Symptoms: "Model not found", "model does not exist"
Check:
ollama list)Symptoms: OOM errors, slow processing, system unresponsive
Fix:
--memory limitSymptoms: Deploy command fails, server won't start
Check:
deployment.yaml syntax (valid YAML?)NODETOOL_ENV, AUTH_PROVIDER, SECRETS_MASTER_KEY)docker ps)lsof -i :7777)Input → Preview(1) → Transform → Preview(2) → LLM → Preview(3) → OutputAdd Preview nodes at each stage to isolate where data breaks.
# Desktop app logs
ls ~/.nodetool/logs/
# CLI verbose mode (logging is controlled by an env var, not a serve flag)
NODETOOL_LOG_LEVEL=debug nodetool serve
# Browser DevTools
# View → Developer Tools → Console tabExport workflow as JSON (File → Export) to inspect:
data fields for property valuessourceHandle/targetHandle namestype strings for correctness# Check server health
curl http://localhost:7777/health
# Test API auth
curl -H "Authorization: Bearer TOKEN" http://localhost:7777/v1/models
# Check WebSocket
wscat -c ws://localhost:7777/ws| Issue | Solution |
|---|---|
| Slow LLM responses | Use local models for simple tasks, cloud for complex |
| Large file processing | Batch processing, stream with genProcess |
| Multiple independent tasks | Use parallel execution paths in workflow |
| Repeated computations | Cache results, avoid redundant nodes |
| Model loading time | Keep models in memory (server mode), pre-download |
| High memory usage | Right-size models, use quantized variants |
| Slow vector search | Optimize chunk size (200-500 tokens), use FAISS for speed |
© 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-troubleshooter of nodetool-ai/nodetool.
Open the folder on GitHubat commit 339f069
Nodetool Troubleshooter 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 Troubleshooter this skillnodetool-ai/nodetool | 560 | — | ~3.6k | 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
Diagnose a failing NodeTool run on any surface: workflows, mini apps, timelines, sketches, scripts, storyboards, and stuck media generations. Nodetool Troubleshooter is an agent skill from nodetool-ai/nodetool. Diagnose a failing NodeTool run on any surface: workflows, mini apps, timelines, sketches, scripts, storyboards, and stuck media generations.
Nodetool Troubleshooter fits situations like: tasks that involve Comics and storyboards.
Run `npx skills add nodetool-ai/nodetool --skill nodetool-troubleshooter -a claude-code`. Or copy the skill folder (packages/system-skills/nodetool-troubleshooter in nodetool-ai/nodetool) into .claude/skills/nodetool-troubleshooter in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nodetool-ai/nodetool --skill nodetool-troubleshooter -a codex`. Or copy the skill folder (packages/system-skills/nodetool-troubleshooter in nodetool-ai/nodetool) into .agents/skills/nodetool-troubleshooter 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-troubleshooter -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-troubleshooter, .gemini/skills/nodetool-troubleshooter, .github/skills/nodetool-troubleshooter and .opencode/skills/nodetool-troubleshooter in your project.
Going by SKILL.md and its folder, Nodetool Troubleshooter needs the command-line tools its instructions call (curl, npm, ollama and docker) and credentials named OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY and HF_TOKEN. Our summary lists: Docker; A credential in OPENAI_API_KEY; A credential in ANTHROPIC_API_KEY.
SKILL.md contains no URLs. Its commands use curl, npm and docker, 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 Troubleshooter 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.6k tokens (SKILL.md is roughly 14k 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 Troubleshooter: 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 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.